]>
Commit | Line | Data |
---|---|---|
2efa10d5 JJ |
1 | 2020-12-31 Richard Sandiford <richard.sandiford@arm.com> |
2 | ||
3 | * tree-vect-stmts.c (vectorizable_condition): Only nullify cond_expr | |
4 | if we've created a new condition. Don't nullify it if we've decided | |
5 | to keep it and then invert the result. | |
6 | ||
7 | 2020-12-31 Richard Sandiford <richard.sandiford@arm.com> | |
8 | ||
9 | * tree-vect-loop-manip.c (create_lcssa_for_virtual_phi): Return | |
10 | the incoming virtual operand definition. | |
11 | (vect_do_peeling): When vectorizing an epilogue loop, handle the | |
12 | case in which the main loop has a virtual phi and the epilogue | |
13 | and scalar loops don't. Restore an earlier comment about the | |
14 | update_ssa call. | |
15 | ||
16 | 2019-12-30 Olivier Hainque <hainque@adacore.com> | |
17 | ||
18 | * config/vxworks/stdint.h: New file. Include _yvals.h | |
19 | then stdint-gcc.h. | |
20 | * config/t-vxworks: Arrange to install the stdint.h wrapper. | |
21 | * config.gcc (*-*-vxworks*): Add stdint-gcc.h to $extra_headers | |
22 | so it gets copied. Set use_gcc_stdint to request _not_ crafting | |
23 | stdint.h through the common Makefile rules. | |
24 | ||
25 | 2019-12-30 Olivier Hainque <hainque@adacore.com> | |
26 | ||
27 | * config/vxworks/_yvals.h: New file. | |
28 | * config/vxworks/_yvals-wrapper.h: New file. | |
29 | * gcc/config/vxworks/math.h: Use it to wrap the VxWorks | |
30 | math.h header. | |
31 | * gcc/config/vxworks/complex.h: Likewise. | |
32 | * gcc/config/vxworks/setjmp.h: Likewise. | |
33 | * gcc/config/vxworks/inttypes.h: Likewise. | |
34 | * config.gcc (*-*-vxworks*): Add system header wrappers | |
35 | to extra_headers. | |
36 | (powerpc-*-vxworks*): Reuse the common extra_headers. | |
37 | ||
38 | 2019-12-30 Olivier Hainque <hainque@adacore.com> | |
39 | ||
40 | * config/vxworks/_vxworks-versions.h: New file. | |
41 | * config.gcc (*-*-vxworks*): Add it to extra_headers. | |
42 | ||
43 | 2019-12-30 Olivier Hainque <hainque@adacore.com> | |
44 | ||
45 | * config/t-vxworks: Rework the vxworks.o compilation | |
46 | rules to use $(COMPILE). | |
47 | ||
48 | 2019-12-30 Joel Brobecker <brobecker@adacore.com> | |
49 | ||
50 | * config.gcc <*-*-vxworks*>: Add vxworks-c.o to c_target_objs | |
51 | and cxx_target_objs. Set target_has_targetcm to "yes". Add | |
52 | vxworks-predef.h to extra_headers. | |
53 | * config/t-vxworks (vxworks-c.o): New target. | |
54 | * config/vxworks-c.c: New file. | |
55 | * config/vxworks/vxworks-predef.h: New file. | |
56 | ||
57 | 2019-12-30 Alexandre Oliva <oliva@adacore.com> | |
58 | Olivier Hainque <hainque@adacore.com> | |
59 | ||
60 | * config/vx-common.h (WCHAR_TYPE_SIZE): 32 on VxWorks 7. | |
61 | (WCHAR_TYPE): Pick accordingly. | |
62 | (WINT_TYPE_SIZE): Define in terms of WCHAR_TYPE_SIZE. | |
63 | (WINT_TYPE): Define in terms of WCHAR_TYPE. | |
64 | ||
65 | 2019-12-30 Olivier Hainque <hainque@adacore.com> | |
66 | ||
67 | * config/vx-common.h: Minor reorganization and add | |
68 | sectioning comments. | |
69 | ||
70 | 2019-12-30 Doug Rupp <rupp@adacore.com> | |
71 | ||
72 | * config/rs6000/vxworks.h (STARTFILE_PREFIX_SPEC): Define. | |
73 | ||
74 | 2019-12-30 Olivier Hainque <hainque@adacore.com> | |
75 | Jerome Lambourg <labourg@adacore.com> | |
76 | ||
77 | * config/t-vxworks: Arrange to alter/restore glimits.h | |
78 | before/after stmp-int-hdrs, so it uses a different macro | |
79 | name to protect itself against recursive inclusions. | |
80 | ||
81 | 2019-12-30 Peter Bergner <bergner@linux.ibm.com> | |
82 | ||
83 | PR target/92923 | |
84 | * config/rs6000/rs6000-builtin.def (VAND, VANDC, VNOR, VOR, VXOR): | |
85 | Delete. | |
86 | (EQV_V16QI_UNS, EQV_V8HI_UNS, EQV_V4SI_UNS, EQV_V2DI_UNS, EQV_V1TI_UNS, | |
87 | NAND_V16QI_UNS, NAND_V8HI_UNS, NAND_V4SI_UNS, NAND_V2DI_UNS, | |
88 | NAND_V1TI_UNS, ORC_V16QI_UNS, ORC_V8HI_UNS, ORC_V4SI_UNS, ORC_V2DI_UNS, | |
89 | ORC_V1TI_UNS, VAND_V16QI_UNS, VAND_V16QI, VAND_V8HI_UNS, VAND_V8HI, | |
90 | VAND_V4SI_UNS, VAND_V4SI, VAND_V2DI_UNS, VAND_V2DI, VAND_V4SF, | |
91 | VAND_V2DF, VANDC_V16QI_UNS, VANDC_V16QI, VANDC_V8HI_UNS, VANDC_V8HI, | |
92 | VANDC_V4SI_UNS, VANDC_V4SI, VANDC_V2DI_UNS, VANDC_V2DI, VANDC_V4SF, | |
93 | VANDC_V2DF, VNOR_V16QI_UNS, VNOR_V16QI, VNOR_V8HI_UNS, VNOR_V8HI, | |
94 | VNOR_V4SI_UNS, VNOR_V4SI, VNOR_V2DI_UNS, VNOR_V2DI, VNOR_V4SF, | |
95 | VNOR_V2DF, VOR_V16QI_UNS, VOR_V16QI, VOR_V8HI_UNS, VOR_V8HI, | |
96 | VOR_V4SI_UNS, VOR_V4SI, VOR_V2DI_UNS, VOR_V2DI, VOR_V4SF, VOR_V2DF, | |
97 | VXOR_V16QI_UNS, VXOR_V16QI, VXOR_V8HI_UNS, VXOR_V8HI, | |
98 | VXOR_V4SI_UNS, VXOR_V4SI, VXOR_V2DI_UNS, VXOR_V2DI, VXOR_V4SF, | |
99 | VXOR_V2DF): Add definitions. | |
100 | * config/rs6000/rs6000-call.c (altivec_overloaded_builtins) | |
101 | <ALTIVEC_BUILTIN_VAND, ALTIVEC_BUILTIN_VANDC, ALTIVEC_BUILTIN_VNOR, | |
102 | ALTIVEC_BUILTIN_VOR, ALTIVEC_BUILTIN_VXOR>: Remove. | |
103 | <ALTIVEC_BUILTIN_VAND_V4SF, ALTIVEC_BUILTIN_VAND_V2DF, | |
104 | ALTIVEC_BUILTIN_VAND_V2DI, ALTIVEC_BUILTIN_VAND_V2DI_UNS, | |
105 | ALTIVEC_BUILTIN_VAND_V4SI_UNS, ALTIVEC_BUILTIN_VAND_V4SI, | |
106 | ALTIVEC_BUILTIN_VAND_V8HI_UNS, ALTIVEC_BUILTIN_VAND_V8HI, | |
107 | ALTIVEC_BUILTIN_VAND_V16QI, ALTIVEC_BUILTIN_VAND_V16QI_UNS, | |
108 | ALTIVEC_BUILTIN_VANDC_V4SF, ALTIVEC_BUILTIN_VANDC_V2DF, | |
109 | ALTIVEC_BUILTIN_VANDC_V2DI, ALTIVEC_BUILTIN_VANDC_V2DI_UNS, | |
110 | ALTIVEC_BUILTIN_VANDC_V4SI_UNS, ALTIVEC_BUILTIN_VANDC_V4SI, | |
111 | ALTIVEC_BUILTIN_VANDC_V8HI_UNS, ALTIVEC_BUILTIN_VANDC_V8HI, | |
112 | ALTIVEC_BUILTIN_VANDC_V16QI, ALTIVEC_BUILTIN_VANDC_V16QI_UNS, | |
113 | ALTIVEC_BUILTIN_VNOR_V4SF, ALTIVEC_BUILTIN_VNOR_V2DF, | |
114 | ALTIVEC_BUILTIN_VNOR_V2DI, ALTIVEC_BUILTIN_VNOR_V2DI_UNS, | |
115 | ALTIVEC_BUILTIN_VNOR_V4SI, ALTIVEC_BUILTIN_VNOR_V4SI_UNS, | |
116 | ALTIVEC_BUILTIN_VNOR_V8HI, ALTIVEC_BUILTIN_VNOR_V8HI_UNS, | |
117 | ALTIVEC_BUILTIN_VNOR_V16QI, ALTIVEC_BUILTIN_VNOR_V16QI_UNS, | |
118 | ALTIVEC_BUILTIN_VOR_V4SF, ALTIVEC_BUILTIN_VOR_V2DF, | |
119 | ALTIVEC_BUILTIN_VOR_V2DI, ALTIVEC_BUILTIN_VOR_V2DI_UNS, | |
120 | ALTIVEC_BUILTIN_VOR_V4SI_UNS, ALTIVEC_BUILTIN_VOR_V4SI, | |
121 | ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V8HI, | |
122 | ALTIVEC_BUILTIN_VOR_V16QI, ALTIVEC_BUILTIN_VOR_V16QI_UNS, | |
123 | ALTIVEC_BUILTIN_VXOR_V4SF, ALTIVEC_BUILTIN_VXOR_V2DF, | |
124 | ALTIVEC_BUILTIN_VXOR_V2DI, ALTIVEC_BUILTIN_VXOR_V2DI_UNS, | |
125 | ALTIVEC_BUILTIN_VXOR_V4SI_UNS, ALTIVEC_BUILTIN_VXOR_V4SI, | |
126 | ALTIVEC_BUILTIN_VXOR_V8HI, ALTIVEC_BUILTIN_VXOR_V8HI_UNS, | |
127 | ALTIVEC_BUILTIN_VXOR_V16QI, ALTIVEC_BUILTIN_VXOR_V16QI_UNS>: Add | |
128 | definitions. | |
129 | <P8V_BUILTIN_EQV_V16QI, P8V_BUILTIN_EQV_V8HI, P8V_BUILTIN_EQV_V4SI, | |
130 | P8V_BUILTIN_EQV_V2DI, P8V_BUILTIN_NAND_V16QI, P8V_BUILTIN_NAND_V8HI, | |
131 | P8V_BUILTIN_NAND_V4SI, P8V_BUILTIN_NAND_V2DI, P8V_BUILTIN_ORC_V16QI, | |
132 | P8V_BUILTIN_ORC_V8HI, P8V_BUILTIN_ORC_V4SI, | |
133 | P8V_BUILTIN_ORC_V2DI>: Change unsigned usages to use the new *_UNS | |
134 | definition names. | |
135 | (rs6000_gimple_fold_builtin) <ALTIVEC_BUILTIN_VAND_V16QI_UNS, | |
136 | ALTIVEC_BUILTIN_VAND_V16QI, ALTIVEC_BUILTIN_VAND_V8HI_UNS, | |
137 | ALTIVEC_BUILTIN_VAND_V8HI, ALTIVEC_BUILTIN_VAND_V4SI_UNS, | |
138 | ALTIVEC_BUILTIN_VAND_V4SI, ALTIVEC_BUILTIN_VAND_V2DI_UNS, | |
139 | ALTIVEC_BUILTIN_VAND_V2DI, ALTIVEC_BUILTIN_VAND_V4SF, | |
140 | ALTIVEC_BUILTIN_VAND_V2DF, ALTIVEC_BUILTIN_VANDC_V16QI_UNS, | |
141 | ALTIVEC_BUILTIN_VANDC_V16QI, ALTIVEC_BUILTIN_VANDC_V8HI_UNS, | |
142 | ALTIVEC_BUILTIN_VANDC_V8HI, ALTIVEC_BUILTIN_VANDC_V4SI_UNS, | |
143 | ALTIVEC_BUILTIN_VANDC_V4SI, ALTIVEC_BUILTIN_VANDC_V2DI_UNS, | |
144 | ALTIVEC_BUILTIN_VANDC_V2DI, ALTIVEC_BUILTIN_VANDC_V4SF, | |
145 | ALTIVEC_BUILTIN_VANDC_V2DF, P8V_BUILTIN_NAND_V16QI_UNS, | |
146 | P8V_BUILTIN_NAND_V8HI_UNS, P8V_BUILTIN_NAND_V4SI_UNS, | |
147 | P8V_BUILTIN_NAND_V2DI_UNS, P8V_BUILTIN_NAND_V2DI, | |
148 | ALTIVEC_BUILTIN_VOR_V16QI_UNS, ALTIVEC_BUILTIN_VOR_V16QI, | |
149 | ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V8HI, | |
150 | ALTIVEC_BUILTIN_VOR_V4SI_UNS, ALTIVEC_BUILTIN_VOR_V4SI, | |
151 | ALTIVEC_BUILTIN_VOR_V2DI_UNS, ALTIVEC_BUILTIN_VOR_V2DI, | |
152 | ALTIVEC_BUILTIN_VOR_V4SF, ALTIVEC_BUILTIN_VOR_V2DF, | |
153 | P8V_BUILTIN_ORC_V16QI_UNS, P8V_BUILTIN_ORC_V8HI_UNS, | |
154 | P8V_BUILTIN_ORC_V4SI_UNS, P8V_BUILTIN_ORC_V2DI_UNS, | |
155 | P8V_BUILTIN_ORC_V2DI, ALTIVEC_BUILTIN_VXOR_V16QI_UNS, | |
156 | ALTIVEC_BUILTIN_VXOR_V16QI, ALTIVEC_BUILTIN_VXOR_V8HI_UNS, | |
157 | ALTIVEC_BUILTIN_VXOR_V8HI, ALTIVEC_BUILTIN_VXOR_V4SI_UNS, | |
158 | ALTIVEC_BUILTIN_VXOR_V4SI, ALTIVEC_BUILTIN_VXOR_V2DI_UNS, | |
159 | ALTIVEC_BUILTIN_VXOR_V2DI, ALTIVEC_BUILTIN_VXOR_V4SF, | |
160 | ALTIVEC_BUILTIN_VXOR_V2DF, ALTIVEC_BUILTIN_VNOR_V16QI_UNS, | |
161 | ALTIVEC_BUILTIN_VNOR_V16QI, ALTIVEC_BUILTIN_VNOR_V8HI_UNS, | |
162 | ALTIVEC_BUILTIN_VNOR_V8HI, ALTIVEC_BUILTIN_VNOR_V4SI_UNS, | |
163 | ALTIVEC_BUILTIN_VNOR_V4SI, ALTIVEC_BUILTIN_VNOR_V2DI_UNS, | |
164 | ALTIVEC_BUILTIN_VNOR_V2DI, ALTIVEC_BUILTIN_VNOR_V4SF, | |
165 | ALTIVEC_BUILTIN_VNOR_V2DF>: Use new definition names. | |
166 | (builtin_function_type) <ALTIVEC_BUILTIN_VAND_V16QI_UNS, | |
167 | ALTIVEC_BUILTIN_VAND_V8HI_UNS, ALTIVEC_BUILTIN_VAND_V4SI_UNS, | |
168 | ALTIVEC_BUILTIN_VAND_V2DI_UNS, ALTIVEC_BUILTIN_VANDC_V16QI_UNS, | |
169 | ALTIVEC_BUILTIN_VANDC_V8HI_UNS, ALTIVEC_BUILTIN_VANDC_V4SI_UNS, | |
170 | ALTIVEC_BUILTIN_VANDC_V2DI_UNS, ALTIVEC_BUILTIN_VNOR_V16QI_UNS, | |
171 | ALTIVEC_BUILTIN_VNOR_V8HI_UNS, ALTIVEC_BUILTIN_VNOR_V4SI_UNS, | |
172 | ALTIVEC_BUILTIN_VNOR_V2DI_UNS, ALTIVEC_BUILTIN_VOR_V16QI_UNS, | |
173 | ALTIVEC_BUILTIN_VOR_V8HI_UNS, ALTIVEC_BUILTIN_VOR_V4SI_UNS, | |
174 | ALTIVEC_BUILTIN_VOR_V2DI_UNS, ALTIVEC_BUILTIN_VXOR_V16QI_UNS, | |
175 | ALTIVEC_BUILTIN_VXOR_V8HI_UNS, ALTIVEC_BUILTIN_VXOR_V4SI_UNS, | |
176 | ALTIVEC_BUILTIN_VXOR_V2DI_UNS, P8V_BUILTIN_EQV_V16QI_UNS, | |
177 | P8V_BUILTIN_EQV_V8HI_UNS, P8V_BUILTIN_EQV_V4SI_UNS, | |
178 | P8V_BUILTIN_EQV_V2DI_UNS, P8V_BUILTIN_EQV_V1TI_UNS, | |
179 | P8V_BUILTIN_NAND_V16QI_UNS, P8V_BUILTIN_NAND_V8HI_UNS, | |
180 | P8V_BUILTIN_NAND_V4SI_UNS, P8V_BUILTIN_NAND_V2DI_UNS, | |
181 | P8V_BUILTIN_NAND_V1TI_UNS, P8V_BUILTIN_ORC_V16QI_UNS, | |
182 | P8V_BUILTIN_ORC_V8HI_UNS, P8V_BUILTIN_ORC_V4SI_UNS, | |
183 | P8V_BUILTIN_ORC_V2DI_UNS, P8V_BUILTIN_ORC_V1TI_UNS>: Handle unsigned | |
184 | builtins. | |
185 | ||
186 | 2019-12-29 Jakub Jelinek <jakub@redhat.com> | |
187 | ||
188 | PR target/93078 | |
189 | * config/i386/i386-builtins.c (ix86_builtin_vectorized_function): | |
190 | Remove CASE_CFN_RINT handling. | |
191 | * config/i386/i386-builtin.def (IX86_BUILTIN_RINTPD, | |
192 | IX86_BUILTIN_RINTPS, IX86_BUILTIN_RINTPD256, IX86_BUILTIN_RINTPS256): | |
193 | Remove. | |
194 | * config/i386/sse.md (nearbyint<mode>2, rint<mode>2): New expanders | |
195 | with VF iterator. | |
196 | ||
197 | 2019-12-29 Richard Sandiford <richard.sandiford@arm.com> | |
198 | ||
199 | * tree-vect-stmts.c (vect_get_strided_load_store_ops): Copy | |
200 | DR_STEP before gimplifying it. | |
201 | ||
202 | 2019-12-29 Richard Sandiford <richard.sandiford@arm.com> | |
203 | ||
204 | * tree-vect-stmts.c (vectorizable_condition): For extract-last | |
205 | reductions, check that the target supports the required comparison | |
206 | operation. | |
207 | ||
208 | 2019-12-27 Richard Sandiford <richard.sandiford@arm.com> | |
209 | ||
210 | * config/aarch64/iterators.md (V_INT_CONTAINER): Fix VNx2SF entry. | |
211 | ||
212 | 2019-12-27 Richard Sandiford <richard.sandiford@arm.com> | |
213 | ||
214 | * tree-vect-loop.c (vectorizable_reduction): Check whether the | |
215 | target supports the required VEC_COND_EXPR operation before | |
216 | allowing the fallback handling of masked fold-left reductions. | |
217 | ||
218 | 2019-12-24 Jiufu Guo <guojiufu@linux.ibm.com> | |
219 | ||
220 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable | |
221 | -fweb and -frename-registers with -funroll-loops | |
222 | ||
223 | 2019-12-22 Gerald Pfeifer <gerald@pfeifer.com> | |
224 | ||
225 | * doc/invoke.texi (-flto): Use "compile time" as a noun. | |
226 | ||
227 | 2019-12-21 Martin Jambor <mjambor@suse.cz> | |
228 | ||
229 | PR ipa/93015 | |
230 | * ipa-cp.c (ipcp_store_vr_results): Check that info exists | |
231 | ||
232 | 2019-12-20 Michael Meissner <meissner@linux.ibm.com> | |
233 | ||
234 | * config/rs6000/predicates.md (cint34_operand): Use | |
235 | SIGNED_INTEGER_34BIT_P macro. | |
236 | * config/rs6000/rs6000.c (num_insns_constant_gpr): Use the | |
237 | SIGNED_INTEGER_16BIT_P and SIGNED_INTEGER_34BIT_P macros. | |
238 | (address_to_insn_form): Use the SIGNED_INTEGER_16BIT_P and | |
239 | SIGNED_INTEGER_34BIT_P macros. | |
240 | * config/rs6000/rs6000.h (SIGNED_INTEGER_NBIT_P): New macro. | |
241 | (SIGNED_INTEGER_16BIT_P): Rename SIGNED_16BIT_OFFSET_P to be | |
242 | SIGNED_INTEGER_34BIT_P. | |
243 | (SIGNED_INTEGER_34BIT_P): Rename SIGNED_34BIT_OFFSET_P to be | |
244 | SIGNED_INTEGER_34BIT_P. | |
245 | ||
246 | 2019-12-20 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
247 | ||
248 | * doc/sourcebuild.texi | |
249 | (arm_v8_2a_bf16_neon_ok): Document new target supports option. | |
250 | (arm_v8_2a_i8mm_ok): Likewise. | |
251 | ||
252 | 2019-12-20 Jakub Jelinek <jakub@redhat.com> | |
253 | ||
254 | PR target/92841 | |
255 | * config/i386/i386.md (*stack_protect_set_3): For pic_32bit_operand | |
256 | always use lea{q}, no matter what value which_alternative has. | |
257 | ||
258 | PR target/93002 | |
259 | * config/i386/i386.md (dec reg; cmp $-1, reg; jne lab): New | |
260 | define_peephole2. | |
261 | ||
262 | 2019-12-19 Julian Brown <julian@codesourcery.com> | |
263 | ||
264 | * gimplify.c (gimplify_omp_var_data): Add GOVD_MAP_HAS_ATTACHMENTS. | |
265 | (insert_struct_comp_map): Support derived-type member mappings | |
266 | for arrays with descriptors which use GOMP_MAP_TO_PSET. Support | |
267 | GOMP_MAP_ATTACH_DETACH. | |
268 | (gimplify_scan_omp_clauses): Tidy up OACC_ENTER_DATA/OACC_EXIT_DATA | |
269 | mappings. Handle attach/detach clauses and component references. | |
270 | (gimplify_adjust_omp_clauses_1): Skip adjustments for explicit | |
271 | attach/detach clauses. | |
272 | (gimplify_omp_target_update): Handle struct mappings and finalize for | |
273 | detach operations. | |
274 | * omp-low.c (lower_omp_target): Support GOMP_MAP_ATTACH, | |
275 | GOMP_MAP_DETACH, GOMP_MAP_FORCE_DETACH. | |
276 | * tree-pretty-print.c (dump_omp_clause): Likewise, plus | |
277 | GOMP_MAP_ATTACH_DETACH. | |
278 | ||
279 | 2019-12-19 Julian Brown <julian@codesourcery.com> | |
280 | ||
281 | * gimplify.c (insert_struct_comp_map, extract_base_bit_offset): New. | |
282 | (gimplify_scan_omp_clauses): Outline duplicated code into calls to | |
283 | above two functions. | |
284 | ||
285 | 2019-12-19 Vladimir Makarov <vmakarov@redhat.com> | |
286 | ||
287 | PR target/92905 | |
288 | * lra-constraints.c (process_alt_operands): Check offmemok when | |
289 | processing preferred_reload_class. | |
290 | ||
291 | 2019-12-19 Andrew Stubbs <ams@codesourcery.com> | |
292 | ||
293 | * config/gcn/gcn-valu.md | |
294 | (<convop><VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>): | |
295 | Change input predcate to gcn_alu_operand. | |
296 | (extend<VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>): | |
297 | Likewise. | |
298 | (truncv64di<mode>2): Likewise. | |
299 | (truncv64di<mode>2_exec): Likewise. | |
300 | (<convop><mode>v64di2): Likewise. | |
301 | (<convop><mode>v64di2_exec): Likewise. | |
302 | ||
303 | 2019-12-19 Andrew Stubbs <ams@codesourcery.com> | |
304 | ||
305 | * config/gcn/gcn-valu.md (*plus_carry_dpp_shr_<mode>): Rename to ... | |
306 | (*plus_carry_dpp_shr_v64si): ... this, and replace all | |
307 | VEC_1REG_INT_MODE with V64SI. | |
308 | ||
309 | 2019-12-19 David Malcolm <dmalcolm@redhat.com> | |
310 | ||
311 | * hash-map-tests.c (selftest::test_map_of_int_to_strings): New | |
312 | selftest. | |
313 | (selftest::hash_map_tests_c_tests): Call it. | |
314 | ||
315 | 2019-12-19 David Malcolm <dmalcolm@redhat.com> | |
316 | ||
317 | * gimple-predict.h (gimple_predict_predictor): Make "gs" param | |
318 | const. | |
319 | (gimple_predict_outcome): Likewise. | |
320 | * gimple-pretty-print.c (do_niy): Likewise. | |
321 | (dump_unary_rhs): Likewise. | |
322 | (dump_binary_rhs): Likewise. | |
323 | (dump_ternary_rhs): Likewise. | |
324 | (dump_gimple_assign): Likewise. | |
325 | (dump_gimple_return): Likewise. | |
326 | (dump_gimple_call_args): Likewise. | |
327 | (pp_points_to_solution): Make "pt" param const. | |
328 | (dump_gimple_call): Make "gs" param const. | |
329 | (dump_gimple_switch): Likewise. | |
330 | (dump_gimple_cond): Likewise. | |
331 | (dump_gimple_label): Likewise. | |
332 | (dump_gimple_goto): Likewise. | |
333 | (dump_gimple_bind): Likewise. | |
334 | (dump_gimple_try): Likewise. | |
335 | (dump_gimple_catch): Likewise. | |
336 | (dump_gimple_eh_filter): Likewise. | |
337 | (dump_gimple_eh_must_not_throw): Likewise. | |
338 | (dump_gimple_eh_else): Likewise. | |
339 | (dump_gimple_resx): Likewise. | |
340 | (dump_gimple_eh_dispatch): Likewise. | |
341 | (dump_gimple_debug): Likewise. | |
342 | (dump_gimple_omp_for): Likewise. | |
343 | (dump_gimple_omp_continue): Likewise. | |
344 | (dump_gimple_omp_single): Likewise. | |
345 | (dump_gimple_omp_taskgroup): Likewise. | |
346 | (dump_gimple_omp_target): Likewise. | |
347 | (dump_gimple_omp_teams): Likewise. | |
348 | (dump_gimple_omp_sections): Likewise. | |
349 | (dump_gimple_omp_block): Likewise. | |
350 | (dump_gimple_omp_critical): Likewise. | |
351 | (dump_gimple_omp_ordered): Likewise. | |
352 | (dump_gimple_omp_scan): Likewise. | |
353 | (dump_gimple_omp_return): Likewise. | |
354 | (dump_gimple_transaction): Likewise. | |
355 | (dump_gimple_asm): Likewise. | |
356 | (dump_gimple_phi): Make "phi" param const. | |
357 | (dump_gimple_omp_parallel): Make "gs" param const. | |
358 | (dump_gimple_omp_task): Likewise. | |
359 | (dump_gimple_omp_atomic_load): Likewise. | |
360 | (dump_gimple_omp_atomic_store): Likewise. | |
361 | (dump_gimple_mem_ops): Likewise. | |
362 | (pp_gimple_stmt_1): Likewise. Add "const" to the various as_a <> | |
363 | casts throughout. | |
364 | * gimple-pretty-print.h (gimple_stmt_1): Make gimple * param const. | |
365 | * gimple.h (is_a_helper <const gdebug *>::test): New. | |
366 | (is_a_helper <const ggoto *>::test): New. | |
367 | (is_a_helper <const glabel *>::test): New. | |
368 | (is_a_helper <const geh_else *>::test): New. | |
369 | (is_a_helper <const geh_mnt *>::test): New. | |
370 | (is_a_helper <const gswitch *>::test): New. | |
371 | (is_a_helper <const gtry *>::test): New. | |
372 | (is_a_helper <const greturn *>::test): New. | |
373 | (gimple_call_tail_p): Make param const. | |
374 | (gimple_call_return_slot_opt_p): Likewise. | |
375 | (gimple_call_va_arg_pack_p): Likewise. | |
376 | (gimple_call_use_set): Add const overload. | |
377 | (gimple_call_clobber_set): Likewise. | |
378 | (gimple_has_lhs): Make param const. | |
379 | (gimple_bind_body): Likewise. | |
380 | (gimple_catch_handler): Likewise. | |
381 | (gimple_eh_filter_failure): Likewise. | |
382 | (gimple_eh_must_not_throw_fndecl): Likewise. | |
383 | (gimple_eh_else_n_body): Likewise. | |
384 | (gimple_eh_else_e_body): Likewise. | |
385 | (gimple_try_eval): Likewise. | |
386 | (gimple_try_cleanup): Likewise. | |
387 | (gimple_phi_arg): Add const overload. | |
388 | (gimple_phi_arg_def): Make param const. | |
389 | (gimple_phi_arg_edge): Likewise. | |
390 | (gimple_phi_arg_location): Likewise. | |
391 | (gimple_phi_arg_has_location): Likewise. | |
392 | (gimple_debug_bind_get_var): Likewise. | |
393 | (gimple_debug_bind_get_value): Likewise. | |
394 | (gimple_debug_source_bind_get_var): Likewise. | |
395 | (gimple_debug_source_bind_get_value): Likewise. | |
396 | (gimple_omp_body): Likewise. | |
397 | (gimple_omp_for_collapse): Likewise. | |
398 | (gimple_omp_for_pre_body): Likewise. | |
399 | (gimple_transaction_body): Likewise. | |
400 | * tree-eh.c (lookup_stmt_eh_lp_fn): Make param "t" const. | |
401 | (lookup_stmt_eh_lp): Likewise. | |
402 | * tree-eh.h (lookup_stmt_eh_lp_fn): Make param const. | |
403 | (lookup_stmt_eh_lp): Likewise. | |
404 | * tree-ssa-alias.h (pt_solution_empty_p): Make param const. | |
405 | * tree-ssa-structalias.c (pt_solution_empty_p): Likewise. | |
406 | ||
407 | 2019-12-19 Richard Sandiford <richard.sandiford@arm.com> | |
408 | ||
409 | * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): When | |
410 | handling partial SVE vectors, use the container mode rather than | |
411 | the element mode if the constant isn't a single-element duplicate. | |
412 | * config/aarch64/aarch64-sve.md (@aarch64_sve_reinterpret<mode>): | |
413 | Check targetm.can_change_mode_class instead of BYTES_BIG_ENDIAN. | |
414 | ||
415 | 2019-12-19 Andrew Stubbs <ams@codesourcery.com> | |
416 | ||
417 | * config/gcn/gcn-valu.md (addv64si3<exec_clobber>): Rename to ... | |
418 | (add<mode>3<exec_clobber>): ... this, and use VEC_ALL1REG_INT_MODE. | |
419 | (addv64si3_dup<exec_clobber>): Rename to ... | |
420 | (add<mode>3_dup<exec_clobber>): ... this, and use VEC_ALL1REG_INT_MODE. | |
421 | (subv64si3<exec_clobber>): Rename to ... | |
422 | (sub<mode>3<exec_clobber>): ... this, and use VEC_ALL1REG_INT_MODE. | |
423 | ||
424 | 2019-12-19 Richard Sandiford <richard.sandiford@arm.com> | |
425 | ||
426 | * config/aarch64/aarch64.c (aarch64_can_change_mode_class): | |
427 | Don't allow changes between partial SVE modes and other kinds | |
428 | of mode. Don't allow changes between two partial SVE modes | |
429 | if they have different container or element sizes. | |
430 | ||
431 | 2019-12-19 Richard Sandiford <richard.sandiford@arm.com> | |
432 | ||
433 | * config/aarch64/aarch64.c (aarch64_function_value_1): New function, | |
434 | split out from... | |
435 | (aarch64_function_value): ...here. Handle partial SVE modes by | |
436 | pretending that they have the associated/traditional integer mode, | |
437 | then wrap the result in the real mode. | |
438 | (aarch64_layout_arg): Take an orig_mode argument and pass it to | |
439 | aarch64_function_arg_alignment. Handle partial SVE modes analogously | |
440 | to aarch64_function_value. | |
441 | (aarch64_function_arg): Update call accordingly. | |
442 | (aarch64_function_arg_advance): Likewise. | |
443 | ||
444 | 2019-12-19 Jan Hubicka <hubicka@ucw.cz> | |
445 | Xi Ruoyao <xry111@mengyan1223.wang> | |
446 | ||
447 | * cgraph.c (cgraph_node_cannot_be_local_p_1): Prevent targets of | |
448 | symver attributes to be localized. | |
449 | * ipa-visibility.c (cgraph_externally_visible_p, | |
450 | varpool_node::externally_visible_p): Likewise. | |
451 | * symtab.c (symtab_node::verify_base): Check visibility of symbol | |
452 | versions. | |
453 | ||
454 | 2019-12-19 Jan Hubicka <hubicka@ucw.cz> | |
455 | Luo Xiong Hu <luoxhu@linux.ibm.com | |
456 | ||
457 | * ipa-fnsummary.h (ipa_size_summary): Remove copy consturctor. | |
458 | (ipa_size_summary_t): Add duplicate method; move to heap. | |
459 | * ipa-fnsumary.c (ipa_fn_summary_alloc): Fix allocation. | |
460 | ||
461 | 2019-12-19 Feng Xue <fxue@os.amperecomputing.com> | |
462 | ||
463 | PR ipa/92794 | |
464 | * ipa-cp.c (self_recursive_agg_pass_through_p): New function. | |
465 | (intersect_with_plats): Use error_mark_node as place holder | |
466 | when aggregate jump function is simple pass-through for | |
467 | self-recursive call. | |
468 | (intersect_with_agg_replacements): Likewise. | |
469 | (intersect_aggregates_with_edge): Likewise. | |
470 | (find_aggregate_values_for_callers_subset): Likewise. | |
471 | ||
472 | 2019-12-18 David Malcolm <dmalcolm@redhat.com> | |
473 | ||
474 | * common.opt (fdiagnostics-show-cwe): Add. | |
475 | * diagnostic-core.h (class diagnostic_metadata): New forward decl. | |
476 | (warning_at): Add overload taking a const diagnostic_metadata &. | |
477 | (emit_diagnostic_valist): Add overload taking a | |
478 | const diagnostic_metadata *. | |
479 | * diagnostic-format-json.cc: Include "diagnostic-metadata.h". | |
480 | (json_from_metadata): New function. | |
481 | (json_end_diagnostic): Call it to add "metadata" child for | |
482 | diagnostics with metadata. | |
483 | (diagnostic_output_format_init): Clear context->show_cwe. | |
484 | * diagnostic-metadata.h: New file. | |
485 | * diagnostic.c: Include "diagnostic-metadata.h". | |
486 | (diagnostic_impl): Add const diagnostic_metadata * param. | |
487 | (diagnostic_n_impl): Likewise. | |
488 | (diagnostic_initialize): Initialize context->show_cwe. | |
489 | (diagnostic_set_info_translated): Initialize diagnostic->metadata. | |
490 | (get_cwe_url): New function. | |
491 | (print_any_cwe): New function. | |
492 | (diagnostic_report_diagnostic): Call print_any_cwe if the | |
493 | diagnostic has non-NULL metadata. | |
494 | (emit_diagnostic): Pass NULL as the metadata in the call to | |
495 | diagnostic_impl. | |
496 | (emit_diagnostic_valist): Likewise. | |
497 | (emit_diagnostic_valist): New overload taking a | |
498 | const diagnostic_metadata *. | |
499 | (inform): Pass NULL as the metadata in the call to | |
500 | diagnostic_impl. | |
501 | (inform_n): Likewise for diagnostic_n_impl. | |
502 | (warning): Likewise. | |
503 | (warning_at): Likewise. Add overload that takes a | |
504 | const diagnostic_metadata &. | |
505 | (warning_n): Pass NULL as the metadata in the call to | |
506 | diagnostic_n_impl. | |
507 | (pedwarn): Likewise for diagnostic_impl. | |
508 | (permerror): Likewise. | |
509 | (error): Likewise. | |
510 | (error_n): Likewise. | |
511 | (error_at): Likewise. | |
512 | (sorry): Likewise. | |
513 | (sorry_at): Likewise. | |
514 | (fatal_error): Likewise. | |
515 | (internal_error): Likewise. | |
516 | (internal_error_no_backtrace): Likewise. | |
517 | * diagnostic.h (diagnostic_info::metadata): New field. | |
518 | (diagnostic_context::show_cwe): New field. | |
519 | * doc/invoke.texi (-fno-diagnostics-show-cwe): New option. | |
520 | * opts.c (common_handle_option): Handle OPT_fdiagnostics_show_cwe. | |
521 | * toplev.c (general_init): Initialize global_dc->show_cwe. | |
522 | ||
523 | 2019-12-19 Julian Brown <julian@codesourcery.com> | |
524 | Maciej W. Rozycki <macro@codesourcery.com> | |
525 | Tobias Burnus <tobias@codesourcery.com> | |
526 | Thomas Schwinge <thomas@codesourcery.com> | |
527 | ||
528 | * omp-low.c (lower_omp_target): Support GOMP_MAP_NO_ALLOC. | |
529 | * tree-pretty-print.c (dump_omp_clause): Likewise. | |
530 | ||
531 | 2019-12-18 Eric Botcazou <ebotcazou@adacore.com> | |
532 | ||
533 | * ira.c (ira): Use simple LRA algorithm when not optimizing. | |
534 | ||
535 | 2019-12-18 Thomas Schwinge <thomas@codesourcery.com> | |
536 | ||
537 | * gimplify.c (gimplify_omp_target_update): Elaborate 'exit data' | |
538 | 'finalize' handling. | |
539 | ||
540 | 2019-12-18 Tobias Burnus <tobias@codesourcery.com> | |
541 | ||
542 | PR middle-end/86416 | |
543 | * Makefile.in (CFLAGS-lto-streamer-in.o): Pass target_noncanonical on. | |
544 | * lto-streamer-in.c (lto_input_mode_table): Improve unsupported-mode | |
545 | diagnostic. | |
546 | ||
547 | 2019-12-18 Wilco Dijkstra <wdijkstr@arm.com> | |
548 | ||
549 | * config/aarch64/aarch64-cores.def: | |
550 | ("cortex-a76ae"): Use neoversen1 tuning. | |
551 | ("cortex-a77"): Likewise. | |
552 | ("cortex-a65"): Use cortexa53 scheduler. | |
553 | ("cortex-a65ae"): Likewise. | |
554 | ("neoverse-e1"): Use cortexa73 tuning. | |
555 | ||
556 | 2019-12-18 Martin Jambor <mjambor@suse.cz> | |
557 | ||
558 | PR ipa/92971 | |
559 | * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Fix | |
560 | definition of values, release memory on exit. | |
561 | ||
562 | 2019-12-17 Jan Hubicka <hubicka@ucw.cz> | |
563 | Martin Jambor <mjambor@suse.cz> | |
564 | ||
565 | * ipa-param-manipulation.h (get_original_index): Declare. | |
566 | * ipa-param-manipulation.c (ipa_param_adjustments::get_original_index): | |
567 | New member function. | |
568 | * ipa-prop.c (ipcp_get_parm_bits): New function. | |
569 | * ipa-prop.h (ipcp_get_parm_bits): Declare. | |
570 | * tree-ssa-ccp.c: Include cgraph.h, alloc-pool.h, symbol-summary.h, | |
571 | ipa-utils.h and ipa-prop.h | |
572 | (get_default_value): Use ipcp_get_parm_bits. | |
573 | ||
574 | 2019-12-18 Jakub Jelinek <jakub@redhat.com> | |
575 | ||
576 | PR lto/92972 | |
577 | * lto-wrapper.c (merge_and_complain): Use just "-fno-pie" instead of | |
578 | big ? "-fno-pie" : "-fno-pie". Formatting fixes. Fix comment typo. | |
579 | ||
580 | 2019-12-17 Martin Sebor <msebor@redhat.com> | |
581 | ||
582 | PR c++/61339 | |
583 | * doc/invoke.texi (-Wmismatched-tags, -Wredundant-tags): Document | |
584 | new C++ options. | |
585 | ||
586 | 2019-12-17 Michael Meissner <meissner@linux.ibm.com> | |
587 | ||
588 | * config/rs6000/rs6000.c (num_insns_constant_gpr): Return 1 if the | |
589 | constant can be loaded with PLI if -mcpu=future. | |
590 | * config/rs6000/rs6000.md (add<mode>3): Add alternative to | |
591 | generate PADDI for 34-bit constants if -mcpu=future. | |
592 | (movdi_internal64): Add alternative to use PLI to load up 34-bit | |
593 | constants if -mcpu=future. | |
594 | (movsi_internal1): Add alternative to use PLI to load up 32-bit | |
595 | constants if -mcpu=future. | |
596 | * config/rs6000/predicates.md (add_operand): Allow eI constants. | |
597 | ||
598 | 2019-12-17 Jakub Jelinek <jakub@redhat.com> | |
599 | ||
600 | PR target/92841 | |
601 | * config/i386/i386.md (@stack_protect_set_1_<mode>, | |
602 | @stack_protect_test_1_<mode>): Use output_asm_insn. | |
603 | (*stack_protect_set_2_<mode>, *stack_protect_set_3): New define_insns | |
604 | and corresponding define_peephole2s. | |
605 | ||
606 | 2019-12-17 Jan Hubicka <hubicka@ucw.cz> | |
607 | ||
608 | * symtab.c (symtab_node::get_partitioning_class): Aliases of external | |
609 | symbols are external. | |
610 | ||
611 | 2019-12-17 Christophe Lyon <christophe.lyon@linaro.org> | |
612 | ||
613 | * config/arm/arm-protos.h (thumb1_gen_const_int): Add new prototype. | |
614 | * config/arm/arm.c (arm_option_check_internal): Remove restriction | |
615 | on MOVT for -mpure-code. | |
616 | (thumb1_gen_const_int): New function. | |
617 | (thumb1_legitimate_address_p): Support -mpure-code. | |
618 | (thumb1_rtx_costs): Likewise. | |
619 | (thumb1_size_rtx_costs): Likewise. | |
620 | (arm_thumb1_mi_thunk): Likewise. | |
621 | * config/arm/arm.h (CASE_VECTOR_PC_RELATIVE): Likewise. | |
622 | * config/arm/thumb1.md (thumb1_movsi_symbol_ref): New. | |
623 | (*thumb1_movhf): Support -mpure-code. | |
624 | * doc/invoke.texi (-mpure-code): Remove restriction on MOVT. | |
625 | ||
626 | 2019-12-17 Andrew Stubbs <ams@codesourcery.com> | |
627 | ||
628 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Mention pr92772 | |
629 | in the comments. | |
630 | ||
631 | 2019-12-17 Andrew Stubbs <ams@codesourcery.com> | |
632 | ||
633 | * config/gcn/gcn-valu.md (extract_last_<mode>): New expander. | |
634 | (fold_extract_last_<mode>): New expander. | |
635 | ||
636 | 2019-12-17 Andrew Stubbs <ams@codesourcery.com> | |
637 | ||
638 | * config/gcn/gcn.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. | |
639 | (CTZ_DEFINED_VALUE_AT_ZERO): Define. | |
640 | * config/gcn/gcn.md (s_mnemonic): Add clz and ctz. | |
641 | (expander): Likewise. | |
642 | (countzeros): New code iterator. | |
643 | (<expander>si2): New insn pattern. | |
644 | (<expander>di2): New insn pattern. | |
645 | ||
646 | 2019-12-17 Jakub Jelinek <jakub@redhat.com> | |
647 | ||
648 | PR target/92962 | |
649 | * common/config/i386/i386-common.c (processor_alias_table): Formatting | |
650 | fixes. | |
651 | * doc/invoke.texi (bdver3, bdver4, znver1): Add missing closing paren. | |
652 | (znver2): Likewise. Add RDPID and WBNOINVD, remove spurious comma | |
653 | before CLWB. | |
654 | ||
655 | 2019-12-17 Hongyu Wang <hongyu.wang@intel.com> | |
656 | ||
657 | PR target/92651 | |
658 | * config/i386/i386.h (TARGET_EXPAND_ABS): New macro. | |
659 | * config/i386/x86-tune.def (X86_TUNE_EXPAND_ABS): New. | |
660 | * config/i386/i386.md (abs<SWI48x>2): New define_expand. | |
661 | ||
662 | 2019-12-17 H.J. Lu <hjl.tools@gmail.com> | |
663 | ||
664 | PR target/92807 | |
665 | * config/i386/i386.c (ix86_lea_outperforms): Check !TARGET_BONNELL. | |
666 | (ix86_avoid_lea_for_addr): When not optimizing for Bonnell, use add | |
667 | for a = a + b and a = b + a. | |
668 | ||
669 | 2019-12-16 Martin Sebor <msebor@redhat.com> | |
670 | ||
671 | PR middle-end/92952 | |
672 | * builtins.c (compute_objsize): Adjust offset by the array low bound. | |
673 | ||
674 | 2019-12-16 David Malcolm <dmalcolm@redhat.com> | |
675 | ||
676 | * pretty-print.c (pp_write_text_as_html_like_dot_to_stream): New | |
677 | function. | |
678 | * pretty-print.h (pp_write_text_as_html_like_dot_to_stream): New decl. | |
679 | ||
680 | 2019-12-16 Segher Boessenkool <segher@kernel.crashing.org> | |
681 | ||
682 | * config/rs6000/rs6000.md (movsi_to_cr_one): Use CR0_REGNO instead of | |
683 | hardcoding the (old, expired) register number. | |
684 | (*mtcrfsi): Ditto. | |
685 | ||
686 | 2019-12-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
687 | ||
688 | * config.gcc: s/msp430*-*-*/msp430-*-*. | |
689 | Handle msp430-*-elfbare. | |
690 | * config/msp430/msp430-devices.c (TARGET_SUBDIR): Define. | |
691 | (_MSPMKSTR): Define. | |
692 | (__MSPMKSTR): Define. | |
693 | (rest_of_devices_path): Use TARGET_SUBDIR value in string. | |
694 | * config/msp430/msp430.c (msp430_option_override): Error if | |
695 | -fuse-cxa-atexit is used when it has been disabled at configure time. | |
696 | * config/msp430/t-msp430: Define TARGET_SUBDIR when building | |
697 | msp430-devices.o. | |
698 | * doc/install.texi: Document msp430-*-elf and msp430-*-elfbare. | |
699 | * doc/invoke.texi: Update documentation about which path devices.csv is | |
700 | searched for. | |
701 | ||
702 | 2019-12-16 Andreas Krebbel <krebbel@linux.ibm.com> | |
703 | ||
704 | PR target/92950 | |
705 | * config/s390/vector.md ("mov<mode>" for V_8): Replace lh, lhy, | |
706 | and lhrl with llc. | |
707 | ||
708 | 2019-12-14 Martin Sebor <msebor@redhat.com> | |
709 | ||
710 | * doc/extend.texi (attribute access): Correct typos. | |
711 | ||
712 | 2019-12-14 Jakub Jelinek <jakub@redhat.com> | |
713 | ||
714 | PR ipa/92357 | |
715 | * ipa-fnsummary.c (ipa_fn_summary_write): Use | |
716 | lto_symtab_encoder_iterator with lsei_start_function_in_partition and | |
717 | lsei_next_function_in_partition instead of walking all cgraph nodes | |
718 | in encoder. | |
719 | ||
720 | PR tree-optimization/92930 | |
721 | * ipa-pure-const.c (special_builtin_state): Don't handle | |
722 | BUILT_IN_APPLY. Formatting fixes. | |
723 | (check_call): Formatting fixes. | |
724 | ||
725 | 2019-12-14 Iain Sandoe <iain@sandoe.co.uk> | |
726 | ||
727 | * config/darwin.h (DARWIN_EXTRA_SPECS): Add new | |
728 | bundle spec. (DARWIN_BUNDLE1_SPEC): New. | |
729 | (STARTFILE_SPEC): Use darwin bundle spec. | |
730 | * config/rs6000/darwin.h (DARWIN_BUNDLE1_SPEC): New. | |
731 | (DARWIN_DYLIB1_SPEC): Delete duplicate. | |
732 | ||
733 | 2019-12-13 Martin Sebor <msebor@redhat.com> | |
734 | ||
735 | PR middle-end/91582 | |
736 | PR middle-end/92868 | |
737 | * builtins.c (addr_decl_size): New function. | |
738 | (gimple_call_alloc_size): Add arguments. | |
739 | (compute_objsize): Add an argument. Set *PDECL even for allocated | |
740 | objects. | |
741 | Correct checking for negative wide_int. | |
742 | Correct handling of negative outer offsets into unknown regions | |
743 | or with unknown inner offsets. | |
744 | Extend offsets to at most sizetype precision. | |
745 | Only handle constant subobject sizes. | |
746 | * builtins.h (gimple_call_alloc_size): Add arguments. | |
747 | * tree.c (component_ref_size): Always return sizetype. | |
748 | * tree-ssa-strlen.c (strinfo::alloc): New member. | |
749 | (get_addr_stridx): Add argument. | |
750 | (get_stridx): Use ptrdiff_t. Add argument. | |
751 | (new_strinfo): Set new member. | |
752 | (get_string_length): Handle alloca and VLA. | |
753 | (dump_strlen_info): Dump more state. | |
754 | (maybe_invalidate): Print more info. Decrease indentation. | |
755 | (unshare_strinfo): Set new member. | |
756 | (valid_builtin_call): Handle alloca and VLA. | |
757 | (maybe_warn_overflow): Check and set no-warning bit. Improve | |
758 | handling of offsets. Print allocated objects. | |
759 | (handle_builtin_strlen): Handle strinfo records with null lengths. | |
760 | (handle_builtin_strcpy): Add argument. Call maybe_warn_overflow. | |
761 | (is_strlen_related_p): Handle dynamically allocated objects. | |
762 | (get_range): Add argument. | |
763 | (handle_builtin_malloc): Rename... | |
764 | (handle_alloc): ...to this and handle all allocation functions. | |
765 | (handle_builtin_memset): Call maybe_warn_overflow. | |
766 | (count_nonzero_bytes): Handle more MEM_REF forms. | |
767 | (strlen_check_and_optimize_call): Call handle_alloc_call. Pass | |
768 | arguments to more callees. | |
769 | (handle_integral_assign): Add argument. Create strinfo entries | |
770 | for MEM_REF assignments. | |
771 | (check_and_optimize_stmt): Handle more MEM_REF forms. | |
772 | ||
773 | 2019-12-13 Iain Sandoe <iain@sandoe.co.uk> | |
774 | ||
775 | * config/rs6000/darwin.h (DARWIN_DYLIB1_SPEC): New. | |
776 | ||
777 | 2019-12-13 Jan Hubicka <hubicka@ucw.cz> | |
778 | ||
779 | * lto-streamer-in.c (input_function): Add node parameter. | |
780 | (lto_read_body_or_constructor): Use it. | |
781 | ||
782 | 2019-12-13 Roman Zhuykov <zhroma@ispras.ru> | |
783 | ||
784 | PR rtl-optimization/92591 | |
785 | * modulo-sched.c (ps_add_node_check_conflicts): Improve checking | |
786 | for history > 0 case. | |
787 | ||
788 | 2019-12-13 Roman Zhuykov <zhroma@ispras.ru> | |
789 | ||
790 | * modulo-sched.c (sms_schedule): Use param_sms_max_ii_factor | |
791 | value instead of macro. Adjust comment. | |
792 | (sms_schedule_by_order): Use parameter value without macro. | |
793 | * params.opt: Add ranges for modulo scheduler parameters, | |
794 | set param_sms_max_ii_factor = 2 by default. | |
795 | ||
796 | 2019-12-13 Roman Zhuykov <zhroma@ispras.ru> | |
797 | ||
798 | PR rtl-optimization/90001 | |
799 | * ddg.c (create_ddg): Init max_dist array for each node. | |
800 | (free_ddg): Free max_dist array. | |
801 | (create_ddg_edge): Use bool field instead of aux union. | |
802 | (set_recurrence_length): Use prepared max_dist information instead | |
803 | of calling longest_simple_path. | |
804 | (create_scc): Remove graph argument, fill node's aux.count with | |
805 | SCC id, and move set_recurrence_length call to... | |
806 | (create_ddg_all_sccs): ...here, after filling all max_dist arrays | |
807 | using Floyd–Warshall-like algorithm. | |
808 | (update_dist_to_successors): Remove the whole function. | |
809 | (longest_simple_path): Likewise. | |
810 | * ddg.h (struct ddg_node): Add max_dist pointer. | |
811 | (struct ddg_edge): Use bool field instead of unused aux union. | |
812 | ||
813 | 2019-12-13 Andrew Stubbs <ams@codesourcery.com> | |
814 | ||
815 | * config/gcn/gcn-valu.md (mulv64si3<exec>): Rename to ... | |
816 | (mul<mode>3<exec>): ... this, and implement sub-dword patterns. | |
817 | (mulv64si3_dup<exec>): Rename to ... | |
818 | (mul<mode>3_dup<exec>): ... this, and implement sub-dword patterns. | |
819 | ||
820 | 2019-12-13 Jan Hubicka <hubicka@ucw.cz> | |
821 | ||
822 | * ipa-utils.c (ipa_merge_profiles): Improve dumping; merge common | |
823 | targets. | |
824 | ||
825 | 2019-12-13 Andrew Stubbs <ams@codesourcery.com> | |
826 | ||
827 | * config/gcn/gcn-valu.md (sdwa): New mode attribute. | |
828 | (VCVT_FROM_MODE): Rename to ... | |
829 | (VCVT_MODE): ... this. | |
830 | (VCVT_TO_MODE): Delete mode iterator. | |
831 | (VCVT_FMODE): New mode iterator. | |
832 | (VCVT_IMODE): Likewise. | |
833 | (<cvt_name><VCVT_FROM_MODE:mode><VCVT_TO_MODE:mode>2<exec>): Change ... | |
834 | (<cvt_name><VCVT_MODE:mode><VCVT_FMODE:mode>2<exec>): ... to this. | |
835 | (<cvt_name><VCVT_FMODE:mode><VCVT_IMODE:mode>2<exec>): New. | |
836 | (zero_convert): New code iterator. | |
837 | (convop): New code attribute. | |
838 | (<convop><VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>) | |
839 | : New. | |
840 | (extend<VEC_ALL1REG_INT_ALT:mode><VEC_ALL1REG_INT_MODE:mode>2<exec>) | |
841 | : New. | |
842 | (vec_truncatev64div64si): Rename to ... | |
843 | (truncv64di<mode>2): ... this and implement sub-dword patterns. | |
844 | (vec_truncatev64div64si_exec): Rename to ... | |
845 | (truncv64di<mode>2_exec): ... this and implement sub-dword patterns. | |
846 | (<convop><mode>v64di2): New insn_and_split. | |
847 | (<convop><mode>v64di2_exec): Likewise. | |
848 | (mask_gather_load<mode>): Update truncate names. | |
849 | (mask_scatter_store<mode>): Likewise. | |
850 | * config/gcn/gcn.c (gcn_expand_scaled_offsets): Update truncate names. | |
851 | ||
852 | 2019-12-13 Dennis Zhang <dennis.zhang@arm.com> | |
853 | ||
854 | * config/aarch64/aarch64-arches.def (armv8.6-a): New. | |
855 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define | |
856 | __ARM_FEATURE_MATMUL_INT8, __ARM_FEATURE_BF16_VECTOR_ARITHMETIC and | |
857 | __ARM_FEATURE_BF16_SCALAR_ARITHMETIC when enabled. | |
858 | * config/aarch64/aarch64-option-extensions.def (i8mm, bf16): New. | |
859 | (fp): Disabling fp also disables i8mm and bf16. | |
860 | (simd): Disabling simd also disables i8mm. | |
861 | * config/aarch64/aarch64.h (AARCH64_FL_V8_6): New macro. | |
862 | (AARCH64_FL_I8MM, AARCH64_FL_BF16, AARCH64_FL_FOR_ARCH8_6): Likewise. | |
863 | (AARCH64_ISA_V8_6, AARCH64_ISA_I8MM, AARCH64_ISA_BF16): Likewise. | |
864 | (TARGET_I8MM, TARGET_BF16_FP, TARGET_BF16_SIMD): Likewise. | |
865 | * doc/invoke.texi (armv8.6-a, i8mm, bf16): Document new options | |
866 | and add a new table to list permissible values for ARCH. | |
867 | ||
868 | 2019-12-13 Jakub Jelinek <jakub@redhat.com> | |
869 | ||
870 | PR target/92908 | |
871 | * simplify-rtx.c (simplify_relational_operation): Punt for vector | |
872 | cmp_mode and scalar mode, if simplify_relational_operation returned | |
873 | const_true_rtx. | |
874 | (simplify_const_relational_operation): Change VOID_mode in function | |
875 | comment to VOIDmode. | |
876 | ||
877 | 2019-12-13 Kewen Lin <linkw@gcc.gnu.org> | |
878 | ||
879 | * config/rs6000/rs6000.c (adjust_vectorization_cost): New function. | |
880 | (rs6000_add_stmt_cost): Call adjust_vectorization_cost and update | |
881 | stmt_cost. | |
882 | ||
883 | 2019-12-12 Jakub Jelinek <jakub@redhat.com> | |
884 | ||
885 | PR target/92904 | |
886 | * config/i386/i386.c (ix86_gimplify_va_arg): If need_intregs and | |
887 | not need_temp, decrease alignment of the read because the GPR save | |
888 | area only guarantees 8-byte alignment. | |
889 | ||
890 | 2019-12-12 Georg-Johann Lay <avr@gjlay.de> | |
891 | ||
892 | Add support for some more AVR devices from avrxmega3 family. | |
893 | ||
894 | * config/avr/avr-mcus.def (attiny1604, attiny1606, attiny1607) | |
895 | (attiny402, attiny404, attiny406) | |
896 | (attiny804, attiny806, attiny807) | |
897 | (attiny202, attiny204): Add AVR_MCU lines to support them. | |
898 | * doc/avr-mmcu.texi: Regenerate. | |
899 | ||
900 | 2019-12-12 Jan Hubicka <hubicka@ucw.cz> | |
901 | ||
902 | * ipa-prop.c (read_ipcp_transformation_info): Fix undefined ordering | |
903 | of execution of function call parameters. | |
904 | ||
905 | 2019-12-12 Vineet Gupta <vgupta@synopsys.com> | |
906 | ||
907 | * config/arc/arc-modes.def (CC_FPUE): New Mode CC_FPUE which | |
908 | helps codegen generate exceptions even for quiet NaN. | |
909 | * config/arc/arc.c (arc_init_reg_tables): Handle New CC_FPUE mode. | |
910 | (get_arc_condition_code): Likewise. | |
911 | (arc_select_cc_mode): LT, LE, GT, GE to use the New CC_FPUE mode. | |
912 | * config/arc/arc.h (REVERSE_CONDITION): Handle New CC_FPUE mode. | |
913 | * config/arc/predicates.md (proper_comparison_operator): Likewise. | |
914 | * config/arc/fpu.md (cmpsf_fpu_trap): New Pattern for CC_FPUE. | |
915 | (cmpdf_fpu_trap): Likewise. | |
916 | ||
917 | 2019-12-12 Claudiu Zissulescu <claziss@synopsys.com> | |
918 | ||
919 | * config/arc/arc.md (iterator SDF): Check TARGET_FP_DP_BASE. | |
920 | (cstoredi4): Use TARGET_HARD_FLOAT. | |
921 | ||
922 | 2019-12-11 Jakub Jelinek <jakub@redhat.com> | |
923 | ||
924 | * opts.c (default_options_table): Move -ftree-loop-distribute-patterns | |
925 | entry from -O3 or later section to -O2 or later section. | |
926 | * doc/invoke.texi (-ftree-loop-distribute-patterns): Mention the | |
927 | option is enabled by default at -O2+ rather than just at -O3. | |
928 | ||
929 | PR target/92723 | |
930 | * tree-vect-patterns.c (vect_recog_rotate_pattern): If dt is not | |
931 | vect_internal_def, use oprnd1 as is, without trying to cast it. | |
932 | Formatting fix. | |
933 | ||
934 | 2019-12-11 Martin Sebor <msebor@redhat.com> | |
935 | ||
936 | * builtins.c (compute_objsize): Add an argument and set it to offset | |
937 | into destination. | |
938 | * builtins.h (compute_objsize): Add an argument. | |
939 | * tree-object-size.c (addr_object_size): Add an argument and set it | |
940 | to offset into destination. | |
941 | (compute_builtin_object_size): Same. | |
942 | * tree-object-size.h (compute_builtin_object_size): Add an argument. | |
943 | * tree-ssa-strlen.c (get_addr_stridx): Add an argument and set it | |
944 | to offset into destination. | |
945 | (maybe_warn_overflow): New function. | |
946 | (handle_store): Call maybe_warn_overflow to issue warnings. | |
947 | ||
948 | 2019-12-11 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
949 | ||
950 | * config/msp430/msp430.h (STARTFILE_SPEC) [!fexceptions]: Use | |
951 | crtbegin_no_eh.o if building for the C language. | |
952 | [fno-exceptions]: Use crtbegin_no_eh.o if building for any language | |
953 | except C. | |
954 | (ENDFILE_SPEC) [!fexceptions]: Use crtend_no_eh.o if building for | |
955 | the C language. | |
956 | [fno-exceptions]: Use crtend_no_eh.o if building for any language | |
957 | except C. | |
958 | * config/msp430/t-msp430: Add -fno-exceptions multilib. | |
959 | * doc/install.texi: Document --disable-no-exceptions multilib configure | |
960 | option. | |
961 | * doc/sourcebuild.texi: Document exceptions_enabled effective target. | |
962 | ||
963 | 2019-12-11 David Malcolm <dmalcolm@redhat.com> | |
964 | ||
965 | * pretty-print.c (pretty_printer::pretty_printer): New copy-ctor. | |
966 | (pretty_printer::clone): New vfunc implementation. | |
967 | * pretty-print.h (format_postprocessor::clone): New pure vfunc | |
968 | decl. | |
969 | (pretty_printer::pretty_printer): New copy-ctor decl. | |
970 | (pretty_printer::clone): New vfunc decl. | |
971 | ||
972 | 2019-12-11 David Malcolm <dmalcolm@redhat.com> | |
973 | ||
974 | * function-tests.c (selftest::make_fndecl): Make non-static. | |
975 | * selftest.h (selftest::make_fndecl): New decl. | |
976 | ||
977 | 2019-12-11 Lewis Hyatt <lhyatt@gmail.com> | |
978 | ||
979 | PR 91853 | |
980 | * pretty-print.c (pp_quoted_string): Avoid hex-escaping valid | |
981 | multibyte input. Fix off-by-one-bug printing the last byte before a | |
982 | hex-escaped output. | |
983 | (pp_character): Don't apply line wrapping in the middle of multibyte | |
984 | characters. | |
985 | (test_utf8): New test. | |
986 | (pretty_print_c_tests): Call the new test. | |
987 | ||
988 | 2019-12-11 Richard Earnshaw <rearnsha@arm.com> | |
989 | ||
990 | * config/arm/arm-cpus.in (ALL_SIMD_EXTERNAL): New fgroup. | |
991 | (ALL_SIMD): Use it. | |
992 | (ALL_FPU_EXTERNAL): New fgroup. | |
993 | (ALL_FP): Use it. | |
994 | (cortex-a55, cortex-a75, cortex-a76, cortex-a76ae): Remove redundant | |
995 | +simd from architecture specification. | |
996 | (cortex-a77, neoverse-n1, cortex-a75.cortex-a55): Likewise. | |
997 | * config/arm/arm.c (isa_all_fpubits, fpu_bitlist): Rename to ... | |
998 | (isa_all_fpubits_internal, fpu_bitlist_internal): ... these. | |
999 | (isa_all_fpbits): New bitmap. | |
1000 | (arm_option_override): Initialize it. | |
1001 | (arm_configure_build_target): If the target isa does not have any | |
1002 | FP enabled, do not warn about mismatches in FP-related feature bits. | |
1003 | ||
1004 | 2019-12-11 Stam Markianos-Wright <stam.markianos-wright@arm.com> | |
1005 | ||
1006 | * real.c (struct arm_bfloat_half_format, | |
1007 | encode_arm_bfloat_half, decode_arm_bfloat_half): New. | |
1008 | * real.h (arm_bfloat_half_format): New. | |
1009 | ||
1010 | 2019-12-11 Hongtao Liu <hongtao.liu@intel.com> | |
1011 | ||
1012 | PR target/92865 | |
1013 | * config/i386/i386-expand.c (ix86_valid_mask_cmp_mode): Enable | |
1014 | integer mask cmov when available even with TARGET_XOP. | |
1015 | ||
1016 | 2019-12-10 Jakub Jelinek <jakub@redhat.com> | |
1017 | ||
1018 | PR tree-optimization/92891 | |
1019 | * builtins.c (gimple_call_alloc_size): Convert size to sizetype | |
1020 | before returning it. | |
1021 | ||
1022 | 2019-12-10 Vladimir Makarov <vmakarov@redhat.com> | |
1023 | ||
1024 | PR rtl-optimization/92796 | |
1025 | * lra-int.h (lra_risky_transformations_p): Rename to | |
1026 | check_and_force_assignment_correctness_p. | |
1027 | * lra-assigns.c: Ditto. | |
1028 | (lra_assign): Reset check_and_force_assignment_correctness_p. | |
1029 | * lra-constraints.c (lra_risky_transformations_p): Rename to | |
1030 | check_and_force_assignment_correctness_p. | |
1031 | (lra_constraints): Set up check_and_force_assignment_correctness_p | |
1032 | only for the 1st sub-pass. | |
1033 | * lra-eliminations.c (process_insn_for_elimination): Set up | |
1034 | check_and_force_assignment_correctness_p if the insn chnaged its | |
1035 | code. | |
1036 | ||
1037 | 2019-12-10 Jakub Jelinek <jakub@redhat.com> | |
1038 | ||
1039 | PR rtl-optimization/92882 | |
1040 | * regstat.c (regstat_bb_compute_calls_crossed): Don't check | |
1041 | INSN_UID against DF_INSN_SIZE or use DF_INSN_INFO_GET unless | |
1042 | NONDEBUG_INSN_P. | |
1043 | ||
1044 | PR ipa/92883 | |
1045 | * ipa-cp.c (propagate_vr_across_jump_function): Pass jvr rather | |
1046 | than *jfunc->m_vr to intersect. Formatting fix. | |
1047 | ||
1048 | PR middle-end/92825 | |
1049 | * cfgexpand.c (add_stack_protection_conflicts): Change return type | |
1050 | from void to bool, return true if at least one stack_vars[i].decl | |
1051 | is addressable. | |
1052 | (record_or_union_type_has_array_p, stack_protect_decl_p): Remove. | |
1053 | (expand_used_vars): Don't call stack_protect_decl_p, instead for | |
1054 | -fstack-protector-strong set gen_stack_protect_signal to true | |
1055 | if add_stack_protection_conflicts returned true. Formatting fixes. | |
1056 | * doc/invoke.texi (-fstack-protector-strong): Clarify that optimized | |
1057 | out variables or variables not living on the stack don't count. | |
1058 | (-fstack-protector): Likewise. Clarify it affects >= 8 byte arrays | |
1059 | rather than > 8 byte. | |
1060 | ||
1061 | * ipa-param-manipulation.c | |
1062 | (ipa_param_body_adjustments::register_replacement): Fix comment typo | |
1063 | - accross -> across. | |
1064 | * ipa-sra.c (propagate_used_across_scc_edge, ipa_sra_analysis): | |
1065 | Likewise. | |
1066 | (param_splitting_across_edge): Fix typo in dump message - accross | |
1067 | -> across. | |
1068 | ||
1069 | 2019-12-10 Jan Hubicka <hubicka@ucw.cz> | |
1070 | ||
1071 | * cgraph.c (cgraph_node::verify_node): Verify tp_first_run. | |
1072 | * cgraph.h (cgrpah_node): Turn tp_first_run back to int. | |
1073 | * cgraphunit.c (tp_first_run_node_cmp): Do not watch for overflows. | |
1074 | (expand_all_functions): First expand ordered section and then | |
1075 | unordered. | |
1076 | * profile.c (compute_value_histograms): Error on out of range | |
1077 | tp_first_runs. | |
1078 | ||
1079 | 2019-12-10 Jan Hubicka <hubicka@ucw.cz> | |
1080 | ||
1081 | * predict.c (compute_function_frequency): Check for presence of IPA | |
1082 | profile. | |
1083 | ||
1084 | 2019-12-10 Jan Hubicka <hubicka@ucw.cz> | |
1085 | ||
1086 | * varasm.c (default_function_section): Fix confused tests for | |
1087 | tp_first_run reordering. | |
1088 | ||
1089 | 2019-12-10 Richard Sandiford <richard.sandiford@arm.com> | |
1090 | ||
1091 | * config/aarch64/aarch64.c (aarch64_hard_regno_mode_ok): Don't | |
1092 | allow SVE modes in GPRs. | |
1093 | ||
1094 | 2019-12-10 Richard Sandiford <richard.sandiford@arm.com> | |
1095 | ||
1096 | * config/aarch64/iterators.md (vccore): New iterator. | |
1097 | * config/aarch64/aarch64-sve.md (vec_series<mode>): Use it instead | |
1098 | of vwcore. | |
1099 | (*vec_series<mode>_plus): Likewise. | |
1100 | ||
1101 | 2019-12-10 Frederik Harwath <frederik@codesourcery.com> | |
1102 | ||
1103 | * omp-low.c (scan_omp_for): Use clause location in warning. | |
1104 | ||
1105 | 2019-12-10 Richard Sandiford <richard.sandiford@arm.com> | |
1106 | ||
1107 | * dwarf2out.c (loc_descriptor): Punt for MODE_VECTOR_BOOL. | |
1108 | (add_const_value_attribute): Likewise. | |
1109 | ||
1110 | 2019-12-10 Richard Sandiford <richard.sandiford@arm.com> | |
1111 | ||
1112 | * tree-vect-loop.c (vect_create_epilog_for_reduction): When | |
1113 | handling direct_slp_reduc, allow the PHI arguments to have | |
1114 | a different type from the vector elements. | |
1115 | ||
1116 | 2019-12-10 Richard Sandiford <richard.sandiford@arm.com> | |
1117 | ||
1118 | * tree-vect-stmts.c (vectorizable_condition): Record the loop | |
1119 | masks required for extract-last reductions. | |
1120 | ||
1121 | 2019-12-10 Richard Sandiford <richard.sandiford@arm.com> | |
1122 | ||
1123 | * tree-vect-stmts.c (vect_finish_replace_stmt): Always use the | |
1124 | original scalar statement rather than a pattern statement. | |
1125 | (vectorizable_condition): Likewise, in the handling of extract-last | |
1126 | reductions. | |
1127 | ||
1128 | 2019-12-10 Richard Sandiford <richard.sandiford@arm.com> | |
1129 | ||
1130 | * tree-vect-loop.c (vectorizable_reduction): Don't use | |
1131 | EXTRACT_LAST_REDUCTION for chained reductions. | |
1132 | ||
1133 | 2019-12-10 Richard Sandiford <richard.sandiford@arm.com> | |
1134 | ||
1135 | * ipa-utils.h (get_odr_name_for_type): Check for a TYPE_DECL. | |
1136 | * ipa-devirt.c (warn_types_mismatch): Don't call xstrdup for the | |
1137 | second demangled name. | |
1138 | ||
1139 | 2019-12-10 Jakub Jelinek <jakub@redhat.com> | |
1140 | ||
1141 | * config/i386/i386.c (IX86_LEA_PRIORITY): Fix comment typos. | |
1142 | ||
1143 | 2019-12-10 Martin Liska <mliska@suse.cz> | |
1144 | ||
1145 | PR tree-optimization/92862 | |
1146 | * predict.c (predict_paths_leading_to_edge): Fix typo from e to e2. | |
1147 | * tree-ssa-loop-niter.c (loop_only_exit_p): Return false | |
1148 | instead of true; | |
1149 | ||
1150 | 2019-12-09 David Malcolm <dmalcolm@redhat.com> | |
1151 | ||
1152 | * gcc-rich-location.c | |
1153 | (maybe_range_label_for_tree_type_mismatch::get_text): Replace | |
1154 | label_text ctor call with label_text::borrow. | |
1155 | * gcc-rich-location.h (text_range_label::get_text): Replace | |
1156 | label_text ctor called with false with label_text::borrow. | |
1157 | ||
1158 | 2019-12-09 David Malcolm <dmalcolm@redhat.com> | |
1159 | ||
1160 | * diagnostic-show-locus.c (diagnostic_show_locus): Remove initial | |
1161 | newline. | |
1162 | (selftest::test_diagnostic_show_locus_unknown_location): Remove | |
1163 | initial newline from expected outputs. | |
1164 | (selftest::test_one_liner_simple_caret): Likewise. | |
1165 | (selftest::test_one_liner_caret_and_range): Likewise. | |
1166 | (selftest::test_one_liner_multiple_carets_and_ranges): Likewise. | |
1167 | (selftest::test_one_liner_fixit_insert_before): Likewise. | |
1168 | (selftest::test_one_liner_fixit_insert_after): Likewise. | |
1169 | (selftest::test_one_liner_fixit_remove): Likewise. | |
1170 | (selftest::test_one_liner_fixit_replace): Likewise. | |
1171 | (selftest::test_one_liner_fixit_replace_non_equal_range): | |
1172 | Likewise. | |
1173 | (selftest::test_one_liner_fixit_replace_equal_secondary_range): | |
1174 | Likewise. | |
1175 | (selftest::test_one_liner_fixit_validation_adhoc_locations): | |
1176 | Likewise. | |
1177 | (selftest::test_one_liner_many_fixits_1): Likewise. | |
1178 | (selftest::test_one_liner_many_fixits_2): Likewise. | |
1179 | (selftest::test_one_liner_labels): Likewise. | |
1180 | (selftest::test_one_liner_simple_caret_utf8): Likewise. | |
1181 | (selftest::test_one_liner_caret_and_range_utf8): Likewise. | |
1182 | (selftest::test_one_liner_multiple_carets_and_ranges_utf8): | |
1183 | Likewise. | |
1184 | (selftest::test_one_liner_fixit_insert_before_utf8): Likewise. | |
1185 | (selftest::test_one_liner_fixit_insert_after_utf8): Likewise. | |
1186 | (selftest::test_one_liner_fixit_remove_utf8): Likewise. | |
1187 | (selftest::test_one_liner_fixit_replace_utf8): Likewise. | |
1188 | (selftest::test_one_liner_fixit_replace_non_equal_range_utf8): | |
1189 | Likewise. | |
1190 | (selftest::test_one_liner_fixit_replace_equal_secondary_range_utf8): | |
1191 | Likewise. | |
1192 | (selftest::test_one_liner_fixit_validation_adhoc_locations_utf8): | |
1193 | Likewise. | |
1194 | (selftest::test_one_liner_many_fixits_1_utf8): Likewise. | |
1195 | (selftest::test_one_liner_many_fixits_2_utf8): Likewise. | |
1196 | (selftest::test_one_liner_labels_utf8): Likewise. | |
1197 | (selftest::test_add_location_if_nearby): Likewise. | |
1198 | (selftest::test_diagnostic_show_locus_fixit_lines): Likewise. | |
1199 | (selftest::test_overlapped_fixit_printing): Likewise. | |
1200 | (selftest::test_overlapped_fixit_printing_utf8): Likewise. | |
1201 | (selftest::test_overlapped_fixit_printing_2): Likewise. | |
1202 | (selftest::test_fixit_insert_containing_newline): Likewise. | |
1203 | (selftest::test_fixit_insert_containing_newline_2): Likewise. | |
1204 | (selftest::test_fixit_replace_containing_newline): Likewise. | |
1205 | (selftest::test_fixit_deletion_affecting_newline): Likewise. | |
1206 | (selftest::test_line_numbers_multiline_range): Likewise. | |
1207 | * diagnostic.c (default_diagnostic_finalizer): Add pp_newline call | |
1208 | before call to diagnostic_show_locus. | |
1209 | (diagnostic_append_note): Likewise. | |
1210 | ||
1211 | 2019-12-09 Martin Sebor <msebor@redhat.com> | |
1212 | ||
1213 | PR middle-end/92761 | |
1214 | PR middle-end/92762 | |
1215 | * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): Tighten | |
1216 | up tests. | |
1217 | * hash-table.h (hash_table::expand): Use placement new to copy | |
1218 | construct objects in uninitialized storage. | |
1219 | (hash_table::empty_slow): Avoid invoking copy assignment on | |
1220 | uninitialized objects. | |
1221 | ||
1222 | 2019-12-09 Lewis Hyatt <lhyatt@gmail.com> | |
1223 | ||
1224 | PR preprocessor/49973 | |
1225 | * input.c (location_compute_display_column): New function to help with | |
1226 | multibyte awareness in diagnostics. | |
1227 | (test_cpp_utf8): New self-test. | |
1228 | (input_c_tests): Call the new test. | |
1229 | * input.h (location_compute_display_column): Declare. | |
1230 | * diagnostic-show-locus.c: Pervasive changes to add multibyte awareness | |
1231 | to all classes and functions. | |
1232 | (enum column_unit): New enum. | |
1233 | (class exploc_with_display_col): New class. | |
1234 | (class layout_point): Convert m_column member to array m_columns[2]. | |
1235 | (layout_range::contains_point): Add col_unit argument. | |
1236 | (test_layout_range_for_single_point): Pass new argument. | |
1237 | (test_layout_range_for_single_line): Likewise. | |
1238 | (test_layout_range_for_multiple_lines): Likewise. | |
1239 | (line_bounds::convert_to_display_cols): New function. | |
1240 | (layout::get_state_at_point): Add col_unit argument. | |
1241 | (make_range): Use empty filename rather than dummy filename. | |
1242 | (get_line_width_without_trailing_whitespace): Rename to... | |
1243 | (get_line_bytes_without_trailing_whitespace): ...this. | |
1244 | (test_get_line_width_without_trailing_whitespace): Rename to... | |
1245 | (test_get_line_bytes_without_trailing_whitespace): ...this. | |
1246 | (class layout): m_exploc changed to exploc_with_display_col from | |
1247 | plain expanded_location. | |
1248 | (layout::get_linenum_width): New accessor member function. | |
1249 | (layout::get_x_offset_display): Likewise. | |
1250 | (layout::calculate_linenum_width): New subroutine for the constuctor. | |
1251 | (layout::calculate_x_offset_display): Likewise. | |
1252 | (layout::layout): Use the new subroutines. Add multibyte awareness. | |
1253 | (layout::print_source_line): Add multibyte awareness. | |
1254 | (layout::print_line): Likewise. | |
1255 | (layout::print_annotation_line): Likewise. | |
1256 | (line_label::line_label): Likewise. | |
1257 | (layout::print_any_labels): Likewise. | |
1258 | (layout::annotation_line_showed_range_p): Likewise. | |
1259 | (get_printed_columns): Likewise. | |
1260 | (class line_label): Rename m_length to m_display_width. | |
1261 | (get_affected_columns): Rename to... | |
1262 | (get_affected_range): ...this; add col_unit argument and multibyte | |
1263 | awareness. | |
1264 | (class correction): Add m_affected_bytes and m_display_cols | |
1265 | members. Rename m_len to m_byte_length for clarity. Add multibyte | |
1266 | awareness throughout. | |
1267 | (correction::insertion_p): Add multibyte awareness. | |
1268 | (correction::compute_display_cols): New function. | |
1269 | (correction::ensure_terminated): Use new member name m_byte_length. | |
1270 | (line_corrections::add_hint): Add multibyte awareness. | |
1271 | (layout::print_trailing_fixits): Likewise. | |
1272 | (layout::get_x_bound_for_row): Likewise. | |
1273 | (test_one_liner_simple_caret_utf8): New self-test analogous to the one | |
1274 | with _utf8 suffix removed, testing multibyte awareness. | |
1275 | (test_one_liner_caret_and_range_utf8): Likewise. | |
1276 | (test_one_liner_multiple_carets_and_ranges_utf8): Likewise. | |
1277 | (test_one_liner_fixit_insert_before_utf8): Likewise. | |
1278 | (test_one_liner_fixit_insert_after_utf8): Likewise. | |
1279 | (test_one_liner_fixit_remove_utf8): Likewise. | |
1280 | (test_one_liner_fixit_replace_utf8): Likewise. | |
1281 | (test_one_liner_fixit_replace_non_equal_range_utf8): Likewise. | |
1282 | (test_one_liner_fixit_replace_equal_secondary_range_utf8): Likewise. | |
1283 | (test_one_liner_fixit_validation_adhoc_locations_utf8): Likewise. | |
1284 | (test_one_liner_many_fixits_1_utf8): Likewise. | |
1285 | (test_one_liner_many_fixits_2_utf8): Likewise. | |
1286 | (test_one_liner_labels_utf8): Likewise. | |
1287 | (test_diagnostic_show_locus_one_liner_utf8): Likewise. | |
1288 | (test_overlapped_fixit_printing_utf8): Likewise. | |
1289 | (test_overlapped_fixit_printing): Adapt for changes to | |
1290 | get_affected_columns, get_printed_columns and class corrections. | |
1291 | (test_overlapped_fixit_printing_2): Likewise. | |
1292 | (test_linenum_sep): New constant. | |
1293 | (test_left_margin): Likewise. | |
1294 | (test_offset_impl): Helper function for new test. | |
1295 | (test_layout_x_offset_display_utf8): New test. | |
1296 | (diagnostic_show_locus_c_tests): Call new tests. | |
1297 | ||
1298 | 2019-12-09 Eric Botcazou <ebotcazou@adacore.com> | |
1299 | ||
1300 | * tree.c (build_array_type_1): Add SET_CANONICAL parameter and compute | |
1301 | TYPE_CANONICAL from the element type only if it is true. Remove a few | |
1302 | obsolete lines and adjust recursive call. | |
1303 | (fld_process_array_type): Adjust call to build_array_type_1. | |
1304 | (build_array_type): Likewise. | |
1305 | (build_nonshared_array_type): Likewise. | |
1306 | ||
1307 | 2019-12-09 Andrew Stubbs <ams@codesourcery.com> | |
1308 | ||
1309 | * config/gcn/gcn-valu.md (gather<mode>_insn_1offset<exec>): Change | |
1310 | %s to %o in asm output. | |
1311 | (gather<mode>_insn_2offsets<exec>): Likewise. | |
1312 | ||
1313 | 2019-12-09 Richard Earnshaw <rearnsha@arm.com> | |
1314 | ||
1315 | * config/arm/t-multilib: Use arm->thumb multilib reuse rules | |
1316 | on a-profile. | |
1317 | ||
1318 | 2019-12-09 Segher Boessenkool <segher@kernel.crashing.org> | |
1319 | ||
1320 | * config/rs6000/rs6000.md (unnamed mfcr define_insn): Name this | |
1321 | set<mode>_cc. | |
1322 | (unnamed define_insn_and_split): Delete. | |
1323 | (unnamed define_insn): Delete. | |
1324 | (unnamed define_insn): Delete. | |
1325 | (unnamed define_split): Delete. | |
1326 | ||
1327 | 2019-12-09 Matthew Malcomson <matthew.malcomson@arm.com> | |
1328 | ||
1329 | * regstat.c (regstat_bb_compute_calls_crossed): Add a cast to | |
1330 | avoid a warning. | |
1331 | ||
1332 | 2019-12-09 Matthew Malcomson <matthew.malcomson@arm.com> | |
1333 | ||
1334 | PR middle-end/92410 | |
1335 | * bb-reorder.c (pass_reorder_blocks::execute): Recompute | |
1336 | dataflow luids once basic blocks have been reordered. | |
1337 | * haifa-sched.c (reemit_notes): Create df insn record for each | |
1338 | new note. | |
1339 | * regstat.c (regstat_bb_compute_calls_crossed): Assert every | |
1340 | insn has an insn record before trying to use it. | |
1341 | ||
1342 | 2019-12-09 Hongtao Liu <hongtao.liu@intel.com> | |
1343 | ||
1344 | * common/config/i386/i386-common.c | |
1345 | (OPTION_MASK_ISA_AVX5124FMAPS_SET): Rename to | |
1346 | OPTION_MASK_ISA2_AVX5124FMAPS_SET. | |
1347 | (OPTION_MASK_ISA_AVX5124VNNIW_SET, OPTION_MASK_ISA_AVX512BF16_SET, | |
1348 | OPTION_MASK_ISA_AVX512VP2INTERSECT_SET, | |
1349 | OPTION_MASK_ISA_PCONFIG_SET, OPTION_MASK_ISA_WBNOINVD_SET, | |
1350 | OPTION_MASK_ISA_SGX_SET, OPTION_MASK_ISA_CX16_SET, | |
1351 | OPTION_MASK_ISA_MOVBE_SET, OPTION_MASK_ISA_PTWRITE_SET, | |
1352 | OPTION_MASK_ISA_MWAITX_SET, OPTION_MASK_ISA_CLZERO_SET, | |
1353 | OPTION_MASK_ISA_RDPID_SET, OPTION_MASK_ISA_VAES_SET, | |
1354 | OPTION_MASK_ISA_MOVDIR64B_SET, OPTION_MASK_ISA_WAITPKG_SET, | |
1355 | OPTION_MASK_ISA_CLDEMOTE_SET, OPTION_MASK_ISA_ENQCMD_SET, | |
1356 | OPTION_MASK_ISA_AVX5124FMAPS_UNSET, | |
1357 | OPTION_MASK_ISA_AVX5124VNNIW_UNSET, | |
1358 | OPTION_MASK_ISA_AVX512BF16_UNSET, | |
1359 | OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET, | |
1360 | OPTION_MASK_ISA_PCONFIG_UNSET, OPTION_MASK_ISA_WBNOINVD_UNSET, | |
1361 | OPTION_MASK_ISA_SGX_UNSET, OPTION_MASK_ISA_CX16_UNSET, | |
1362 | OPTION_MASK_ISA_MOVBE_UNSET, OPTION_MASK_ISA_PTWRITE_UNSET, | |
1363 | OPTION_MASK_ISA_MWAITX_UNSET, OPTION_MASK_ISA_CLZERO_UNSET, | |
1364 | OPTION_MASK_ISA_RDPID_UNSET, OPTION_MASK_ISA_VAES_UNSET, | |
1365 | OPTION_MASK_ISA_MOVDIR64B_UNSET, OPTION_MASK_ISA_WAITPKG_UNSET, | |
1366 | OPTION_MASK_ISA_CLDEMOTE_UNSET, OPTION_MASK_ISA_ENQCMD_UNSET, | |
1367 | OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW, | |
1368 | OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT, | |
1369 | OPTION_MASK_ISA_PCONFIG, OPTION_MASK_ISA_WBNOINVD, | |
1370 | OPTION_MASK_ISA_SGX, OPTION_MASK_ISA_CX16, OPTION_MASK_ISA_MOVBE, | |
1371 | OPTION_MASK_ISA_PTWRITE, OPTION_MASK_ISA_MWAITX, | |
1372 | OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_RDPID, | |
1373 | OPTION_MASK_ISA_VAES, OPTION_MASK_ISA_MOVDIR64B, | |
1374 | OPTION_MASK_ISA_WAITPKG, OPTION_MASK_ISA_CLDEMOTE, | |
1375 | OPTION_MASK_ISA_ENQCMD): Ditto. | |
1376 | * config/i386/i386-builtin.def | |
1377 | (OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW, | |
1378 | OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT, | |
1379 | OPTION_MASK_ISA_WBNOINVD, OPTION_MASK_ISA_PTWRITE, | |
1380 | OPTION_MASK_ISA_RDPID, OPTION_MASK_ISA_VAES, | |
1381 | OPTION_MASK_ISA_MOVDIR64B, OPTION_MASK_ISA_ENQCMD): Ditto. | |
1382 | * config/i386/i386-builtins.c (OPTION_MASK_ISA_MWAITX, | |
1383 | OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_WAITPKG, | |
1384 | OPTION_MASK_ISA_CLDEMOTE, OPTION_MASK_ISA_WBNOINVD): Ditto. | |
1385 | * config/i386/i386-c.c | |
1386 | (OPTION_MASK_ISA_AVX5124FMAPS, OPTION_MASK_ISA_AVX5124VNNIW, | |
1387 | OPTION_MASK_ISA_AVX512BF16, OPTION_MASK_ISA_AVX512VP2INTERSECT, | |
1388 | OPTION_MASK_ISA_PCONFIG, OPTION_MASK_ISA_WBNOINVD, | |
1389 | OPTION_MASK_ISA_SGX, OPTION_MASK_ISA_CX16, OPTION_MASK_ISA_MOVBE, | |
1390 | OPTION_MASK_ISA_PTWRITE, OPTION_MASK_ISA_MWAITX, | |
1391 | OPTION_MASK_ISA_CLZERO, OPTION_MASK_ISA_RDPID, | |
1392 | OPTION_MASK_ISA_VAES, OPTION_MASK_ISA_MOVDIR64B, | |
1393 | OPTION_MASK_ISA_WAITPKG, OPTION_MASK_ISA_CLDEMOTE, | |
1394 | OPTION_MASK_ISA_ENQCMD): Ditto. | |
1395 | * config/i386/i386-option.c: Ditto | |
1396 | * config/i386/i386.opt: Ditto.. | |
1397 | * config/i386/i386.h: (TARGET_ISA_AVX5124FMAPS, | |
1398 | TARGET_ISA_AVX5124VNNIW, TARGET_ISA_AVX512BF16, | |
1399 | TARGET_ISA_AVX512VP2INTERSECT, TARGET_ISA_PCONFIG, | |
1400 | TARGET_ISA_WBNOINVD, TARGET_ISA_SGX, TARGET_ISA_CX16, | |
1401 | TARGET_ISA_MOVBE, TARGET_ISA_PTWRITE, TARGET_ISA_MWAITX, | |
1402 | TARGET_ISA_CLZERO, TARGET_ISA_RDPID, TARGET_ISA_VAES, | |
1403 | TARGET_ISA_MOVDIR64B, TARGET_ISA_WAITPKG, TARGET_ISA_CLDEMOTE) | |
1404 | TARGET_ISA_ENQCMD): Ditto. | |
1405 | ||
1406 | 2019-12-09 Sudakshina Das <sudi.das@arm.com> | |
1407 | Richard Sandiford <richard.sandiford@arm.com> | |
1408 | ||
1409 | * tree-vect-stmt.c (vectorizable_shift): Condition ndts for | |
1410 | vect_model_simple_cost call on scalar_shift_arg. | |
1411 | ||
1412 | 2019-12-09 Jakub Jelinek <jakub@redhat.com> | |
1413 | ||
1414 | PR tree-optimization/92834 | |
1415 | * match.pd (A - ((A - B) & -(C cmp D)) -> (C cmp D) ? B : A, | |
1416 | A + ((B - A) & -(C cmp D)) -> (C cmp D) ? B : A): New simplifications. | |
1417 | ||
1418 | 2019-12-09 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
1419 | ||
1420 | PR tree-optimization/89007 | |
1421 | * tree-vect-patterns.c (vect_recog_average_pattern): If there is no | |
1422 | target support available, generate code to distribute rshift over plus | |
1423 | and add a carry. | |
1424 | ||
1425 | 2019-12-09 Martin Liska <mliska@suse.cz> | |
1426 | ||
1427 | PR ipa/92737 | |
1428 | * cgraph.c (symbol_table_test::symbol_table_test): Fix | |
1429 | coding style. | |
1430 | * cgraph.h (symtab_node::symtab_node): New constructor. | |
1431 | (cgraph_node::cgraph_node): Likewise. | |
1432 | (varpool_node::varpool_node): Likewise. | |
1433 | (symbol_table::allocate_cgraph_symbol): Use newly | |
1434 | created constructor. | |
1435 | (symbol_table::allocate_cgraph_symbol): Remove. | |
1436 | * cgraphunit.c (symtab_terminator): Likewise. | |
1437 | * varpool.c (varpool_node::create_empty): Use newly | |
1438 | created constructor. | |
1439 | ||
1440 | 2019-12-09 Hongtao Liu <hongtao.liu@intel.com> | |
1441 | ||
1442 | PR target/92686 | |
1443 | * config/i386/sse.md | |
1444 | (*<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>, | |
1445 | *<avx512>_cmp<mode>3<mask_scalar_merge_name>, | |
1446 | *<avx512>_ucmp<mode>3<mask_scalar_merge_name>, | |
1447 | *<avx512>_ucmp<mode>3<mask_scalar_merge_name>): New. | |
1448 | * config/i386/i386.c (ix86_print_operand): New operand substitution. | |
1449 | * config/i386/i386-expand.c (ix86_valid_mask_cmp_mode): | |
1450 | New function. | |
1451 | (ix86_expand_sse_cmp): Relax condition for integer mask from | |
1452 | 512-bit vector to all 128/256/512-bit vector. Delete code gen | |
1453 | for avx512f compare patterns since we have generic pattern now. | |
1454 | (ix86_expand_sse_movcc): Adjust condition and codegen for | |
1455 | maskcmp. | |
1456 | (ix86_expand_int_sse_cmp): Don't canonicalize the comparison | |
1457 | when corresponding vector compare is available. | |
1458 | ||
1459 | 2019-12-08 Sandra Loosemore <sandra@codesourcery.com> | |
1460 | ||
1461 | Revert: | |
1462 | 2019-12-05 Sandra Loosemore <sandra@codesourcery.com> | |
1463 | ||
1464 | * config/nios2/linux.h (LINK_EH_SPEC): Define. | |
1465 | ||
1466 | 2019-12-07 Jan Hubicka <hubicka@ucw.cz> | |
1467 | ||
1468 | * cgraph.c (cgraph_node::dump): Make tp_first_run 64bit. | |
1469 | * cgraph.h (cgrpah_node): Likewise. | |
1470 | (tp_first_run_node_cmp): Deeclare. | |
1471 | * cgraphunit.c (node_cmp): Rename to ... | |
1472 | (tp_first_run_node_cmp): ... this; export; watch for 64bit overflows; | |
1473 | clear tp_first_run for no_reorder and !flag_profile_reorder_functions. | |
1474 | (expand_all_functions): Collect tp_first_run and normal functions to | |
1475 | two vectors so the other functions remain sorted. Do not check for | |
1476 | flag_profile_reorder_functions it is function local flag. | |
1477 | * profile.c (compute_value_histograms): Update tp_first_run printing. | |
1478 | ||
1479 | 2019-12-07 Jan Hubicka <hubicka@ucw.cz> | |
1480 | ||
1481 | * opts.c (common_handle_option): Do not clear ipa_reference for | |
1482 | -fprofile-use. | |
1483 | ||
1484 | 2019-12-07 Jan Hubicka <hubicka@ucw.cz> | |
1485 | ||
1486 | * ipa-split.c (split_function): Preserve 0 tp_first_run. | |
1487 | ||
1488 | 2019-12-07 Jan Hubicka <hubicka@ucw.cz> | |
1489 | ||
1490 | * ipa-inline-analysis.c (do_estimate_edge_time): Silence overactive | |
1491 | sanity check. | |
1492 | ||
1493 | 2019-12-07 Jan Hubicka <hubicka@ucw.cz> | |
1494 | ||
1495 | PR tree-optimization/92860 | |
1496 | * common.opt (fprofile-reorder-functions, ftoplevel-reorder): Add | |
1497 | Optimization flag. | |
1498 | ||
1499 | 2019-12-07 Marek Polacek <polacek@redhat.com> | |
1500 | ||
1501 | PR c++/91678 - wrong error with decltype and location wrapper. | |
1502 | * fold-const.c (maybe_lvalue_p): Handle VIEW_CONVERT_EXPR. | |
1503 | ||
1504 | 2019-12-07 Eric Botcazou <ebotcazou@adacore.com> | |
1505 | ||
1506 | PR middle-end/90840 | |
1507 | * expr.c (expand_assignment): In the case of a CONCAT on the LHS, make | |
1508 | sure to pass a valid inner mode in calls to simplify_gen_subreg. | |
1509 | ||
1510 | 2019-12-07 Tobias Burnus <tobias@codesourcery.com> | |
1511 | David Malcolm <dmalcolm@redhat.com> | |
1512 | Jakub Jelinek <jakub@redhat.com> | |
1513 | ||
1514 | PR c/87488 | |
1515 | * pretty-print.c (pp_begin_url, pp_end_url, test_urls): Use BEL | |
1516 | instead of ST sequence to terminate OSC 8 strings. | |
1517 | ||
1518 | 2019-12-06 Andreas Krebbel <krebbel@linux.ibm.com> | |
1519 | Vladimir Makarov <vmakarov@redhat.com> | |
1520 | ||
1521 | PR rtl-optimization/92176 | |
1522 | * lra.c (simplify_subreg_regno): Don't permit unconditional | |
1523 | changing mode for LRA too. | |
1524 | ||
1525 | 2019-12-06 Richard Sandiford <richard.sandiford@arm.com> | |
1526 | ||
1527 | * target.h (TCTX_ALLOCATION, TCTX_DEALLOCATION, TCTX_EXCEPTIONS) | |
1528 | (TCTX_CAPTURE_BY_COPY): New type_context_kinds. | |
1529 | * config/aarch64/aarch64-sve-builtins.cc (verify_type_context): | |
1530 | Handle them. | |
1531 | ||
1532 | 2019-12-06 Andrew Stubbs <ams@codesourcery.com> | |
1533 | ||
1534 | * config/gcn/gcn-valu.md (gather<mode>_insn_1offset<exec>): Use %o | |
1535 | in the asm output. | |
1536 | ||
1537 | 2019-12-06 Andrew Stubbs <ams@codesourcery.com> | |
1538 | ||
1539 | * config/gcn/gcn-valu.md (VEC_1REG_MODE): Remove V64QI and V64HI. | |
1540 | (VEC_1REG_ALT): Likewise. | |
1541 | (VEC_ALL1REG_MODE): New mode iterator. | |
1542 | (VEC_1REG_INT_MODE): Remove V64QI and V64HI. | |
1543 | (VEC_1REG_INT_ALT): Likewise. | |
1544 | (VEC_ALL1REG_INT_MODE): New mode interator. | |
1545 | (VEC_ALL1REG_INT_ALT): Likewise. | |
1546 | (VEC_REG_MODE): Remove V64QI and V64HI. | |
1547 | (VEC_ALLREG_MODE): New mode interator. | |
1548 | (vec_merge): Change to VEC_ALLREG_MODE. | |
1549 | (vec_merge_with_clobber): Likewise. | |
1550 | (vec_merge_with_vcc): Likewise. | |
1551 | (mov<mode>): Likewise. | |
1552 | (mov<mode>_unspec): Likewise. | |
1553 | (*mov<mode>): Change to VEC_ALL1REG_MODE. | |
1554 | (mov<mode>_exec): Likewise. | |
1555 | (*mov<mode>_exec_match): Likewise. | |
1556 | (mov<mode>_sgprbase): Likewise. | |
1557 | (reload_in<mode>): Change to VEC_ALLREG_MODE. | |
1558 | (reload_out<mode>): Likewise. | |
1559 | (scalar address splits): Likewise. | |
1560 | (*vec_set<mode>): Change to VEC_ALL1REG_MODE. | |
1561 | (vec_set<mode>): Change to VEC_ALLREG_MODE. | |
1562 | (*vec_set<mode>_1): Change to VEC_ALL1REG_MODE. | |
1563 | (vec_duplicate<mode><exec>): Likewise. | |
1564 | (vec_extract<mode><scalar_mode>): Likewise. | |
1565 | (vec_init<mode><scalar_mode>): Change to VEC_ALLREG_MODE. | |
1566 | (gather_load<mode>): Likewise. | |
1567 | (gather<mode>_exec): Likewise. | |
1568 | (gather<mode>_expr<exec>): Likewise. | |
1569 | (gather<mode>_insn_1offset<exec>): Likewise. | |
1570 | (gather<mode>_insn_1offset_ds<exec>): Likewise. | |
1571 | (gather<mode>_insn_2offsets<exec>): Likewise. | |
1572 | (ds_bpermute<mode>): Change to VEC_ALL1REG_MODE. | |
1573 | (VEC_INT_MODE): Remove V64QI and V64HI. | |
1574 | (vcond_mask_<mode>di): Change to VEC_ALLREG_MODE. | |
1575 | (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Change to | |
1576 | VEC_ALL1REG_MODE. | |
1577 | (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise. | |
1578 | (vcondu<VEC_1REG_MODE:mode><VEC_1REG_INT_ALT:mode>): Likewise. | |
1579 | (vcondu<VEC_1REG_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise. | |
1580 | (maskload<mode>di): Change to VEC_ALL1REG_MODE. | |
1581 | (maskstore<mode>di): Likewise. | |
1582 | (mask_gather_load<mode>): Likewise. | |
1583 | (mov_from_lane63_<mode>): Likewise. | |
1584 | * config/gcn/gcn.c (gcn_vector_mode_supported_p): Renable V64QImode | |
1585 | and V64HImode vectorization. | |
1586 | (gcn_related_vector_mode): New function. | |
1587 | (TARGET_VECTORIZE_RELATED_MODE): New define. | |
1588 | ||
1589 | 2019-12-06 Tobias Burnus <tobias@codesourcery.com> | |
1590 | Kwok Cheung Yeung <kcy@codesourcery.com> | |
1591 | ||
1592 | * omp-low.c (lower_omp_target): For optional arguments, deref once | |
1593 | more to obtain the type. | |
1594 | ||
1595 | 2019-12-06 Richard Biener <rguenther@suse.de> | |
1596 | ||
1597 | * match.pd (nop_convert): Remove empty match. Use nop_convert? | |
1598 | everywhere. | |
1599 | ||
1600 | 2019-12-06 Richard Sandiford <richard.sandiford@arm.com> | |
1601 | ||
1602 | * tree-data-ref.c (prune_runtime_alias_test_list): Exit early | |
1603 | for empty vectors. Avoid using ordered_remove and instead | |
1604 | shuffle the vector as we go. | |
1605 | ||
1606 | 2019-12-06 Richard Biener <rguenther@suse.de> | |
1607 | ||
1608 | * genmatch.c (enum tree_code): Remove CONVERT{0,1,2} and | |
1609 | VIEW_CONVERT{0,1,2}. | |
1610 | (expr::opt_grp): Add and initialize. | |
1611 | (lower_opt_convert): Rename to ... | |
1612 | (lower_opt): ... and work on opt_grp, simply switching operations | |
1613 | from being optional to being present or not. | |
1614 | (has_opt_convert): Rename to ... | |
1615 | (has_opt): ... and adjust. | |
1616 | (parser::parse_operation): Return the optional opt_grp, | |
1617 | remove special-casing of conditional operations and more generally | |
1618 | parse [digit]'?'. | |
1619 | (parser::parse_expr): Stick on the parsed opt_grp and perform | |
1620 | rough verification. | |
1621 | (parser::parse_for): Remove now unnecessary code. | |
1622 | (main): Likewise. | |
1623 | * doc/match-and-simplify.texi: Mention ? now works on all | |
1624 | unary operations and also match predicates. | |
1625 | ||
1626 | 2019-12-06 Jan Hubicka <hubicka@ucw.cz> | |
1627 | ||
1628 | * cgraphclones.c (cgraph_node::create_clone): Only localize toplevel | |
1629 | functions, not inline clones. | |
1630 | ||
1631 | 2019-12-06 Jan Hubicka <hubicka@ucw.cz> | |
1632 | ||
1633 | * cfgexpand.c (expand_debug_expr): Do not ICE on SAD_EXPR. | |
1634 | ||
1635 | 2019-12-06 Richard Biener <rguenther@suse.de> | |
1636 | ||
1637 | * genmatch.c (c_expr::gen_transform): Emit newlines from line | |
1638 | number changes rather than after every semicolon. | |
1639 | ||
1640 | 2019-12-06 Richard Biener <rguenther@suse.de> | |
1641 | ||
1642 | PR tree-optimization/92819 | |
1643 | * match.pd (VEC_PERM_EXPR -> BIT_INSERT_EXPR): Handle inserts | |
1644 | into the last lane. For two-element vectors try inserting | |
1645 | into the last lane when inserting into the first fails. | |
1646 | ||
1647 | 2019-12-06 Jakub Jelinek <jakub@redhat.com> | |
1648 | ||
1649 | * common.opt (fprofile-partial-training): Terminate description with | |
1650 | full stop. | |
1651 | ||
1652 | 2019-12-05 Martin Sebor <msebor@redhat.com> | |
1653 | ||
1654 | PR middle-end/92622 | |
1655 | * tree-vrp.c (vrp_prop::check_array_ref): Avoid using a variable | |
1656 | left uninitialized by get_addr_base_and_unit_offset on failure. | |
1657 | ||
1658 | 2019-12-05 Jan Hubicka <hubicka@ucw.cz> | |
1659 | ||
1660 | * ipa-prop.c (ipa_set_jf_unknown): Do not clear bits and m_vr. | |
1661 | (detect_type_change_from_memory_writes): Remoe parameter JFUNC. | |
1662 | (detect_type_change): Likewise. | |
1663 | (detect_type_change_ssa): Likewise. | |
1664 | (ipa_analyze_virtual_call_uses): Update. | |
1665 | ||
1666 | 2019-12-05 Sandra Loosemore <sandra@codesourcery.com> | |
1667 | ||
1668 | * config/nios2/linux.h (LINK_EH_SPEC): Define. | |
1669 | ||
1670 | 2019-12-05 Jan Hubicka <hubicka@ucw.cz> | |
1671 | ||
1672 | * ipa-inline-transform.c (inline_call): Fix maintenatnce of comdat_local | |
1673 | ||
1674 | 2019-12-05 Jan Hubicka <hubicka@ucw.cz> | |
1675 | ||
1676 | * cgraphclones.c (localize_profile): New function. | |
1677 | (cgraph_node::create_clone): Use it for partial profiles. | |
1678 | * common.opt (fprofile-partial-training): New flag. | |
1679 | * doc/invoke.texi (-fprofile-partial-training): Document. | |
1680 | * ipa-cp.c (update_profiling_info): For partial profiles do not | |
1681 | set function profile to zero. | |
1682 | * profile.c (compute_branch_probabilities): With partial profile | |
1683 | watch if edge count is zero and turn all probabilities to guessed. | |
1684 | (compute_branch_probabilities): For partial profiles do not apply | |
1685 | profile when entry count is zero. | |
1686 | * tree-profile.c (tree_profiling): Only do value_profile_transformations | |
1687 | when profile is read. | |
1688 | ||
1689 | 2019-12-05 Sudakshina Das <sudi.das@arm.com> | |
1690 | ||
1691 | * tree-vect-loop.c (vect_model_reduction_cost): Remove reduction_type | |
1692 | check from if condition. | |
1693 | ||
1694 | 2019-12-05 Tobias Burnus <tobias@codesourcery.com> | |
1695 | ||
1696 | * omp-low.c (lower_omp_target): For use_device_ptr/use_derice_addr | |
1697 | and Fortran's optional arguments, unconditionally add the is-present | |
1698 | condition before the libgomp call. | |
1699 | ||
1700 | 2019-12-05 Richard Sandiford <richard.sandiford@arm.com> | |
1701 | ||
1702 | PR middle-end/92768 | |
1703 | * tree-core.h (OEP_BITWISE): New flag. | |
1704 | * fold-const.c (operand_compare::operand_equal_p): Handle it. | |
1705 | * tree-vector-builder.h (tree_vector_builder::equal_p): Pass it. | |
1706 | ||
1707 | 2019-12-05 Richard Biener <rguenther@suse.de> | |
1708 | ||
1709 | PR middle-end/92818 | |
1710 | * tree-ssa-forwprop.c (simplify_vector_constructor): Improve | |
1711 | heuristics on what don't care element to choose. | |
1712 | * match.pd (VEC_PERM_EXPR -> BIT_INSERT_EXPR): Fix typo. | |
1713 | ||
1714 | 2019-12-05 Martin Liska <mliska@suse.cz> | |
1715 | ||
1716 | PR gcov-profile/92817 | |
1717 | * coverage.c (build_gcov_exit_decl): Remove superfluous | |
1718 | void_type_node. | |
1719 | ||
1720 | 2019-12-05 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
1721 | ||
1722 | * config/msp430/msp430.md (cbranch<mode>4): Use | |
1723 | msp430_general_dst_nonv_operand instead of nonimmediate_operand for | |
1724 | dest operand of CMP instruction. | |
1725 | (cbranchpsi4_real): Likewise. | |
1726 | (cbranchqi4_real): Likewise. | |
1727 | (cbranchhi4_real): Likewise. | |
1728 | (cbranchpsi4_reversed): Likewise. | |
1729 | (cbranchqi4_reversed): Likewise. | |
1730 | (cbranchhi4_reversed): Likewise. | |
1731 | ||
1732 | 2019-12-05 Richard Biener <rguenther@suse.de> | |
1733 | ||
1734 | PR tree-optimization/92803 | |
1735 | * tree-ssa-forwprop.c (simplify_vector_constructor): Fix | |
1736 | invariant vector construction. | |
1737 | ||
1738 | 2019-12-05 Martin Liska <mliska@suse.cz> | |
1739 | ||
1740 | PR gcov-profile/91971 | |
1741 | * coverage.c (coverage_init): Mangle full path | |
1742 | only when -fprofile-dir is used. | |
1743 | ||
1744 | 2019-12-05 Jakub Jelinek <jakub@redhat.com> | |
1745 | ||
1746 | PR target/92791 | |
1747 | * config/i386/i386.md (movstrict<mode>): Move test for | |
1748 | TARGET_PARTIAL_REG_STALL and not optimizing for size from | |
1749 | expander's condition to the body - FAIL; in that case. | |
1750 | ||
1751 | 2019-12-03 Martin Sebor <msebor@redhat.com> | |
1752 | ||
1753 | PR middle-end/91582 | |
1754 | * builtins.c (gimple_call_alloc_size): New function. | |
1755 | (compute_objsize): Add argument. Call gimple_call_alloc_size. | |
1756 | Handle variable offsets and indices. | |
1757 | * builtins.h (gimple_call_alloc_size): Declare. | |
1758 | (compute_objsize): Add argument. | |
1759 | * gimple-ssa-warn-restrict.c: Remove assertions. | |
1760 | * tree-ssa-strlen.c (handle_store): Handle calls to allocated objects. | |
1761 | ||
1762 | 2019-12-04 Julian Brown <julian@codesourcery.com> | |
1763 | ||
1764 | * config/gcn/gcn.h (FIXED_REGISTERS): Make s6/s7 fixed registers. | |
1765 | ||
1766 | 2019-12-04 Peter Bergner <bergner@linux.ibm.com> | |
1767 | ||
1768 | PR bootstrap/92661 | |
1769 | * config/rs6000/rs6000-c.c (struct altivec_builtin_types): Move to | |
1770 | rs6000.h. | |
1771 | (altivec_overloaded_builtins): Move to rs6000-call.c. | |
1772 | * config/rs6000/rs6000.h (struct altivec_builtin_types): Moved from | |
1773 | rs6000-c.c. | |
1774 | * config/rs6000/rs6000-call.c (rs6000_builtin_info): Make static. | |
1775 | (altivec_overloaded_builtins): Moved from rs6000-c.c. | |
1776 | (rs6000_common_init_builtins): Do no define builtins that overload | |
1777 | builtins that have been disabled. | |
1778 | ||
1779 | 2019-12-04 Wilco Dijkstra <wdijkstr@arm.com> | |
1780 | ||
1781 | * config/arm/arm.c (arm_option_override_internal): | |
1782 | Use max_cond_insns from CPU tuning unless -mrestrict-it is used. | |
1783 | ||
1784 | 2019-12-04 Wilco Dijkstra <wdijkstr@arm.com> | |
1785 | ||
1786 | * config/aarch64/aarch64.c | |
1787 | (thunderxt88_tunings): Use AARCH64_FUSE_ALU_BRANCH. | |
1788 | (thunderx_tunings): Likewise. | |
1789 | (tsv110_tunings): Use AARCH64_FUSE_ALU_BRANCH and AARCH64_FUSE_ALU_CBZ. | |
1790 | (thunderx2t99_tunings): Likewise. | |
1791 | (aarch_macro_fusion_pair_p): Add support for AARCH64_FUSE_CMP_BRANCH. | |
1792 | * config/aarch64/aarch64-fusion-pairs.def: Add ALU_CBZ fusion. | |
1793 | ||
1794 | 2019-12-04 Richard Biener <rguenther@suse.de> | |
1795 | ||
1796 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Properly guard | |
1797 | empty CTOR and memset partial-def registering. Take advantage | |
1798 | of fancy offset analysis in memset handling. | |
1799 | ||
1800 | 2019-12-04 Richard Sandiford <richard.sandiford@arm.com> | |
1801 | ||
1802 | * fold-const.c (native_encode_vector_part): Handle | |
1803 | VECTOR_BOOLEAN_TYPE_Ps that have subbyte precision. | |
1804 | (native_decode_vector_tree): Delete, moving the bulk of the code to... | |
1805 | (native_interpret_vector_part): ...this new function. Use a pointer | |
1806 | and length instead of a vec<> and start index. | |
1807 | (native_interpret_vector): Use native_interpret_vector_part. | |
1808 | (fold_view_convert_vector_encoding): Likewise. | |
1809 | ||
1810 | 2019-12-04 Richard Biener <rguenther@suse.de> | |
1811 | ||
1812 | * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Handle | |
1813 | non-constant defs in the most trivial way. | |
1814 | (vn_reference_lookup_3): Also push down SSA partial defs. | |
1815 | ||
1816 | 2019-12-04 Martin Liska <mliska@suse.cz> | |
1817 | ||
1818 | * tree-switch-conversion.c (switch_decision_tree::try_switch_expansion): | |
1819 | Initialize count of newly created BB. | |
1820 | ||
1821 | 2019-12-04 Jakub Jelinek <jakub@redhat.com> | |
1822 | ||
1823 | PR tree-optimization/92734 | |
1824 | * match.pd ((A +- B) - A -> +- B, (A +- B) -+ B -> A, | |
1825 | A - (A +- B) -> -+ B, A +- (B -+ A) -> +- B): Handle nop_convert. | |
1826 | ||
1827 | 2019-12-04 Kewen Lin <linkw@gcc.gnu.org> | |
1828 | ||
1829 | PR target/92760 | |
1830 | * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Use | |
1831 | VECTOR_MEM_NONE_P instead of VECTOR_UNIT_NONE_P. | |
1832 | ||
1833 | 2019-12-03 Jan Hubicka <hubicka@ucw.cz> | |
1834 | ||
1835 | * ipa-fnsummary.c: Include tree-into-ssa.h. | |
1836 | (compute_fn_summary): Call update_ssa. | |
1837 | ||
1838 | 2019-12-03 Jan Hubicka <hubicka@ucw.cz> | |
1839 | ||
1840 | * cgraph.c (cgraph_node::verify_node): Check that calls_comdat_local | |
1841 | is set only for symbol in comdat group. | |
1842 | * symtab.c (symtab_node::dissolve_same_comdat_group_1): Clear it. | |
1843 | ||
1844 | 2019-12-03 Jan Hubicka <hubicka@ucw.cz> | |
1845 | ||
1846 | * cgraph.c: Include tree-into-ssa.h | |
1847 | (cgraph_node::get_body): Call update_ssa. | |
1848 | * cgraphunit.c (cgraph_node::expand): Likewise. | |
1849 | * lto-streamer-in.c (input_function): Do not call update_ssa. | |
1850 | ||
1851 | 2019-12-03 Richard Sandiford <richard.sandiford@arm.com> | |
1852 | ||
1853 | * gimplify.c (gimplify_compound_lval): Don't gimplify and install | |
1854 | an array element size if array_element_size is already an invariant. | |
1855 | Similarly don't gimplify and install a field offset if | |
1856 | component_ref_field_offset is already an invariant. | |
1857 | ||
1858 | 2019-12-03 Richard Sandiford <richard.sandiford@arm.com> | |
1859 | ||
1860 | * cfgexpand.c (discover_nonconstant_array_refs_r): If an access | |
1861 | with POLY_INT_CST size is made to a fixed-size object, force the | |
1862 | object to live in memory. | |
1863 | ||
1864 | 2019-12-03 Andrew Stubbs <ams@codesourcery.com> | |
1865 | ||
1866 | * config/gcn/gcn-valu.md: Change "vcondu" patterns to use VEC_1REG_MODE | |
1867 | for the data mode. | |
1868 | ||
1869 | 2019-12-03 Richard Biener <rguenther@suse.de> | |
1870 | ||
1871 | PR tree-optimization/92758 | |
1872 | * tree-ssa-forwprop.c (simplify_vector_constructor): Restore | |
1873 | operation on uniform vectors. | |
1874 | ||
1875 | 2019-12-03 Richard Biener <rguenther@suse.de> | |
1876 | ||
1877 | PR tree-optimization/92645 | |
1878 | * gimple-fold.c (gimple_fold_builtin_memory_op): Fold memcpy | |
1879 | from or to a properly aligned register variable. | |
1880 | ||
1881 | 2019-12-03 Matthias Klose <doko@ubuntu.com> | |
1882 | ||
1883 | * Makefile.in (SOURCES): Add doc/lto-dump.1. | |
1884 | (install-man): Add $(LTO_DUMP_INSTALL_NAME)$(man1ext). | |
1885 | ($(LTO_DUMP_INSTALL_NAME)$(man1ext): New. | |
1886 | ||
1887 | 2019-12-03 Richard Biener <rguenther@suse.de> | |
1888 | ||
1889 | PR tree-optimization/92751 | |
1890 | * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fail | |
1891 | when a clobber ends up in the partial-def vector. | |
1892 | (vn_reference_lookup_3): Let clobbers be handled by the | |
1893 | assignment from CTOR handling. | |
1894 | ||
1895 | 2019-12-03 Jakub Jelinek <jakub@redhat.com> | |
1896 | ||
1897 | PR tree-optimization/92734 | |
1898 | * match.pd ((CST1 - A) +- CST2 -> CST3 - A, | |
1899 | CST1 - (CST2 - A) -> CST3 + A): Handle nop casts around | |
1900 | inner subtraction. | |
1901 | ||
1902 | 2019-12-03 Uroš Bizjak <ubizjak@gmail.com> | |
1903 | Jakub Jelinek <jakub@redhat.com> | |
1904 | ||
1905 | PR target/92744 | |
1906 | * config/i386/i386.md (peephole2 for *swap<mode>): Use | |
1907 | general_reg_operand predicates instead of register_operand. | |
1908 | ||
1909 | 2019-12-03 Richard Biener <rguenther@suse.de> | |
1910 | ||
1911 | PR tree-optimization/92645 | |
1912 | * tree-ssa.c (execute_update_addresses_taken): Avoid representing | |
1913 | a full def of a vector via a BIT_INSERT_EXPR. | |
1914 | ||
1915 | 2019-12-02 Bill Schmidt <wschmidt@linux.ibm.com> | |
1916 | ||
1917 | * config/rs6000/rs6000-call.c (rs6000_invalid_builtin): Make | |
1918 | static. | |
1919 | * config/rs6000/rs6000-internal.h (rs6000_invalid_builtin): Remove | |
1920 | decl. | |
1921 | ||
1922 | 2019-12-02 Richard Sandiford <richard.sandiford@arm.com> | |
1923 | ||
1924 | PR middle-end/92741 | |
1925 | * fold-const.c (fold_convertible_p): Check vector types more | |
1926 | thoroughly. | |
1927 | ||
1928 | 2019-12-02 Richard Sandiford <richard.sandiford@arm.com> | |
1929 | ||
1930 | * config/aarch64/aarch64.c (aarch64_report_sve_required): New function. | |
1931 | (aarch64_expand_mov_immediate): Use it when attempting to measure | |
1932 | the length of an SVE vector. | |
1933 | (aarch64_mov_operand_p): Only allow SVE CNT immediates when | |
1934 | SVE is enabled. | |
1935 | ||
1936 | 2019-12-02 Richard Sandiford <richard.sandiford@arm.com> | |
1937 | ||
1938 | * config/aarch64/aarch64-sve-builtins.h | |
1939 | (gimple_folder::force_vector): Declare. | |
1940 | * config/aarch64/aarch64-sve-builtins.cc | |
1941 | (gimple_folder::force_vector): New function. | |
1942 | * config/aarch64/aarch64-sve-builtins-base.cc | |
1943 | (svcmp_impl::fold): Likewise. | |
1944 | (svdup_impl::fold): Handle svdup_z too. | |
1945 | ||
1946 | 2019-12-02 Martin Liska <mliska@suse.cz> | |
1947 | ||
1948 | * ipa-devirt.c (warn_types_mismatch): Use get_odr_name_for_type | |
1949 | function. | |
1950 | (debug_tree_odr_name): New. | |
1951 | * ipa-utils.h (get_odr_name_for_type): New. | |
1952 | ||
1953 | 2019-12-02 Richard Biener <rguenther@suse.de> | |
1954 | ||
1955 | PR tree-optimization/92742 | |
1956 | * tree-vect-loop.c (vect_fixup_reduc_chain): Do not | |
1957 | touch the def-type but verify it is consistent with the | |
1958 | original stmts. | |
1959 | ||
1960 | 2019-12-02 Jakub Jelinek <jakub@redhat.com> | |
1961 | ||
1962 | PR tree-optimization/92712 | |
1963 | * match.pd ((A * B) +- A -> (B +- 1) * A, | |
1964 | A +- (A * B) -> (1 +- B) * A): Allow optimizing signed integers | |
1965 | even when we don't know anything about range of A, but do know | |
1966 | something about range of B and the simplification won't introduce | |
1967 | new UB. | |
1968 | ||
1969 | 2019-12-02 Feng Xue <fxue@os.amperecomputing.com> | |
1970 | ||
1971 | PR ipa/92133 | |
1972 | * doc/invoke.texi (ipa-cp-max-recursive-depth): Document new option. | |
1973 | (ipa-cp-min-recursive-probability): Likewise. | |
1974 | * params.opt (ipa-cp-max-recursive-depth): New. | |
1975 | (ipa-cp-min-recursive-probability): Likewise. | |
1976 | * ipa-cp.c (ipcp_lattice<valtype>::add_value): Add two new parameters | |
1977 | val_p and unlimited. | |
1978 | (self_recursively_generated_p): New function. | |
1979 | (get_val_across_arith_op): Likewise. | |
1980 | (propagate_vals_across_arith_jfunc): Add constant propagation for | |
1981 | self-recursive function. | |
1982 | (incorporate_penalties): Do not penalize pure self-recursive function. | |
1983 | (good_cloning_opportunity_p): Dump node_is_self_scc flag. | |
1984 | (propagate_constants_topo): Set node_is_self_scc flag for cgraph node. | |
1985 | (get_info_about_necessary_edges): Relax hotness check for edge to | |
1986 | self-recursive function. | |
1987 | * ipa-prop.h (ipa_node_params): Add new field node_is_self_scc. | |
1988 | ||
1989 | 2019-12-01 Sandra Loosemore <sandra@codesourcery.com> | |
1990 | ||
1991 | PR target/92499 | |
1992 | ||
1993 | * config/nios2/nios2.c (nios2_in_small_data_p): Do not consider | |
1994 | objects of flexible types to be small if they have internal linkage | |
1995 | or are declared extern. | |
1996 | * config/nios2/nios2.h (ASM_OUTPUT_ALIGNED_LOCAL): Replace with... | |
1997 | (ASM_OUTPUT_ALIGNED_DECL_LOCAL): ...this. Use targetm.in_small_data_p | |
1998 | instead of the size of the object initializer. | |
1999 | * tree.c (flexible_array_type_p): Move from C front end, and | |
2000 | generalize to handle fields in non-C structures. | |
2001 | * tree.h (flexible_array_type_p): Declare. | |
2002 | ||
2003 | 2019-11-30 Jan Hubicka <hubicka@ucw.cz> | |
2004 | ||
2005 | * profile-count.h (profile_count::operator<): Use IPA value for | |
2006 | comparsion. | |
2007 | (profile_count::operator>): Likewise. | |
2008 | (profile_count::operator<=): Likewise. | |
2009 | (profile_count::operator>=): Likewise. | |
2010 | * predict.c (maybe_hot_count_p): Do not convert to gcov_type. | |
2011 | ||
2012 | 2019-11-30 Jan Hubicka <hubicka@ucw.cz> | |
2013 | ||
2014 | * ipa-inline.c (compute_max_insns): Return int64_t. | |
2015 | (inline_small_functions): Simplify. | |
2016 | ||
2017 | 2019-11-30 Jan Hubicka <hubicka@ucw.cz> | |
2018 | ||
2019 | * tree-cfg.c (execute_fixup_cfg): Update also max_bb_count when | |
2020 | scaling happen. | |
2021 | ||
2022 | 2019-11-30 Jan Hubicka <hubicka@ucw.cz> | |
2023 | ||
2024 | * cgraph.h (symtab_node): Add symver flag. | |
2025 | * cgraphunit.c (process_symver_attribute): New. | |
2026 | (process_common_attributes): Use process_symver_attribute. | |
2027 | * lto-cgraph.c (lto_output_node): Stream symver. | |
2028 | (lto_output_varpool_node): Stream symver. | |
2029 | (input_overwrite_node): Stream symver. | |
2030 | (input_varpool_node): Stream symver. | |
2031 | * output.h (do_assemble_symver): Decalre. | |
2032 | * symtab.c (symtab_node::dump_base): Dump symver. | |
2033 | (symtab_node::verify_base): Verify symver. | |
2034 | (symtab_node::resolve_alias): Handle symver. | |
2035 | * varasm.c (do_assemble_symver): New function. | |
2036 | * varpool.c (varpool_node::assemble_aliases): Use it. | |
2037 | * doc/extend.texi: (symver attribute): Document. | |
2038 | * config/elfos.h (ASM_OUTPUT_SYMVER_DIRECTIVE): New. | |
2039 | ||
2040 | 2019-11-30 Richard Sandiford <richard.sandiford@arm.com> | |
2041 | ||
2042 | * target.h (type_context_kind): New enum. | |
2043 | (verify_type_context): Declare. | |
2044 | * target.def (verify_type_context): New target hook. | |
2045 | * doc/tm.texi.in (TARGET_VERIFY_TYPE_CONTEXT): Likewise. | |
2046 | * doc/tm.texi: Regenerate. | |
2047 | * tree.c (verify_type_context): New function. | |
2048 | * config/aarch64/aarch64-protos.h (aarch64_sve::verify_type_context): | |
2049 | Declare. | |
2050 | * config/aarch64/aarch64-sve-builtins.cc (verify_type_context): | |
2051 | New function. | |
2052 | * config/aarch64/aarch64.c (aarch64_verify_type_context): Likewise. | |
2053 | (TARGET_VERIFY_TYPE_CONTEXT): Define. | |
2054 | ||
2055 | 2019-11-30 Jan Hubicka <hubicka@ucw.cz> | |
2056 | ||
2057 | * cgraph.c (cgraph_node::dump): Dump unit_id and merged_extern_inline. | |
2058 | * cgraph.h (cgraph_node): Add unit_id and | |
2059 | merged_extern_inline. | |
2060 | (symbol_table): Add max_unit. | |
2061 | (symbol_table::symbol_table): Initialize it. | |
2062 | * cgraphclones.c (duplicate_thunk_for_node): Copy unit_id. | |
2063 | merged_comdat, merged_extern_inline. | |
2064 | (cgraph_node::create_clone): Likewise. | |
2065 | (cgraph_node::create_version_clone): Likewise. | |
2066 | * ipa-fnsummary.c (dump_ipa_call_summary): Dump info about cross module | |
2067 | calls. | |
2068 | * ipa-fnsummary.h (cross_module_call_p): New inline function. | |
2069 | * ipa-inline-analyssi.c (simple_edge_hints): Use it. | |
2070 | * ipa-inline.c (inline_small_functions): Likewise. | |
2071 | * lto-symtab.c (lto_cgraph_replace_node): Record merged_extern_inline; | |
2072 | copy merged_comdat and merged_extern_inline. | |
2073 | * lto-cgraph.c (lto_output_node): Stream out merged_comdat, | |
2074 | merged_extern_inline and unit_id. | |
2075 | (input_overwrite_node): Stream in these. | |
2076 | (input_cgraph_1): Set unit_base. | |
2077 | * lto-streamer.h (lto_file_decl_data): Add unit_base. | |
2078 | * symtab.c (symtab_node::make_decl_local): Record former_comdat. | |
2079 | ||
2080 | 2019-11-30 Maciej W. Rozycki <macro@wdc.com> | |
2081 | ||
2082 | * gcc.c (process_command): Only warn about an ineffective `-x' | |
2083 | option if any input files have actually been supplied. | |
2084 | ||
2085 | 2019-11-30 Maciej W. Rozycki <macro@wdc.com> | |
2086 | ||
2087 | * doc/install.texi (Options specification): Remove the list of | |
2088 | target library subdirectories supporting | |
2089 | `--enable-version-specific-runtime-libs'. Document defaults for | |
2090 | the option. | |
2091 | ||
2092 | 2019-11-29 Vladimir Makarov <vmakarov@redhat.com> | |
2093 | ||
2094 | PR rtl-optimization/92283 | |
2095 | * lra.c (lra): Update reg notes after inheritance sub-pass and | |
2096 | before constraint sub-pass. | |
2097 | ||
2098 | 2019-11-29 Richard Biener <rguenther@suse.de> | |
2099 | ||
2100 | PR tree-optimization/91003 | |
2101 | * tree-vect-slp.c (vect_mask_constant_operand_p): Pass in the | |
2102 | operand number, avoid handling the non-condition operands of | |
2103 | COND_EXPRs as comparisons. | |
2104 | (vect_get_constant_vectors): Pass down the operand number. | |
2105 | (vect_get_slp_defs): Likewise. | |
2106 | ||
2107 | 2019-11-29 Frederik Harwath <frederik@codesourcery.com> | |
2108 | ||
2109 | * gimple-match-head.c (maybe_resimplify_conditional_op): Use | |
2110 | generic_expr_could_trap_p to check if the condition of COND_EXPR or | |
2111 | VEC_COND_EXPR can trap. | |
2112 | ||
2113 | 2019-11-29 Richard Sandiford <richard.sandiford@arm.com> | |
2114 | ||
2115 | PR tree-optimization/92677 | |
2116 | * tree-vect-loop.c (vect_dissolve_slp_only_groups): Set the gap | |
2117 | to zero when dissolving a group of strided accesses. | |
2118 | ||
2119 | 2019-11-29 Richard Sandiford <richard.sandiford@arm.com> | |
2120 | ||
2121 | PR tree-optimization/92596 | |
2122 | * tree-vect-stmts.c (vectorizable_call): Punt on hybrid mask/nonmask | |
2123 | operations. | |
2124 | (vectorizable_operation): Likewise, instead of relying on | |
2125 | vect_get_mask_type_for_stmt to do this. | |
2126 | (vect_get_vector_types_for_stmt): Always return a vector type | |
2127 | immediately, rather than deferring the choice for boolean results. | |
2128 | Use a vector mask type instead of a normal vector if | |
2129 | vect_use_mask_type_p. | |
2130 | (vect_get_mask_type_for_stmt): Delete. | |
2131 | * tree-vect-loop.c (vect_determine_vf_for_stmt_1): Remove | |
2132 | mask_producers argument and special boolean_type_node handling. | |
2133 | (vect_determine_vf_for_stmt): Remove mask_producers argument and | |
2134 | update calls to vect_determine_vf_for_stmt_1. Remove doubled call. | |
2135 | (vect_determine_vectorization_factor): Update call accordingly. | |
2136 | * tree-vect-slp.c (vect_build_slp_tree_1): Remove special | |
2137 | boolean_type_node handling. | |
2138 | (vect_slp_analyze_node_operations_1): Likewise. | |
2139 | ||
2140 | 2019-11-29 Richard Sandiford <richard.sandiford@arm.com> | |
2141 | ||
2142 | * tree-vectorizer.h (stmt_vec_info::mask_precision): New field. | |
2143 | (vect_use_mask_type_p): New function. | |
2144 | * tree-vect-patterns.c (vect_init_pattern_stmt): Copy the | |
2145 | mask precision to the pattern statement. | |
2146 | (append_pattern_def_seq): Add a scalar_type_for_mask parameter | |
2147 | and use it to initialize the new stmt's mask precision. | |
2148 | (search_type_for_mask_1): Delete. | |
2149 | (search_type_for_mask): Replace with... | |
2150 | (integer_type_for_mask): ...this new function. Use the information | |
2151 | cached in the stmt_vec_info. | |
2152 | (vect_recog_bool_pattern): Update accordingly. | |
2153 | (build_mask_conversion): Pass the scalar type associated with the | |
2154 | mask type to append_pattern_def_seq. | |
2155 | (vect_recog_mask_conversion_pattern): Likewise. Call | |
2156 | integer_type_for_mask instead of search_type_for_mask. | |
2157 | (vect_convert_mask_for_vectype): Call integer_type_for_mask instead | |
2158 | of search_type_for_mask. | |
2159 | (possible_vector_mask_operation_p): New function. | |
2160 | (vect_determine_mask_precision): Likewise. | |
2161 | (vect_determine_stmt_precisions): Call it. | |
2162 | ||
2163 | 2019-11-29 Richard Sandiford <richard.sandiford@arm.com> | |
2164 | ||
2165 | * tree-vectorizer.h (get_mask_type_for_scalar_type): Replace | |
2166 | the slp_tree parameter with a group size parameter. | |
2167 | (vect_get_mask_type_for_stmt): Likewise. | |
2168 | * tree-vect-stmts.c (get_mask_type_for_scalar_type): Likewise. | |
2169 | (vect_get_mask_type_for_stmt): Likewise. | |
2170 | * tree-vect-slp.c (vect_slp_analyze_node_operations_1): Update | |
2171 | call accordingly. | |
2172 | ||
2173 | 2019-11-29 Richard Sandiford <richard.sandiford@arm.com> | |
2174 | ||
2175 | * tree-vect-stmts.c (vectorizable_operation): Punt early | |
2176 | on codes that are handled elsewhere. | |
2177 | ||
2178 | 2019-11-29 Richard Sandiford <richard.sandiford@arm.com> | |
2179 | ||
2180 | * doc/sourcebuild.texi (vect_bool_cmp): Document. | |
2181 | * tree-vect-patterns.c (search_type_for_mask_1): If neither | |
2182 | operand to a boolean comparison is a natural vector mask, | |
2183 | handle both operands like normal integers instead. | |
2184 | ||
2185 | 2019-11-29 Richard Biener <rguenther@suse.de> | |
2186 | ||
2187 | * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Bail | |
2188 | out early for too large objects. | |
2189 | ||
2190 | 2019-11-29 Martin Jambor <mjambor@suse.cz> | |
2191 | ||
2192 | PR ipa/92476 | |
2193 | * ipa-cp.c (set_single_call_flag): Set node_calling_single_call in | |
2194 | the summary only if the summary exists. | |
2195 | (find_more_scalar_values_for_callers_subset): Check node_dead in | |
2196 | the summary only if the summary exists. | |
2197 | (ipcp_store_bits_results): Ignore nodes without lattices. | |
2198 | (ipcp_store_vr_results): Likewise. | |
2199 | * cgraphclones.c: Include ipa-fnsummary.h and ipa-prop.h and the | |
2200 | header files required by them. | |
2201 | (cgraph_node::expand_all_artificial_thunks): Analyze expanded thunks. | |
2202 | ||
2203 | 2019-11-29 Richard Sandiford <richard.sandiford@arm.com> | |
2204 | ||
2205 | PR tree-optimization/92710 | |
2206 | * tree-vect-stmts.c (vectorizable_simd_clone_call): Reject | |
2207 | vector mask arguments. | |
2208 | ||
2209 | 2019-11-29 Jan Hubicka <hubicka@ucw.cz> | |
2210 | ||
2211 | * profile-count.c (profile_count::to_cgraph_frequency, | |
2212 | profile_count::to_sreal_scale): Check for compaibility of counts. | |
2213 | * profile-count.h (compatible_p): Make public; add checking for | |
2214 | global0 versus global types. | |
2215 | * cgraph.c (cgraph_node::verify_node): Verify count compatibility. | |
2216 | ||
2217 | 2019-11-29 Richard Biener <rguenther@suse.de> | |
2218 | ||
2219 | PR tree-optimization/92715 | |
2220 | * tree-ssa-forwprop.c (simplify_vector_constructor): Bail | |
2221 | out for uniform vectors and source vectors with less elements | |
2222 | than the destination. | |
2223 | ||
2224 | 2019-11-29 Martin Liska <mliska@suse.cz> | |
2225 | ||
2226 | PR lto/91574 | |
2227 | * ipa-devirt.c (types_same_for_odr): Check for existence | |
2228 | of TYPE_NAMEs first. | |
2229 | ||
2230 | 2019-11-29 Richard Biener <rguenther@suse.de> | |
2231 | ||
2232 | PR tree-optimization/92704 | |
2233 | * tree-if-conv.c (combine_blocks): Deal with virtual PHIs | |
2234 | in loops performing only loads. | |
2235 | ||
2236 | 2019-11-29 Julian Brown <julian@codesourcery.com> | |
2237 | ||
2238 | * builtin-types.def (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, | |
2239 | BT_DFLOAT128_PTR) Remove. | |
2240 | * tree-core.h (TI_DFLOAT32_PTR_TYPE, TI_DFLOAT64_PTR_TYPE, | |
2241 | TI_DFLOAT128_PTR_TYPE): Remove. | |
2242 | * tree.c (build_common_type_nodes): Remove dfloat32_ptr_type_node, | |
2243 | dfloat64_ptr_type_node and dfloat128_ptr_type_node initialisation. | |
2244 | * tree.h (dfloat32_ptr_type_node, dfloat64_ptr_type_node, | |
2245 | dfloat128_ptr_type_node): Remove macros. | |
2246 | ||
2247 | 2019-11-28 Segher Boessenkool <segher@kernel.crashing.org> | |
2248 | ||
2249 | * config/rs6000/rs6000.md (*movsi_internal1): Fix formatting. Improve | |
2250 | formatting. | |
2251 | (*movdi_internal64): Ditto. | |
2252 | ||
2253 | 2019-11-28 Segher Boessenkool <segher@kernel.crashing.org> | |
2254 | ||
2255 | PR target/92602 | |
2256 | * config/rs6000/rs6000.md (bswap<mode>2_load for HSI): Change the | |
2257 | indexed_or_indirect_operand to be memory_operand. | |
2258 | (bswap<mode>2_store for HSI): Ditto. | |
2259 | (bswapdi2_load): Ditto. | |
2260 | (bswapdi2_store): Ditto. | |
2261 | ||
2262 | 2019-11-28 Martin Liska <mliska@suse.cz> | |
2263 | ||
2264 | PR debug/46558 | |
2265 | * dbgcnt.c (dbg_cnt_list_all_counters): Mark table | |
2266 | headers for translation. | |
2267 | ||
2268 | 2019-11-28 Martin Liska <mliska@suse.cz> | |
2269 | ||
2270 | PR lto/92609 | |
2271 | * ipa-devirt.c (warn_types_mismatch): Use TYPE_MAIN_VARIANT | |
2272 | consistently. | |
2273 | ||
2274 | 2019-11-28 Jan Hubicka <hubicka@ucw.cz> | |
2275 | ||
2276 | * ipa-inline.c (want_early_inline_function_p): Remove leftover optimize | |
2277 | checks. | |
2278 | ||
2279 | 2019-11-28 Jan Hubicka <hubicka@ucw.cz> | |
2280 | ||
2281 | * profile-count.c (profile_count::combine_with_ipa_count): Return | |
2282 | uninitialized count if called on ininitialized count. | |
2283 | ||
2284 | 2019-11-28 Jan Hubicka <hubicka@ucw.cz> | |
2285 | ||
2286 | * ipa-inline-transform.c (inline_transform): Scale profile before | |
2287 | redirecting. | |
2288 | ||
2289 | 2019-11-28 Jan Hubicka <hubicka@ucw.cz> | |
2290 | ||
2291 | * profile-count.h (profile_count::max): Work on profiles of different | |
2292 | type. | |
2293 | (profile_count::apply_scale): Be sure that ret is not local or global0 | |
2294 | type if num is global. | |
2295 | ||
2296 | 2019-11-28 Jan Hubicka <hubicka@ucw.cz> | |
2297 | ||
2298 | * profile-count.h (profile_count::max): Work on profiles of different | |
2299 | type. | |
2300 | (profile_count::apply_scale): Be sure that ret is not local or global0 | |
2301 | type if num is global. | |
2302 | ||
2303 | 2019-11-28 Martin Jambor <mjambor@suse.cz> | |
2304 | ||
2305 | PR ipa/92697 | |
2306 | * cgraph.c (cgraph_node_cannot_be_local_p_1): Return true for | |
2307 | ifunc_resolvers. | |
2308 | * symtab.c (symtab_node::dump_base): Dump ifunc_resolver flag. | |
2309 | Removed trailig whitespace. | |
2310 | ||
2311 | 2019-11-28 Jan Hubicka <hubicka@ucw.cz> | |
2312 | ||
2313 | * profile-count.h (profile_count::combine_with_ipa_count_within): | |
2314 | Declare. | |
2315 | * profile-count.c (profile_count::combine_with_ipa_count_within): | |
2316 | New. | |
2317 | * cgraphclones.c (cgraph_edge::clone, cgraph_node::create_clone): Use | |
2318 | it. | |
2319 | ||
2320 | 2019-11-28 Jan Hubicka <hubicka@ucw.cz> | |
2321 | ||
2322 | * ipa-utils.c (ipa_merge_profiles): Be sure that all type transtions | |
2323 | of counters are done same way. | |
2324 | ||
2325 | 2019-11-28 Jan Hubicka <hubicka@ucw.cz> | |
2326 | ||
2327 | * ipa-cp.c (update_profiling_info): Fix scaling. | |
2328 | ||
2329 | 2019-11-28 Richard Biener <rguenther@suse.de> | |
2330 | ||
2331 | PR tree-optimization/92645 | |
2332 | * tree-inline.c (remap_gimple_stmt): When the return value | |
2333 | is not wanted, elide GIMPLE_RETURN. | |
2334 | ||
2335 | 2019-11-28 Richard Biener <rguenther@suse.de> | |
2336 | ||
2337 | PR tree-optimization/92645 | |
2338 | * tree-ssa-forwprop.c (get_bit_field_ref_def): Also handle | |
2339 | conversions inside a mode class. Remove restriction on | |
2340 | preserving the element size. | |
2341 | (simplify_vector_constructor): Deal with the above and for | |
2342 | identity permutes also try using VEC_UNPACK_[FLOAT_]LO_EXPR | |
2343 | and VEC_PACK_TRUNC_EXPR. | |
2344 | ||
2345 | 2019-11-28 Georg-Johann Lay <avr@gjlay.de> | |
2346 | ||
2347 | Must use push insn to pass varargs arguments of DFmode because | |
2348 | otherwise the middle-end generates wrong code. | |
2349 | ||
2350 | PR target/92055 | |
2351 | * config/avr/avr.md (MPUSH) [DF, DC]: Add modes to mode iterator. | |
2352 | ||
2353 | 2019-11-28 Jakub Jelinek <jakub@redhat.com> | |
2354 | ||
2355 | PR tree-optimization/92691 | |
2356 | * tree-ssa-strlen.c (handle_store): Clarify return value meaning | |
2357 | in function comment. | |
2358 | (strlen_check_and_optimize_call): Likewise. For handle_printf_call | |
2359 | calls, return !handle_printf_call rather than always returning true. | |
2360 | (check_and_optimize_stmt): Describe return value meaning in function | |
2361 | comment. Formatting fix. | |
2362 | ||
2363 | 2019-11-28 Jan Hubicka <hubicka@ucw.cz> | |
2364 | ||
2365 | * profile-count.c (profile_count::to_sreal_scale): Handle correctly | |
2366 | combination of globa0 and global counters.. | |
2367 | ||
2368 | 2019-11-28 Kewen Lin <linkw@gcc.gnu.org> | |
2369 | ||
2370 | PR target/92566 | |
2371 | * config/rs6000/rs6000.c (rs6000_preferred_simd_mode): Check | |
2372 | by VECTOR_UNIT_NONE_P instead. | |
2373 | ||
2374 | 2019-11-28 Hongtao Liu <hongtao.liu@inte.com> | |
2375 | ||
2376 | * config/i386/sse.md (avx512f_maskcmp<mode>3): | |
2377 | Refine VF to VF_AVX512VL. | |
2378 | ||
2379 | 2019-11-27 Michael Meissner <meissner@linux.ibm.com> | |
2380 | ||
2381 | * config/rs6000/rs6000.md (movsi_internal): Reformat. | |
2382 | (movdi_internal64): Reformat. | |
2383 | ||
2384 | 2019-11-27 Peter Bergner <bergner@linux.ibm.com> | |
2385 | ||
2386 | PR bootstrap/92661 | |
2387 | * config/rs6000/rs6000-call.c: (def_builtin): Do not define the | |
2388 | builtin if we don't have an actual type. | |
2389 | (builtin_function_type): If the builtin function uses a DFP type | |
2390 | and decimal float has been disabled, then return NULL_TREE. | |
2391 | ||
2392 | 2019-11-27 Jakub Jelinek <jakub@redhat.com> | |
2393 | ||
2394 | PR rtl-optimization/92510 | |
2395 | * combine.c (gen_lowpart_for_combine): Only transform lowpart subreg | |
2396 | of comparison into a comparison with different mode if both imode and | |
2397 | omode are scalar integral modes. | |
2398 | ||
2399 | 2019-11-27 Vladimir Makarov <vmakarov@redhat.com> | |
2400 | ||
2401 | PR rtl-optimization/90007 | |
2402 | * recog.c (constrain_operands): Permit hard registers too for | |
2403 | memory when LRA is used. | |
2404 | ||
2405 | 2019-11-27 Bernd Schmidt <bernds_cb1@t-online.de> | |
2406 | ||
2407 | * config/m68k/m68k.c (m68k_output_compare_fp): Restore differences | |
2408 | between Coldfire and regular m68k. | |
2409 | * config/m68k/m68k.md (cmp1_cf_constraints): Disallow constants. | |
2410 | ||
2411 | 2019-11-27 Richard Biener <rguenther@suse.de> | |
2412 | ||
2413 | * target.def (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove. | |
2414 | * targhooks.c (default_builtin_vectorized_conversion): Likewise. | |
2415 | * targhooks.h (default_builtin_vectorized_conversion): Likewise. | |
2416 | * optabs-tree.c (supportable_convert_operation): Do not call | |
2417 | targetm.vectorize.builtin_conversion. Remove unused decl parameter. | |
2418 | * optabs-tree.h (supportable_convert_operation): Adjust. | |
2419 | * doc/tm.texi.in (TARGET_VECTORIZE_BUILTIN_CONVERSION): Remove. | |
2420 | * doc/tm.texi: Regenerate. | |
2421 | * tree-ssa-forwprop.c (simplify_vector_constructor): Adjust. | |
2422 | * tree-vect-generic.c (expand_vector_conversion): Likewise. | |
2423 | * tree-vect-stmts.c (vect_gen_widened_results_half): Remove | |
2424 | unused decl parameter and adjust. | |
2425 | (vect_create_vectorized_promotion_stmts): Likewise. | |
2426 | (vectorizable_conversion): Adjust. | |
2427 | ||
2428 | 2019-11-27 Richard Biener <rguenther@suse.de> | |
2429 | ||
2430 | PR tree-optimization/92690 | |
2431 | * tree-ssa-forwprop.c (simplify_vector_constructor): Avoid | |
2432 | converting elements not originally converted. | |
2433 | ||
2434 | 2019-11-27 Tobias Burnus <tobias@codesourcery.com> | |
2435 | ||
2436 | PR middle-end/92463 | |
2437 | * builtins.c (do_mpfr_ckconv, do_mpc_ckconv, do_mpfr_remquo, | |
2438 | do_mpfr_lgamma_r, do_mpc_arg2): Use MPFR_RNDx instead of GMP_RNDx, | |
2439 | mpfr_rnd_t instead of mp_rnd_t. | |
2440 | * fold-const-call.c (do_mpfr_ckconv, do_mpfr_arg1, do_mpfr_sincos, | |
2441 | do_mpfr_arg2, do_mpfr_arg3, do_mpc_arg1, do_mpc_arg2): Likewise. | |
2442 | * gimple-ssa-sprintf.c (format_floating_max, format_floating): | |
2443 | Use mpfr_exp_t instead of mp_exp_t. | |
2444 | * real.c (real_from_string, dconst_e_ptr, dconst_sqrt2_ptr): Use | |
2445 | MPFR_RNDx instead of GMP_RNDx. | |
2446 | * realmpfr.c (real_from_mpfr, mpfr_from_real): Use mpfr_rnd_t and | |
2447 | mpfr_exp_t instead mp_rnd_t and mp_exp_t, respectively. | |
2448 | * realmpfr.h (real_from_mpfr, mpfr_from_real): Use mpfr_rnd_t instead | |
2449 | of mp_rnd_t and remove MPFR_RNDx poisoning. | |
2450 | * ubsan.c (ubsan_instrument_float_cast): MPFR_RNDx instead of GMP_RNDx. | |
2451 | ||
2452 | 2019-11-27 Kewen Lin <linkw@gcc.gnu.org> | |
2453 | ||
2454 | PR tree-optimization/91790 | |
2455 | * tree-vect-stmts.c (vectorizable_load): Use the adjusted | |
2456 | DR for vect_setup_realignment when first_stmt_info is different | |
2457 | from first_stmt_info_for_drptr. | |
2458 | ||
2459 | 2019-11-27 Richard Biener <rguenther@suse.de> | |
2460 | ||
2461 | PR tree-optimization/92645 | |
2462 | * tree-ssa-forwprop.c (simplify_vector_constructor): Handle | |
2463 | CTORs with just a subset of the original vectors. | |
2464 | ||
2465 | 2019-11-27 Richard Biener <rguenther@suse.de> | |
2466 | ||
2467 | PR middle-end/92674 | |
2468 | * tree-inline.c (expand_call_inline): Delay purging EH/abnormal | |
2469 | edges and instead record blocks in bitmap. | |
2470 | (gimple_expand_calls_inline): Adjust. | |
2471 | (fold_marked_statements): Delay EH cleanup until all folding is | |
2472 | done. | |
2473 | (optimize_inline_calls): Do EH/abnormal cleanup for calls after | |
2474 | inlining finished. | |
2475 | ||
2476 | 2019-11-27 Bernd Schmidt <bernds_cb1@t-online.de> | |
2477 | ||
2478 | * auto-inc-dec.c (merge_in_block): Allow autoinc in jumps unless | |
2479 | LRA is enabled. | |
2480 | * combine.c (can_combine_p): Disallow autoinc in jumps unless LRA is | |
2481 | disabled. | |
2482 | ||
2483 | 2019-11-27 Jakub Jelinek <jakub@redhat.com> | |
2484 | ||
2485 | PR debug/92664 | |
2486 | * dwarf2out.c (lookup_filename): Use "<stdin>" instead of "". | |
2487 | ||
2488 | 2019-11-26 Martin Sebor <msebor@redhat.com> | |
2489 | ||
2490 | PR tree-optimization/92683 | |
2491 | * gimple-fold.c (gimple_fold_builtin_string_compare): Restore a test | |
2492 | inadvertently removed in a previous change. Rename local variable | |
2493 | for clarity. | |
2494 | ||
2495 | 2019-11-26 Richard Biener <rguenther@suse.de> | |
2496 | ||
2497 | PR middle-end/92669 | |
2498 | * cfganal.c (pre_and_rev_post_order_compute_fn): Deal with | |
2499 | NULL pre_order. | |
2500 | ||
2501 | 2019-11-26 Robin Dapp <rdapp@linux.ibm.com> | |
2502 | ||
2503 | * config/s390/linux.h: Add undef for MUSL_DYNAMIC_LINKERxx. | |
2504 | ||
2505 | 2019-11-26 Jakub Jelinek <jakub@redhat.com> | |
2506 | ||
2507 | PR tree-optimization/92644 | |
2508 | * tree-ssa-phiopt.c (minmax_replacement): Add INTEGRAL_TYPE_P check | |
2509 | next to INTEGER_CST checks. | |
2510 | ||
2511 | 2019-11-26 Richard Biener <rguenther@suse.de> | |
2512 | ||
2513 | PR tree-optimization/92645 | |
2514 | * tree-vect-slp.c (vect_build_slp_tree_2): For unary ops | |
2515 | do not build the operation from scalars if the operand is. | |
2516 | ||
2517 | 2019-11-25 Tobias Burnus <tobias@codesourcery.com> | |
2518 | ||
2519 | * config/gcn/mkoffload.c (COMMENT_PREFIX, struct id_map, | |
2520 | func_ids, funcs_tail, var_ids, vars_tail) Remove unused | |
2521 | definitions. | |
2522 | ||
2523 | 2019-11-25 Martin Liska <mliska@suse.cz> | |
2524 | ||
2525 | * ipa-icf.c (sem_item_optimizer::dump_cong_classes): Clean | |
2526 | up used dump message. | |
2527 | ||
2528 | 2019-11-25 Martin Liska <mliska@suse.cz> | |
2529 | ||
2530 | PR bootstrap/92653 | |
2531 | * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Comment out | |
2532 | too strict checking assert. | |
2533 | ||
2534 | 2019-11-25 Joseph Myers <joseph@codesourcery.com> | |
2535 | ||
2536 | PR c/91985 | |
2537 | * builtin-types.def (BT_DFLOAT32, BT_DFLOAT64, BT_DFLOAT128) | |
2538 | (BT_DFLOAT32_PTR, BT_DFLOAT64_PTR, BT_DFLOAT128_PTR): Define to | |
2539 | error_mark_node if corresponding global tree node is NULL. | |
2540 | * tree.c (build_common_tree_nodes): Do not initialize | |
2541 | dfloat32_type_node, dfloat64_type_node or dfloat128_type_node if | |
2542 | decimal floating-point not supported. | |
2543 | ||
2544 | 2019-11-25 Joseph Myers <joseph@codesourcery.com> | |
2545 | ||
2546 | * attribs.c (decl_attributes): Do not ignore C++11 attributes on | |
2547 | types. | |
2548 | ||
2549 | 2019-11-25 Bernd Schmidt <bernds_cb1@t-online.de> | |
2550 | ||
2551 | * config/m68k/m68k.c (output_move_himode, output_move_qimode): | |
2552 | Replace code for non-CONST_INT constants with gcc_unreachable. | |
2553 | * config/m68k/m68k.md (cbranchdi): Don't generate individual | |
2554 | compare and test. | |
2555 | (CMPMODE): New mode_iterator. | |
2556 | (cbranchsi4, cbranchqi4, cbranchhi4): Replace expanders with | |
2557 | cbranch<mode>4. | |
2558 | (cstoresi4, cstoreqi4, cstorehi4): Replace expanders with | |
2559 | cstore<mode>4. | |
2560 | (cmp<mode>_68881): Remove 'F' constraint from first comparison | |
2561 | operand. | |
2562 | (bit test insns patterns): Use nonimmediate_operand, not | |
2563 | register_operand, for source operands that allow memory in | |
2564 | their constraints. | |
2565 | (divmodsi4, udivmodsi4, divmodhi4 and related unnamed patterns): | |
2566 | Use register_operand, not nonimmediate_operand, for the | |
2567 | destinations. | |
2568 | (DBCC): New mode_iterator. | |
2569 | (dbcc peepholes): Use it to reduce duplication. | |
2570 | (trap): Use const_true_rtx, not const1_rtx. | |
2571 | * config/m68k/predicates.md (m68k_comparison_operand): Renamed | |
2572 | from m68k_subword_comparison_operand and changed to handle | |
2573 | SImode. | |
2574 | ||
2575 | PR target/91851 | |
2576 | * config/m68k/m68k-protos.h (output-dbcc_and_branch): Adjust | |
2577 | declaration. | |
2578 | (m68k_init_cc): New declaration. | |
2579 | (m68k_output_compare_di, m68k_output_compare_si) | |
2580 | (m68k_output_compare_hi, m68k_output_compare_qi) | |
2581 | (m68k_output_compare_fp, m68k_output_btst, m68k_output_bftst) | |
2582 | (m68k_find_flags_value, m68k_output_scc, m68k_output_scc_float) | |
2583 | (m68k_output_branch_integer, m68k_output_branch_integer_rev. | |
2584 | m68k_output_branch_float, m68k_output_branch_float_rev): | |
2585 | Likewise. | |
2586 | (valid_dbcc_comparison_p_2, flags_in_68881) | |
2587 | (output_btst): Remove declaration. | |
2588 | * config/m68k/m68k.c (INCLDUE_STRING): Define. | |
2589 | (TARGET_ASM_FINAL_POSTSCAN_INSN): Define. | |
2590 | (valid_dbcc_comparison_p_2, flags_in_68881): Delete functions. | |
2591 | (flags_compare_op0, flags_compare_op1, flags_operand1, | |
2592 | flags_operand2, flags_valid): New static variables. | |
2593 | (m68k_find_flags_value, m68k_init_cc): New functions. | |
2594 | (handle_flags_for_move, m68k_asm_final_postscan_insn, | |
2595 | remember_compare_flags): New static functions. | |
2596 | (output_dbcc_and_branch): New argument CODE. Use it, and add | |
2597 | PLUS and MINUS to the possible codes. All callers changed. | |
2598 | (m68k_output_btst): Renamed from output_btst. Remove OPERANDS | |
2599 | and INSN arguments, add CODE arg. Return the comparison code | |
2600 | to use. All callers changed. Use CODE instead of | |
2601 | next_insn_tests_no_inequality, and replace cc_status management | |
2602 | with changing the return code. | |
2603 | (m68k_rtx_costs): Instead of testing for COMPARE, test for | |
2604 | RTX_COMPARE or RTX_COMM_COMPARE. | |
2605 | (output_move_simode, output_move_qimode): Call | |
2606 | handle_flags_for_move. | |
2607 | (notice_update_cc): Delete function. | |
2608 | (m68k_output_bftst, m68k_output_compare_di, m68k_output_compare_si, | |
2609 | m68k_output_compare_hi, m68k_output_compare_qi, | |
2610 | m68k_output_compare_fp, m68k_output_branch_integer, | |
2611 | m68k_output_branch_integer_rev, m68k_output_scc, | |
2612 | m68k_output_branch_float, m68k_output_branch_float_rev, | |
2613 | m68k_output_scc_float): New functions. | |
2614 | (output_andsi3, output_iorsi3, output_xorsi3): Call CC_STATUS_INIT | |
2615 | once at the start, and set flags_valid and flags_operand1 if the | |
2616 | flags are usable. | |
2617 | * config/m68k/m68k.h (CC_IN_68881, NOTICE_UPDATE_CC, | |
2618 | CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, OUTPUT_JUMP): Remove | |
2619 | definitions. | |
2620 | (CC_STATUS_INIT): Define. | |
2621 | * config/m68k/m68k.md (flags_valid): New define_attr. | |
2622 | (tstdi, tstsi_internal_68020_cf, tstsi_internal, tsthi_internal, | |
2623 | tstqi_internal, tst<mode>_68881, tst<mode>_cf, cmpdi_internal, | |
2624 | cmpdi, unnamed cmpsi/cmphi/cmpqi patterns, cmpsi_cf, | |
2625 | cmp<mode>_68881, cmp<mode>_cf, unnamed btst patterns, | |
2626 | tst_bftst_reg, tst_bftst_reg, unnamed scc patterns, scc, | |
2627 | sls, sordered_1, sunordered_1, suneq_1, sunge_1, sungt_1, | |
2628 | sunle_1, sunlt_1, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1, | |
2629 | bge0_di, blt0_di, beq, bne, bgt, bgtu, blt, bltu, bge, bgeu, | |
2630 | ble, bleu, bordered, bunordered, buneq, bunge, bungt, bunle, | |
2631 | bunlt, bltgt, beq_rev, bne_rev, bgt_rev, bgtu_rev, | |
2632 | blt_rev, bltu_rev, bge_rev, bgeu_rev, ble_rev, bleu_rev, | |
2633 | bordered_rev, bunordered_rev, buneq_rev, bunge_rv, bungt_rev, | |
2634 | bunle_rev, bunlt_rev, bltgt_rev, ctrapdi4, ctrapsi4, ctraphi4, | |
2635 | ctrapqi4, conditional_trap): Delete patterns. | |
2636 | (cbranchdi4_insn): New pattern. | |
2637 | (cbranchdi4): Don't generate cc0 patterns. When testing LT or GE, | |
2638 | test high part only. When testing EQ or NE, generate beq0_di | |
2639 | and bne0_di patterns directly. | |
2640 | (cstoredi4): When testing LT or GE, test high part only. | |
2641 | (both sets of cbranch<mode>4, cstore<mode>4): Don't generate cc0 | |
2642 | patterns. | |
2643 | (scc0_constraints, cmp1_constraints, cmp2_constraints, | |
2644 | scc0_cf_constraints, cmp1_cf_constraints, cmp2_cf_constraints, | |
2645 | cmp2_cf_predicate): New define_mode_attrs. | |
2646 | (cbranch<mode>4_insn, cbranch<mode>4_insn_rev, | |
2647 | cbranch<mode>4_insn_cf, cbranch<mode>4_insn_cf_rev, | |
2648 | cstore<mode>4_insn, cstore<mode>4_insn_cf for integer modes) | |
2649 | New patterns. | |
2650 | (cbranch<mode>4_insn_68881, cbranch<mode>4_insn_rev_68881): | |
2651 | (cbranch<mode>4_insn_cf, cbranch<mode>4_insn_rev_cf, | |
2652 | cstore<mode>4_insn_68881, cstore<mode>4_insn_cf for FP): | |
2653 | New patterns. | |
2654 | (cbranchsi4_btst_mem_insn, cbranchsi4_btst_reg_insn, | |
2655 | cbranchsi4_btst_mem_insn_1, cbranchsi4_btst_reg_insn_1): | |
2656 | Likewise. | |
2657 | (BTST): New define_mode_iterator. | |
2658 | (btst_predicate, btst_constraint, btst_range): New | |
2659 | define_mode_attrs. | |
2660 | (cbranch_bftst<mode>_insn, cstore_bftst<mode>_insn): New | |
2661 | patterns. | |
2662 | (movsi_m68k_movsi_m68k2, movsi_cf, unnamed movstrict patterns, | |
2663 | unnamed movhi and movqi patterns, unnamed movsf, movdf and movxf | |
2664 | patterns): Set attr "flags_valid". | |
2665 | (truncsiqi2, trunchiqi2, truncsihi2): Remove manual CC_STATUS | |
2666 | management. Set attr "flags_valid". | |
2667 | (extendsidi2, extendplussidi, unnamed float_extendsfdf pattern, | |
2668 | extendsfdf2_cf, fix_truncdfsi2, fix_truncdfhi2, fix_truncdfqi2, | |
2669 | addi_sexthishl32, adddi_dilshr32, adddi_dilshr32_cf, | |
2670 | addi_dishl32, subdi_sexthishl32, subdi_dishl32, subdi3): Remove | |
2671 | manual CC_STATUS management. | |
2672 | (addsi3_internal, addhi3, addqi3, subsi3, subhi3, subqi3, | |
2673 | unnamed strict_lowpart subhi and subqi patterns): Set attr | |
2674 | "flags_valid". | |
2675 | (unnamed strict_lowpart addhi3 and addqi3 patterns): Likewise. | |
2676 | Remove code to operate on address regs and assert the case | |
2677 | does not occur. | |
2678 | (unnamed mulsidi patterns, divmodhi4, udivmodhi4): Remove | |
2679 | manual CC_STATUS_INIT. | |
2680 | (andsi3_internal, andhi3, andqi3, iorsi3_internal, iorhi3, iorqi3, | |
2681 | xorsi3_internal, xorhi3, xorqi3, negsi2_internal, | |
2682 | negsi2_5200, neghi2, negqi2, one_cmplsi2_internal, one_cmplhi2, | |
2683 | one_cmplqi2, unnamed strict_lowpart patterns | |
2684 | for andhi, andqi, iorhi, iorqi, xorhi, xorqi, neghi, negqi, | |
2685 | one_cmplhi and one_cmplqi): Set attr "flags_valid". | |
2686 | (iorsi_zext_ashl16, iorsi_zext): Remove manual CC_STATUS_INIT. | |
2687 | (ashldi_sexthi, ashlsi_16, ashlsi_17_24): Remove manual | |
2688 | CC_STATUS_INIT. | |
2689 | (ashlsi3, ashlhi3, ashlqi3, ashrsi3, ashrhi3, ashrqi3, lshrsi3, | |
2690 | lshrhi3, shrqi3, rotlsi3, rotlhi3, rotlhi3_lowpart, rotlqi3, | |
2691 | rotlqi3_lowpart, rotrsi3, rotrhi3, rotrhi_lowpart, rotrqi3, | |
2692 | unnamed strict_low_part patterns for HI and | |
2693 | QI versions): Set attr "flags_valid". | |
2694 | (bsetmemqi, bsetmemqi_ext, bsetdreg, bchgdreg, bclrdreg, | |
2695 | bclrmemqi, extzv_8_16_reg, extzv_bfextu_mem, insv_bfchg_mem, | |
2696 | insv_bfclr_mem, insv_bfset_mem, extv_bfextu_reg, | |
2697 | insv_bfclr_reg, insv_bfset_reg, dbne_hi, dbne_si, dbge_hi, | |
2698 | dbge_si, extendsfxf2, extenddfxf2, ): Remove manual cc_status management. | |
2699 | (various unnamed peepholes): Adjust compare/branch sequences | |
2700 | for new cbranch patterns. | |
2701 | (dbcc peepholes): Likewise, and output the comparison here | |
2702 | as well. | |
2703 | * config/m68k/predicates.md (valid_dbcc_comparison_p): Delete. | |
2704 | (fp_src_operand): Allow constant zero. | |
2705 | (address_reg_operand): New predicate. | |
2706 | ||
2707 | * rtl.h (inequality_comparisons_p): Remove declaration. | |
2708 | * recog.h (next_insn_tests_no_inequality): Likewise. | |
2709 | * rtlanal.c (inequality_comparisons_p): Delete function. | |
2710 | * recog.c (next_insn_tests_no_inequality): Likewise. | |
2711 | ||
2712 | 2019-11-25 Richard Biener <rguenther@suse.de> | |
2713 | ||
2714 | * tree-vect-slp.c (vect_detect_hybrid_slp_stmts): Add assertion. | |
2715 | (vect_detect_hybrid_slp): Swap lane and instance iteration, | |
2716 | properly re-building the visited hash-map for each lane. | |
2717 | ||
2718 | 2019-11-25 Tobias Burnus <tobias@codesourcery.com> | |
2719 | ||
2720 | * config/gcn/gcn.c (gcn_expand_scalar_to_vector_address, | |
2721 | gcn_md_reorg): Remove unused variables. | |
2722 | (gcn_emutls_var_init): Add missing (but unreachable) return | |
2723 | to silence warning. | |
2724 | (gcn_hsa_declare_function_name): Add gcc_unreachable to ensure | |
2725 | target != TARGET_GCN3 or TARGET_GCN3 will fail instead of use | |
2726 | an uninitialized variable. | |
2727 | ||
2728 | 2019-11-25 Martin Jambor <mjambor@suse.cz> | |
2729 | ||
2730 | PR ipa/92109 | |
2731 | * cgraph.h (cgraph_node::remove_from_clone_tree): Declare. | |
2732 | * cgraphclones.c (cgraph_node::remove_from_clone_tree): New method. | |
2733 | (cgraph_materialize_clone): Move removel from clone tree to the | |
2734 | the new method and use it instead. | |
2735 | * ipa.c (symbol_table::remove_unreachable_nodes): When removing | |
2736 | bodies of clones, also remove it from the clone tree. | |
2737 | ||
2738 | 2019-11-25 Martin Jambor <mjambor@suse.cz> | |
2739 | ||
2740 | PR ipa/91956 | |
2741 | * ipa-sra.c (process_isra_node_results): Put the new node to the | |
2742 | same comdat group as the original node. | |
2743 | ||
2744 | 2019-11-25 Georg-Johann Lay <avr@gjlay.de> | |
2745 | ||
2746 | Build double32 / long-double32 multilibs if needed. | |
2747 | ||
2748 | PR target/92055 | |
2749 | * config/avr/t-avr: | |
2750 | (HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): Remove vars. | |
2751 | (HAVE_DOUBLE32, HAVE_LONG_DOUBLE32, WITH_LONG_DOUBLE) | |
2752 | (HAVE_DOUBLE64, HAVE_LONG_DOUBLE64, WITH_DOUBLE): Set from | |
2753 | tm_defines and pass to genmultilib.awk. | |
2754 | * config/avr/genmultilib.awk: Use these variables to add double32 | |
2755 | and / or long-double32 multilib(s) as needed. | |
2756 | * config/avr/driver-avr.c (avr_double_lib): Adjust comment. | |
2757 | ||
2758 | 2019-11-25 Richard Biener <rguenther@suse.de> | |
2759 | ||
2760 | * cfgloop.h (get_loop_exit_edges): Add extra parameter denoting | |
2761 | loop body, defaulted to NULL. | |
2762 | (single_likely_exit): Add exit vector argument | |
2763 | * tree-ssa-loop-niter.h (loop_only_exit_p): Add loop body argument. | |
2764 | (number_of_iterations_exit): Likewise. | |
2765 | (number_of_iterations_exit_assumptions): Likewise. | |
2766 | * cfgloop.c (get_loop_exit_edges): Use passed in loop body | |
2767 | if not NULL. | |
2768 | * cfgloopanal.c (single_likely_exit): Use passed in exit vector. | |
2769 | * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables): | |
2770 | Compute exit vector around call to single_likely_exit. | |
2771 | * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_loop): Pass down | |
2772 | loop body to loop_only_exit_p. | |
2773 | * tree-ssa-loop-niter.c (loop_only_exit_p): Get loop body from | |
2774 | caller. | |
2775 | (number_of_iterations_exit_assumptions): Get loop body from caller | |
2776 | if not NULL. | |
2777 | (number_of_iterations_exit): Pass through new loop body arg. | |
2778 | (infer_loop_bounds_from_undefined): Get loop body from caller. | |
2779 | (estimate_numbers_of_iterations): Compute loop body once. | |
2780 | ||
2781 | 2019-11-25 Richard Biener <rguenther@suse.de> | |
2782 | ||
2783 | * cfganal.c (pre_and_rev_post_order_compute_fn): Use an | |
2784 | auto_bb_flag instead of an sbitmap for visited handling. | |
2785 | ||
2786 | 2019-11-25 Kewen Lin <linkw@gcc.gnu.org> | |
2787 | ||
2788 | * config/rs6000/vector.md (vector_fp_comparison_simple): New code | |
2789 | iterator. | |
2790 | (vector_fp_comparison_complex): Likewise. | |
2791 | (vector_<code><mode> for VEC_F and vector_fp_comparison_simple): New | |
2792 | define_and_split. | |
2793 | (vector_<code><mode> for VEC_F and vector_fp_comparison_complex): | |
2794 | Likewise. | |
2795 | (vector_lt<mode> for VEC_F): Refactor with | |
2796 | vector_fp_comparison_simple. | |
2797 | (vector_le<mode> for VEC_F): Likewise. | |
2798 | (vector_unge<mode> for VEC_F): Likewise. | |
2799 | (vector_unle<mode> for VEC_F): Likewise. | |
2800 | (vector_ne<mode> for VEC_F): Likewise. | |
2801 | (vector_ungt<mode> for VEC_F): Likewise. | |
2802 | (vector_unlt<mode> for VEC_F): Likewise. | |
2803 | (vector_ltgt<mode> for VEC_F): Refactor with | |
2804 | vector_fp_comparison_complex. | |
2805 | (vector_ordered<mode> for VEC_F): Likewise. | |
2806 | (vector_uneq<mode> for VEC_F): Likewise. | |
2807 | (vector_unordered<mode> for VEC_F): Likewise. | |
2808 | ||
2809 | 2019-11-24 Bernd Schmidt <bernds_cb1@t-online.de> | |
2810 | ||
2811 | * config/i386/i386.c (ix86_rtx_costs): Handle care of a PLUS in a | |
2812 | COMPARE, representing an overflow detection. | |
2813 | ||
2814 | * combine.c (combine_instructions): Record costs for jumps. | |
2815 | ||
2816 | * combine.c (can_combine_p): Allow autoinc in jumps. | |
2817 | ||
2818 | 2019-11-23 Jan Hubicka <hubicka@ucw.cz> | |
2819 | ||
2820 | * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT): Remove. | |
2821 | * doc/invoke.texi (max-inline-insns-single-O2, | |
2822 | inline-heuristics-hint-percent-O2, inline-min-speedup-O2, | |
2823 | early-inlining-insns-O2): Remove documentation. | |
2824 | * ipa-fnsummary.c (analyze_function_body, | |
2825 | compute_fn_summary): Use opt_for_fn when accessing parameters. | |
2826 | * ipa-inline.c (caller_growth_limits, can_inline_edge_p, | |
2827 | inline_insns_auto, can_inline_edge_by_limits_p, | |
2828 | want_early_inline_function_p, big_speedup_p, | |
2829 | want_inline_small_function_p, want_inline_self_recursive_call_p, | |
2830 | recursive_inlining, compute_max_insns, inline_small_functions): | |
2831 | Likewise. | |
2832 | * opts.c (default_options): Add -O3 defaults for | |
2833 | OPT__param_early_inlining_insns_, | |
2834 | OPT__param_inline_heuristics_hint_percent_, | |
2835 | OPT__param_inline_min_speedup_, OPT__param_max_inline_insns_single_. | |
2836 | * params.opt (-param=early-inlining-insns-O2=, | |
2837 | -param=inline-heuristics-hint-percent-O2=, | |
2838 | -param=inline-min-speedup-O2=, -param=max-inline-insns-single-O2= | |
2839 | -param=early-inlining-insns=, -param=inline-heuristics-hint-percent=, | |
2840 | -param=inline-min-speedup=, -param=inline-unit-growth=, | |
2841 | -param=large-function-growth=, -param=large-stack-frame=, | |
2842 | -param=large-stack-frame-growth=, -param=large-unit-insns=, | |
2843 | -param=max-inline-insns-recursive=, | |
2844 | -param=max-inline-insns-recursive-auto=, | |
2845 | -param=max-inline-insns-single=, | |
2846 | -param=max-inline-insns-size=, -param=max-inline-insns-small=, | |
2847 | -param=max-inline-recursive-depth=, | |
2848 | -param=max-inline-recursive-depth-auto=, | |
2849 | -param=min-inline-recursive-probability=, | |
2850 | -param=partial-inlining-entry-probability=, | |
2851 | -param=uninlined-function-insns=, -param=uninlined-function-time=, | |
2852 | -param=uninlined-thunk-insns=, -param=uninlined-thunk-time=): Add | |
2853 | Optimization. | |
2854 | ||
2855 | 2019-11-23 Jakub Jelinek <jakub@redhat.com> | |
2856 | ||
2857 | * ipa-fnsummary.c: Fix comment typos. | |
2858 | * ipa-ref.h: Likewise. | |
2859 | * ipa-predicate.h: Likewise. | |
2860 | * ipa-split.c: Likewise. | |
2861 | * ipa-inline-analysis.c: Likewise. | |
2862 | * ipa-predicate.c: Likewise. | |
2863 | * ipa-devirt.c: Likewise. | |
2864 | * ipa-icf.h: Likewise. | |
2865 | * profile-count.c: Likewise. | |
2866 | * ipa-icf.c: Likewise. | |
2867 | (sem_function::equals_wpa): Fix typos in dump messages. | |
2868 | * ipa-icf-gimple.h: Fix comment typos. | |
2869 | * ipa-inline-transform.c: Likewise. | |
2870 | * ipa-polymorphic-call.c: Likewise. | |
2871 | * ipa-fnsummary.h: Likewise. | |
2872 | * ipa-inline.c: Likewise. | |
2873 | (dump_inline_stats): Fix typo in debug dump message. | |
2874 | * profile-count.h: Fix comment typos. | |
2875 | ||
2876 | PR target/92615 | |
2877 | * config/i386/i386.c (ix86_md_asm_adjust): If dest_mode is | |
2878 | GET_MODE (dest), is not QImode, using ZERO_EXTEND and dest is not | |
2879 | register_operand, force x into register before storing it into dest. | |
2880 | Formatting fix. | |
2881 | ||
2882 | PR middle-end/83859 | |
2883 | * doc/extend.texi (attribute access): Fix a typo. | |
2884 | ||
2885 | PR rtl-optimization/92610 | |
2886 | * cse.c (rest_of_handle_cse2): Call cleanup_cfg (0) also if | |
2887 | cse_cfg_altered is set, even when tem is 0. | |
2888 | (rest_of_handle_cse_after_global_opts): Likewise. | |
2889 | ||
2890 | 2019-11-22 Jakub Jelinek <jakub@redhat.com> | |
2891 | ||
2892 | PR c++/92458 | |
2893 | * tree-hash-traits.h (tree_decl_hash, tree_ssa_name_hash, | |
2894 | tree_hash): Move to ... | |
2895 | * tree.h (tree_decl_hash, tree_ssa_name_hash, tree_hash): ... here. | |
2896 | (struct decl_tree_cache_traits, struct type_tree_cache_traits): New | |
2897 | types. | |
2898 | (decl_tree_cache_map, tree_tree_cache_map): New typedefs. | |
2899 | ||
2900 | PR tree-optimization/92618 | |
2901 | * tree-ssa-reassoc.c (v_info): Change from auto_vec to a struct | |
2902 | containing the auto_vec and a tree. | |
2903 | (undistribute_bitref_for_vector): Handle the case when element type | |
2904 | of vec is not the same as type of the BIT_FIELD_REF. Formatting | |
2905 | fixes. | |
2906 | ||
2907 | 2019-11-22 Martin Sebor <msebor@redhat.com> | |
2908 | ||
2909 | PR middle-end/83859 | |
2910 | * attribs.h (struct attr_access): New. | |
2911 | * attribs.c (decl_attributes): Add an informational note. | |
2912 | * builtins.c (check_access): Make extern. Consistently set no-warning | |
2913 | after issuing a warning. Handle calls through function pointers. Set | |
2914 | no-warning. | |
2915 | * builtins.h (check_access): Declare. | |
2916 | * calls.c (rdwr_access_hash): New type. | |
2917 | (rdwr_map): Same. | |
2918 | (init_attr_rdwr_indices): New function. | |
2919 | (maybe_warn_rdwr_sizes): Same. | |
2920 | (initialize_argument_information): Call init_attr_rdwr_indices. | |
2921 | Call maybe_warn_rdwr_sizes. | |
2922 | (get_size_range): Avoid null argument. | |
2923 | * doc/extend.texi (attribute access): Document new attribute. | |
2924 | ||
2925 | 2019-11-22 Andrew Stubbs <ams@codesourcery.com> | |
2926 | ||
2927 | * config/gcn/gcn.c (OMP_LDS_SIZE): Define. | |
2928 | (ACC_LDS_SIZE): Define. | |
2929 | (OTHER_LDS_SIZE): Define. | |
2930 | (LDS_SIZE): Redefine using above. | |
2931 | (gcn_expand_prologue): Initialize m0 with LDS_SIZE-1. | |
2932 | ||
2933 | 2019-11-22 Martin Sebor <msebor@redhat.com> | |
2934 | ||
2935 | PR middle-end/88226 | |
2936 | * builtins.c (check_nul_terminated_array): New function. | |
2937 | (fold_builtin_0): Remove declaration. | |
2938 | (fold_builtin_1): Same. | |
2939 | (fold_builtin_2): Same. | |
2940 | (fold_builtin_3): Same. | |
2941 | (fold_builtin_strpbrk): Add argument. | |
2942 | (fold_builtin_strspn): Same. | |
2943 | (fold_builtin_strcspn): Same. | |
2944 | (expand_builtin_strcat): Call it. Remove unused argument. | |
2945 | (expand_builtin_stpncpy): Same. | |
2946 | (expand_builtin_strncat): Same. | |
2947 | (expand_builtin_strncpy): Same. Adjust indentation. | |
2948 | (expand_builtin_strcmp): Same. | |
2949 | (expand_builtin_strncmp): Same. | |
2950 | (expand_builtin_fork_or_exec): Same. | |
2951 | (expand_builtin): Handle more built-ins. | |
2952 | (fold_builtin_2): Add argument. | |
2953 | (fold_builtin_n): Make static. Add argument. | |
2954 | (fold_call_expr): Pass new argument to fold_builtin_n and fold_builtin_2. | |
2955 | (fold_builtin_call_array): Pass new argument to fold_builtin_n. | |
2956 | (fold_builtin_strpbrk): Add argument. Call check_nul_terminated_array. | |
2957 | (fold_call_stmt): Pass new argument to fold_builtin_n. | |
2958 | * builtins.h: Correct a comment. | |
2959 | * gimple-fold.c (gimple_fold_builtin_strchr): Call | |
2960 | check_nul_terminated_array. | |
2961 | * tree-ssa-strlen.c (handle_builtin_strlen): Call | |
2962 | check_nul_terminated_array. | |
2963 | (handle_builtin_strchr): Same. | |
2964 | (handle_builtin_string_cmp): Same. | |
2965 | ||
2966 | 2019-11-22 Martin Sebor <msebor@redhat.com> | |
2967 | ||
2968 | PR tree-optimization/92501 | |
2969 | * gimple-fold.c ((gimple_fold_builtin_string_compare): Let strncmp | |
2970 | handle unterminated arrays. Rename local variables for clarity. | |
2971 | ||
2972 | 2019-11-22 Andrew Stubbs <ams@codesourcery.com> | |
2973 | ||
2974 | * config/gcn/gcn.c (gcn_hsa_declare_function_name): Calculate | |
2975 | granulated_sgprs according to architecture. | |
2976 | ||
2977 | 2019-11-22 Jan Hubicka <jh@suse.cz> | |
2978 | ||
2979 | * ggc-page.c (ggc_collect): Call memory_block_pool::trim. | |
2980 | * memory-block.cc (memory_block_pool::clear_free_list): Rename to ... | |
2981 | (memory_block_pool::reduce_free_list): ... this one. | |
2982 | (memory_block_pool::trim): New static function. | |
2983 | * memory-block.h (memory_block_pool::freelist_size): New constant | |
2984 | (memory_block_pool::clear_free_list): Rename to ... | |
2985 | (memory_block_pool::reduce_free_list): ... this one. | |
2986 | (memory_block_pool::trim): Declare. | |
2987 | ||
2988 | 2019-11-22 Richard Sandiford <richard.sandiford@arm.com> | |
2989 | ||
2990 | * tree-vect-stmts.c (vect_model_simple_cost): Take an optional | |
2991 | vect_cost_for_stmt. | |
2992 | (vectorizable_condition): Calculate the cost of EXTRACT_LAST_REDUCTION | |
2993 | here rather than... | |
2994 | * tree-vect-loop.c (vect_model_reduction_cost): ...here. | |
2995 | ||
2996 | 2019-11-22 Claudiu Zissulescu <claziss@synopsys.com> | |
2997 | ||
2998 | * config/arc/arc.md (bic_f): Use cc_set_register predicate. | |
2999 | (bic_cmp0_noout): New pattern. | |
3000 | (bic_cmp0): Likewise. | |
3001 | (neg_scc_insn): Remove pattern. | |
3002 | (not_scc_insn): Likewise. | |
3003 | ||
3004 | 2019-11-21 Harald van Dijk <harald@gigawatt.nl> | |
3005 | ||
3006 | * doc/invoke.texi (-fcommon): Remove claim about ISO C. | |
3007 | ||
3008 | 2019-11-21 Joseph Myers <joseph@codesourcery.com> | |
3009 | ||
3010 | * gimplify.c (expand_FALLTHROUGH_r, expand_FALLTHROUGH): Use | |
3011 | pedwarn instead of warning_at for fallthrough not preceding a case | |
3012 | or default label. | |
3013 | ||
3014 | 2019-11-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
3015 | ||
3016 | PR tree-optimization/92608 | |
3017 | * tree-ssa-loop-unswitch.c (find_loop_guard): Use safe_dyn_cast instead | |
3018 | of dyn_cast. | |
3019 | ||
3020 | 2019-11-21 Segher Boessenkool <segher@kernel.crashing.org> | |
3021 | ||
3022 | * config/rs6000/predicates.md (extra_insn_branch_comparison_operator): | |
3023 | New predicate. | |
3024 | * config/rs6000/rs6000-protos.h (rs6000_emit_fp_cror): New declaration. | |
3025 | * config/rs6000/rs6000.c (rs6000_generate_compare): Don't do anything | |
3026 | special for FP comparisons that need a cror instruction eventually. | |
3027 | (rs6000_emit_fp_cror): New function. | |
3028 | (rs6000_emit_sCOND): Expand all floating point comparisons to one | |
3029 | instruction, for normal FP modes, with HONOR_NANS. | |
3030 | (rs6000_emit_cbranch): Reformat. | |
3031 | * config/rs6000/rs6000.md (fp_rev): New iterator. | |
3032 | (fp_two): New iterator. | |
3033 | *<code><mode>_cc for fp_rev and GPR: New define_insn_and_split. | |
3034 | *<code><mode>_cc for fp_two and GPR: New define_insn_and_split. | |
3035 | *cbranch_2insn: New define_insn_and_split. | |
3036 | ||
3037 | 2019-11-21 Richard Sandiford <richard.sandiford@arm.com> | |
3038 | ||
3039 | PR tree-optimization/92526 | |
3040 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): Reject | |
3041 | versioning for alignment if the accesses do not have a consistent | |
3042 | mask, rather than asserting that the masks are consistent. | |
3043 | ||
3044 | 2019-11-21 Richard Sandiford <richard.sandiford@arm.com> | |
3045 | ||
3046 | PR tree-optimization/92595 | |
3047 | * tree-vect-stmts.c (get_group_load_store_type): Add a VECTOR_MODE_P | |
3048 | check. | |
3049 | (vectorizable_store, vectorizable_load): Likewise. | |
3050 | ||
3051 | 2019-11-21 Jan Hubicka <jh@suse.cz> | |
3052 | ||
3053 | * ipa-inline.c (update_callee_keys): Add parameter UPDATE_SINCE. | |
3054 | (resolve_noninline_speculation, inline_small_functions): Avoid | |
3055 | redundant updates. | |
3056 | ||
3057 | 2019-11-21 Richard Biener <rguenther@suse.de> | |
3058 | ||
3059 | * lra.c (lra_insn_recog_data_pool): New. | |
3060 | (free_insn_recog_data): Adjust. | |
3061 | (finish_insn_recog_data): Release lra_insn_recog_data_pool. | |
3062 | (lra_set_insn_recog_data): Allocate from lra_insn_recog_data_pool. | |
3063 | ||
3064 | 2019-11-21 Richard Biener <rguenther@suse.de> | |
3065 | ||
3066 | PR tree-optimization/92596 | |
3067 | * tree-vect-slp.c (vect_build_slp_tree): Fix pasto. | |
3068 | ||
3069 | 2019-11-21 Jan Hubicka <jh@suse.cz> | |
3070 | ||
3071 | * ipa-fnsummary.c (evaluate_conditions_for_known_args): Be | |
3072 | ready for some vectors to not be allocated. | |
3073 | (evaluate_properties_for_edge): Document better; make | |
3074 | known_vals and known_aggs caller allocated; avoid determining | |
3075 | values of parameters which are not used. | |
3076 | (ipa_merge_fn_summary_after_inlining): Pre allocate known_vals and | |
3077 | known_aggs. | |
3078 | * ipa-inline-analysis.c (do_estimate_edge_time): Likewise. | |
3079 | (do_estimate_edge_size): Likewise. | |
3080 | (do_estimate_edge_hints): Likewise. | |
3081 | * ipa-cp.c (ipa_get_indirect_edge_target_1): Do not early exit when | |
3082 | values are not known. | |
3083 | (ipa_release_agg_values): Add option to not release vector itself. | |
3084 | * ipa-prop.h (ipa_release_agg_values): Add parameter RELEASE_VECTOR. | |
3085 | ||
3086 | 2019-11-21 Richard Biener <rguenther@suse.de> | |
3087 | ||
3088 | * cfgloop.h (loop_iterator::~loop_iterator): Remove. | |
3089 | (loop_iterator::to_visit): Use an auto_vec with internal storage. | |
3090 | (loop_iterator::loop_iterator): Adjust. | |
3091 | * cfganal.c (compute_dominance_frontiers_1): Fold into... | |
3092 | (compute_dominance_frontiers): ... this. Hoist invariant | |
3093 | get_immediate_dominator call. | |
3094 | (compute_idf): Use a work-set instead of a work-list for more | |
3095 | optimal iteration order and duplicate avoidance. | |
3096 | * tree-into-ssa.c (mark_phi_for_rewrite): Avoid re-allocating | |
3097 | the vector all the time, instead pre-allocate the vector only | |
3098 | once. | |
3099 | (delete_update_ssa): Simplify. | |
3100 | * vec.h (va_heap::release): Disable -Wfree-nonheap-object around it. | |
3101 | ||
3102 | 2019-11-21 Jakub Jelinek <jakub@redhat.com> | |
3103 | ||
3104 | PR tree-optimization/91355 | |
3105 | * tree-ssa-sink.c (select_best_block): Use >= rather than > | |
3106 | for early_bb scaled count with best_bb count comparison. | |
3107 | ||
3108 | * ipa-fnsummary.h (enum ipa_hints_vals): Fix comment typo, | |
3109 | preffer -> prefer. | |
3110 | * ipa-inline.c (edge_badness): Likewise. | |
3111 | * lto-streamer.h (class lto_location_cache): Likewise. | |
3112 | * tree-ssa-sink.c (select_best_block): Likewise. Fix comment typos, | |
3113 | gratutious -> gratuitous. | |
3114 | ||
3115 | 2019-11-21 Richard Biener <rguenther@suse.de> | |
3116 | ||
3117 | Revert | |
3118 | 2019-09-17 Richard Biener <rguenther@suse.de> | |
3119 | ||
3120 | PR tree-optimization/91790 | |
3121 | * tree-vect-stmts.c (vectorizable_load): For BB vectorization | |
3122 | use the correct DR for setting up realignment. | |
3123 | ||
3124 | 2019-11-21 Richard Biener <rguenther@suse.de> | |
3125 | ||
3126 | * tree-ssa-structalias.c (equiv_class_hasher): Change to nofree. | |
3127 | (equiv_class_obstack): New. | |
3128 | (equiv_class_lookup_or_add): Allocate from equiv_class_obstack. | |
3129 | (perform_var_substitution): Initialize equiv_class_obstack. | |
3130 | (free_var_substitution_info): Free equiv_class_obstack. | |
3131 | ||
3132 | 2019-11-20 Jan Hubicka <jh@suse.cz> | |
3133 | ||
3134 | * ipa-inline.c (want_early_inline_function_p): Do not estimate | |
3135 | edge growth when callee function is very large. | |
3136 | * ipa-inline.h (estimate_min_edge_growth): New. | |
3137 | ||
3138 | 2019-11-20 Jan Hubicka <jh@suse.cz> | |
3139 | ||
3140 | * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Allow | |
3141 | negative time in calls summary; correct roundoff errors | |
3142 | leading to negative times. | |
3143 | (ipa_merge_fn_summary_after_inlining): Update calls size time table | |
3144 | if present. | |
3145 | (ipa_update_overall_fn_summary): Add RESET parameter. | |
3146 | * ipa-fnsummary.h (ipa_update_overall_fn_summary): Update prototype. | |
3147 | * ipa-inline-transform.c (inline_call): Enable incremental updates. | |
3148 | ||
3149 | 2019-11-20 Richard Sandiford <richard.sandiford@arm.com> | |
3150 | ||
3151 | * tree-vect-slp.c (vect_schedule_slp_instance): Restore stmt | |
3152 | def types for two-operation SLP. | |
3153 | ||
3154 | 2019-11-20 Richard Sandiford <richard.sandiford@arm.com> | |
3155 | ||
3156 | PR testsuite/92366 | |
3157 | * doc/sourcebuild.texi (vect_char_add): Document. | |
3158 | ||
3159 | 2019-11-20 Alexandre Oliva <oliva@adacore.com> | |
3160 | ||
3161 | * function.h (CALLEE_FROM_CGRAPH_P): Remove. | |
3162 | * function.c (record_final_call): Record even calls that might | |
3163 | have been in the cgraph. | |
3164 | * toplev.c (dump_final_node_vcg): Skip iteration over cgraph | |
3165 | callees. | |
3166 | ||
3167 | 2019-11-20 Janne Blomqvist <jb@gcc.gnu.org> | |
3168 | ||
3169 | * configure.ac: Use https for gcc.gnu.org | |
3170 | * configure: Regenerated. | |
3171 | * doc/install.texi: Use https for gcc.gnu.org. | |
3172 | * doc/sourcebuild.texi: Likewise. | |
3173 | ||
3174 | 2019-11-20 Julian Brown <julian@codesourcery.com> | |
3175 | ||
3176 | * config/gcn/gcn.c (gcn_asm_output_symbol_ref): Handle null cfun. | |
3177 | ||
3178 | 2019-11-20 Jan Hubicka <jh@suse.cz> | |
3179 | ||
3180 | * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Add CALL | |
3181 | parameter and update call_size_time_table. | |
3182 | (ipa_fn_summary::max_size_time_table_size): New constant. | |
3183 | (estimate_calls_size_and_time_1): Break out from ... | |
3184 | (estimate_calls_size_and_time): ... here; implement summary production. | |
3185 | (summarize_calls_size_and_time): New function. | |
3186 | (ipa_call_context::estimate_size_and_time): Bypass | |
3187 | estimate_calls_size_and_time for leaf functions. | |
3188 | (ipa_update_overall_fn_summary): Likewise. | |
3189 | * ipa-fnsummary.h (call_size_time_table): New. | |
3190 | (ipa_fn_summary::account_size_time): Update prototype. | |
3191 | ||
3192 | 2019-11-20 Joseph Myers <joseph@codesourcery.com> | |
3193 | ||
3194 | * doc/invoke.texi (-Wc11-c2x-compat): Document. | |
3195 | ||
3196 | 2019-11-20 Wilco Dijkstra <wdijkstr@arm.com> | |
3197 | ||
3198 | PR85678 | |
3199 | * common.opt (fcommon): Change init to 1. | |
3200 | * doc/invoke.texi (-fcommon): Update documentation. | |
3201 | ||
3202 | 2019-11-20 Jan Hubicka <jh@suse.cz> | |
3203 | ||
3204 | * fibonacci_heap.h (fibonacci_heap<K,V>::consolidate): Turn auto_vec | |
3205 | to ordinary array. | |
3206 | ||
3207 | 2019-11-20 Jan Hubicka <jh@suse.cz> | |
3208 | ||
3209 | * fibonacci_heap.h (fibonacci_heap<K,V>::fibonacci_heap): | |
3210 | Add allocator parameter. | |
3211 | (fibonacci_heap<K,V>::~fibonacci_heap): Optimize destruction. | |
3212 | (fibonacci_heap<K,V>::m_allocator): New. | |
3213 | (fibonacci_heap<K,V>::m_own_allocator): New. | |
3214 | (fibonacci_heap<K,V>::insert): Use allocator. | |
3215 | (fibonacci_heap<K,V>::extract_min): Likewise. | |
3216 | (fibonacci_heap<K,V>::union_with): Assert that both heaps share | |
3217 | allocator. | |
3218 | (fibonacci_heap<K,V>::consolidate): Allocate constant sized vector | |
3219 | on stack. | |
3220 | * fibonacci_heap.c: Include alloc-pool | |
3221 | (test_empty_heap): Initialize allocator. | |
3222 | (test_union): Likewise. | |
3223 | * bb-reorder.c: Include alloc-pool.h. | |
3224 | * tracer.c: Inlclude alloc-pool.h. | |
3225 | ||
3226 | 2019-11-20 Jan Hubicka <jh@suse.cz> | |
3227 | ||
3228 | * lto-streamer-out.c (DFS::sccstack): Turn into auto-vec. | |
3229 | Preallocate for 32 entries. | |
3230 | (DFS::worklist): Likewise. | |
3231 | (DFS::DFS): Do not initialize sccstack and worklist. | |
3232 | (DFS::~DFS): Do not release sccstack. | |
3233 | ||
3234 | 2019-11-20 Segher Boessenkool <segher@kernel.crashing.org> | |
3235 | ||
3236 | PR target/92573 | |
3237 | * config/rs6000/dfp.md (dfptstsfi_<code>_<mode> for DFP_TEST and DDTD): | |
3238 | Handle UNORDERED if !HONOR_NANS. | |
3239 | ||
3240 | 2019-11-20 Jan Hubicka <jh@suse.cz> | |
3241 | ||
3242 | * ipa-inline.c (wrapper_heuristics_may_apply): Break out from ... | |
3243 | (edge_badness): ... here. | |
3244 | (inline_small_functions): Use monotonicity of badness calculation | |
3245 | to avoid redundant updates. | |
3246 | ||
3247 | 2019-11-20 Richard Biener <rguenther@suse.de> | |
3248 | ||
3249 | * tree-vect-slp.c (vect_analyze_slp_instance): Dump | |
3250 | constructors we are actually analyzing. | |
3251 | (vect_slp_check_for_constructors): Do not vectorize uniform | |
3252 | constuctors, do not dump here. | |
3253 | ||
3254 | 2019-11-20 Richard Biener <rguenther@suse.de> | |
3255 | ||
3256 | PR tree-optimization/92537 | |
3257 | * tree-vect-slp.c (vect_analyze_slp_instance): Move CTOR | |
3258 | vectorization validity check... | |
3259 | (vect_slp_analyze_operations): ... here. | |
3260 | ||
3261 | 2019-11-20 Claudiu Zissulescu <claziss@synopsys.com> | |
3262 | ||
3263 | * config/arc/arc-protos.h (make_pass_arc_ifcvt): Declare. | |
3264 | (make_pass_arc_predicate_delay_insns): Likewise. | |
3265 | * config/arc/arc.c (class pass_arc_ifcvt): Reformat text, add gate | |
3266 | method, remove clone. | |
3267 | (class pass_arc_predicate_delay_insns): Likewise. | |
3268 | (arc_init): Remove registering of ARC specific passes. | |
3269 | * config/arc/t-arc (PASSES_EXTRA): Add arc-passes.def. | |
3270 | * config/arc/arc-passes.def: New file. | |
3271 | ||
3272 | 2019-11-20 Jakub Jelinek <jakub@redhat.com> | |
3273 | ||
3274 | PR middle-end/90840 | |
3275 | * expmed.c (store_bit_field_1): Handle the case where op0 is not a MEM | |
3276 | and has a mode that doesn't have corresponding integral type. | |
3277 | ||
3278 | PR target/90867 | |
3279 | * config/i386/i386-options.c (ix86_valid_target_attribute_tree): Don't | |
3280 | clear opts->x_ix86_isa_flags{,2} here... | |
3281 | (ix86_valid_target_attribute_inner_p): ... but here when seeing | |
3282 | arch=. Also clear opts->x_ix86_isa_flags{,2}_explicit. | |
3283 | ||
3284 | PR c/90898 | |
3285 | * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Remove | |
3286 | assertion. | |
3287 | (insert_clobbers_for_var): Fix a typo in function comment. | |
3288 | ||
3289 | 2019-11-20 Jiangning Liu <jiangning.liu@amperecomputing.com> | |
3290 | Jakub Jelinek <jakub@redhat.com> | |
3291 | ||
3292 | PR middle-end/91195 | |
3293 | * tree-ssa-phiopt.c (cond_store_replacement): Move lhs unsharing | |
3294 | earlier. Set TREE_NO_WARNING on the rhs1 of the artificially added | |
3295 | load. | |
3296 | ||
3297 | 2019-11-20 Georg-Johann Lay <avr@gjlay.de> | |
3298 | ||
3299 | Make 0-series device specs work with older versions of avr-gcc. | |
3300 | ||
3301 | PR target/92545 | |
3302 | * config/avr/specs.h (LINK_SPEC) <%(link_pm_base_address)>: Remove. | |
3303 | * config/avr/gen-avr-mmcu-specs.c (print_mcu) | |
3304 | <*link_pm_base_address>: Don't write spec. | |
3305 | <*link_arch>: Add --defsym=__RODATA_PM_OFFSET__= as needed. | |
3306 | ||
3307 | 2019-11-20 Richard Biener <rguenther@suse.de> | |
3308 | ||
3309 | PR c/92088 | |
3310 | * builtins.c (compute_objsize): Deal with VLAs. | |
3311 | ||
3312 | 2019-11-19 Pat Haugen <pthaugen@us.ibm.com> | |
3313 | ||
3314 | * config/rs6000/rs6000.c (move_to_end_of_ready): New, factored out | |
3315 | from common code. | |
3316 | (power6_sched_reorder2): Factored out from rs6000_sched_reorder2, | |
3317 | call new function. | |
3318 | (power9_sched_reorder2): Call new function. | |
3319 | (rs6000_sched_reorder2): Likewise. | |
3320 | ||
3321 | 2019-11-18 Jan Hubicka <jh@suse.cz> | |
3322 | ||
3323 | * ipa-fnsummary.c (estimate_edge_size_and_time): Drop parameter PROB. | |
3324 | (estimate_calls_size_and_time): Update. | |
3325 | ||
3326 | 2019-11-18 Jan Hubicka <jh@suse.cz> | |
3327 | ||
3328 | * ipa-inline.c (inlining_speedup): New function. | |
3329 | (edge_badness): Use it. | |
3330 | ||
3331 | 2019-11-19 Zoran Jovanovic <zoran.jovanovic@mips.com> | |
3332 | Dragan Mladjenovic <dmladjenovic@wavecomp.com> | |
3333 | ||
3334 | * config/mips/mips-msa.md (msa_<msabr>_<msafmt_f>, msa_<msabr>_v_<msafmt_f>): | |
3335 | Mark as not having "likely" version. | |
3336 | * config/mips/mips.md (insn_count): The simd_div instruction with | |
3337 | TARGET_CHECK_ZERO_DIV consists of 3 instructions. | |
3338 | (can_delay): Exclude simd_branch. | |
3339 | (defile_delay *): Add simd_branch instructions. | |
3340 | They have one regular delay slot. | |
3341 | ||
3342 | 2019-11-19 Richard Sandiford <richard.sandiford@arm.com> | |
3343 | ||
3344 | Revert: | |
3345 | 2019-11-18 Richard Sandiford <richard.sandiford@arm.com> | |
3346 | ||
3347 | * cse.c (cse_insn): Delete no-op register moves too. | |
3348 | * simplify-rtx.c (comparison_to_mask): Handle unsigned comparisons. | |
3349 | Take a second comparison to control the value for NE. | |
3350 | (mask_to_comparison): Handle unsigned comparisons. | |
3351 | (simplify_logical_relational_operation): Likewise. Update call | |
3352 | to comparison_to_mask. Handle AND if !HONOR_NANs. | |
3353 | (simplify_binary_operation_1): Call the above for AND too. | |
3354 | ||
3355 | 2019-11-19 Martin Liska <mliska@suse.cz> | |
3356 | ||
3357 | * toplev.c (general_init): Move the call... | |
3358 | (toplev::main): ... here as we need init_options_struct | |
3359 | being called. | |
3360 | ||
3361 | 2019-11-19 Wilco Dijkstra <wdijkstr@arm.com> | |
3362 | ||
3363 | PR target/79262 | |
3364 | * config/aarch64/aarch64.c (generic_vector_cost): Adjust | |
3365 | vec_to_scalar_cost. | |
3366 | ||
3367 | 2019-11-19 Wilco Dijkstra <wdijkstr@arm.com> | |
3368 | ||
3369 | * config/arm/arm-cpus.in (armv7): Set tune to Cortex-A53. | |
3370 | (armv7-a): Likewise. | |
3371 | (armv7ve): Likewise. | |
3372 | ||
3373 | 2019-11-19 Richard Biener <rguenther@suse.de> | |
3374 | ||
3375 | PR tree-optimization/92581 | |
3376 | * tree-vect-loop.c (vect_create_epilog_for_reduction): For | |
3377 | condition reduction chains gather all conditions involved | |
3378 | for computing the index reduction vector. | |
3379 | ||
3380 | 2019-11-19 Dennis Zhang <dennis.zhang@arm.com> | |
3381 | ||
3382 | * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add | |
3383 | AARCH64_MEMTAG_BUILTIN_START, AARCH64_MEMTAG_BUILTIN_IRG, | |
3384 | AARCH64_MEMTAG_BUILTIN_GMI, AARCH64_MEMTAG_BUILTIN_SUBP, | |
3385 | AARCH64_MEMTAG_BUILTIN_INC_TAG, AARCH64_MEMTAG_BUILTIN_SET_TAG, | |
3386 | AARCH64_MEMTAG_BUILTIN_GET_TAG, and AARCH64_MEMTAG_BUILTIN_END. | |
3387 | (aarch64_init_memtag_builtins): New. | |
3388 | (AARCH64_INIT_MEMTAG_BUILTINS_DECL): New macro. | |
3389 | (aarch64_general_init_builtins): Call aarch64_init_memtag_builtins. | |
3390 | (aarch64_expand_builtin_memtag): New. | |
3391 | (aarch64_general_expand_builtin): Call aarch64_expand_builtin_memtag. | |
3392 | (AARCH64_BUILTIN_SUBCODE): New macro. | |
3393 | (aarch64_resolve_overloaded_memtag): New. | |
3394 | (aarch64_resolve_overloaded_builtin_general): New. Call | |
3395 | aarch64_resolve_overloaded_memtag to handle overloaded MTE builtins. | |
3396 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define | |
3397 | __ARM_FEATURE_MEMORY_TAGGING when enabled. | |
3398 | (aarch64_resolve_overloaded_builtin): Call | |
3399 | aarch64_resolve_overloaded_builtin_general. | |
3400 | * config/aarch64/aarch64-protos.h | |
3401 | (aarch64_resolve_overloaded_builtin_general): New declaration. | |
3402 | * config/aarch64/aarch64.h (AARCH64_ISA_MEMTAG): New macro. | |
3403 | (TARGET_MEMTAG): Likewise. | |
3404 | * config/aarch64/aarch64.md (UNSPEC_GEN_TAG): New unspec. | |
3405 | (UNSPEC_GEN_TAG_RND, and UNSPEC_TAG_SPACE): Likewise. | |
3406 | (irg, gmi, subp, addg, ldg, stg): New instructions. | |
3407 | * config/aarch64/arm_acle.h (__arm_mte_create_random_tag): New macro. | |
3408 | (__arm_mte_exclude_tag, __arm_mte_ptrdiff): Likewise. | |
3409 | (__arm_mte_increment_tag, __arm_mte_set_tag): Likewise. | |
3410 | (__arm_mte_get_tag): Likewise. | |
3411 | * config/aarch64/predicates.md (aarch64_memtag_tag_offset): New. | |
3412 | (aarch64_granule16_uimm6, aarch64_granule16_simm9): New. | |
3413 | * config/arm/types.md (memtag): New. | |
3414 | * doc/invoke.texi (-memtag): Update description. | |
3415 | ||
3416 | 2019-11-19 Richard Henderson <richard.henderson@linaro.org> | |
3417 | ||
3418 | * config/arm/arm-c.c (arm_cpu_builtins): Use def_or_undef_macro | |
3419 | to define __GCC_ASM_FLAG_OUTPUTS__. | |
3420 | * config/arm/arm.c (thumb1_md_asm_adjust): New function. | |
3421 | (arm_option_params_internal): Swap out targetm.md_asm_adjust | |
3422 | depending on TARGET_THUMB1. | |
3423 | * doc/extend.texi (FlagOutputOperands): Document thumb1 restriction. | |
3424 | ||
3425 | 2019-11-19 Jakub Jelinek <jakub@redhat.com> | |
3426 | ||
3427 | PR target/92549 | |
3428 | * config/i386/i386.md (peephole2 for *swap<mode>): New peephole2. | |
3429 | ||
3430 | PR middle-end/91450 | |
3431 | * internal-fn.c (expand_mul_overflow): For s1 * s2 -> ur, if one | |
3432 | operand is negative and one non-negative, compare the non-negative | |
3433 | one against 0 rather than comparing s1 & s2 against 0. Otherwise, | |
3434 | don't compare (s1 & s2) == 0, but compare separately both s1 == 0 | |
3435 | and s2 == 0, unless one of them is known to be negative. Remove | |
3436 | tem2 variable, use tem where tem2 has been used before. | |
3437 | ||
3438 | 2019-11-19 Eric Botcazou <ebotcazou@adacore.com> | |
3439 | ||
3440 | * doc/invoke.texi (-gno-internal-reset-location-views): Fix typo. | |
3441 | ||
3442 | 2019-11-19 Jakub Jelinek <jakub@redhat.com> | |
3443 | ||
3444 | PR tree-optimization/92557 | |
3445 | * omp-low.c (omp_clause_aligned_alignment): Punt if TYPE_MODE is not | |
3446 | vmode rather than asserting it always is. | |
3447 | ||
3448 | 2019-11-19 Richard Biener <rguenther@suse.de> | |
3449 | ||
3450 | PR tree-optimization/92554 | |
3451 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Look | |
3452 | for the actual condition stmt and deal with sign-changes. | |
3453 | ||
3454 | 2019-11-19 Richard Biener <rguenther@suse.de> | |
3455 | ||
3456 | PR tree-optimization/92555 | |
3457 | * tree-vect-loop.c (vect_update_vf_for_slp): Also scan PHIs | |
3458 | for non-SLP stmts. | |
3459 | ||
3460 | 2019-11-19 Martin Liska <mliska@suse.cz> | |
3461 | ||
3462 | PR bootstrap/92540 | |
3463 | * config/riscv/riscv.c (riscv_address_insns): Initialize | |
3464 | addr in order to remove boostrap -Wmaybe-uninitialized | |
3465 | error. | |
3466 | ||
3467 | 2019-11-18 Martin Sebor <msebor@redhat.com> | |
3468 | ||
3469 | PR tree-optimization/92493 | |
3470 | * gimple-ssa-sprintf.c (get_origin_and_offset): Remove spurious | |
3471 | assignment. | |
3472 | ||
3473 | 2019-11-18 Giuliano Belinassi <giuliano.belinassi@usp.br> | |
3474 | ||
3475 | * cfgloop.c (get_loop_body_in_custom_order): New. | |
3476 | * cfgloop.h (get_loop_body_in_custom_order): New prototype. | |
3477 | * tree-loop-distribution.c (class loop_distribution): New. | |
3478 | (bb_top_order_cmp): Remove. | |
3479 | (bb_top_order_cmp_r): New. | |
3480 | (create_rdg_vertices): Move into class loop_distribution. | |
3481 | (stmts_from_loop): Same as above. | |
3482 | (update_for_merge): Same as above. | |
3483 | (partition_merge_into): Same as above. | |
3484 | (get_data_dependence): Same as above. | |
3485 | (data_dep_in_cycle_p): Same as above. | |
3486 | (update_type_for_merge): Same as above. | |
3487 | (build_rdg_partition_for-vertex): Same as above. | |
3488 | (classify_builtin_ldst): Same as above. | |
3489 | (classify_partition): Same as above. | |
3490 | (share_memory_accesses): Same as above. | |
3491 | (rdg_build_partitions): Same as above. | |
3492 | (pg_add_dependence_edges): Same as above. | |
3493 | (build_partition_graph): Same as above. | |
3494 | (merge_dep_scc_partitions): Same as above. | |
3495 | (break_alias_scc_partitions): Same as above. | |
3496 | (finalize_partitions): Same as above. | |
3497 | (distribute_loop): Same as above. | |
3498 | (bb_top_order_init): New method | |
3499 | (bb_top_order_destroy): New method. | |
3500 | (get_bb_top_order_index_size): New method. | |
3501 | (get_bb_top_order_index_index): New method. | |
3502 | (get_bb_top_order_index_index): New method. | |
3503 | (loop_distribution::execute): New method. | |
3504 | (pass_loop_distribution::execute): Instantiate loop_distribution. | |
3505 | ||
3506 | 2019-11-18 Jan Hubicka <jh@suse.cz> | |
3507 | ||
3508 | PR ipa/92508 | |
3509 | * ipa-inline.c (inline_small_functions): Add new edges after reseting | |
3510 | caches. | |
3511 | * ipa-inline-analysis.c (do_estimate_edge_time): Fix sanity check. | |
3512 | ||
3513 | 2019-11-18 Richard Sandiford <richard.sandiford@arm.com> | |
3514 | ||
3515 | * doc/sourcebuild.texi (vect_check_ptrs): Document. | |
3516 | * optabs.def (check_raw_ptrs_optab, check_war_ptrs_optab): New optabs. | |
3517 | * doc/md.texi: Document them. | |
3518 | * internal-fn.def (IFN_CHECK_RAW_PTRS, IFN_CHECK_WAR_PTRS): New | |
3519 | internal functions. | |
3520 | * internal-fn.h (internal_check_ptrs_fn_supported_p): Declare. | |
3521 | * internal-fn.c (check_ptrs_direct): New macro. | |
3522 | (expand_check_ptrs_optab_fn): Likewise. | |
3523 | (direct_check_ptrs_optab_supported_p): Likewise. | |
3524 | (internal_check_ptrs_fn_supported_p): New fuction. | |
3525 | * tree-data-ref.c: Include internal-fn.h. | |
3526 | (create_ifn_alias_checks): New function. | |
3527 | (create_intersect_range_checks): Use it. | |
3528 | * config/aarch64/iterators.md (SVE2_WHILE_PTR): New int iterator. | |
3529 | (optab, cmp_op): Handle it. | |
3530 | (raw_war, unspec): New int attributes. | |
3531 | * config/aarch64/aarch64.md (UNSPEC_WHILERW, UNSPEC_WHILE_WR): New | |
3532 | constants. | |
3533 | * config/aarch64/predicates.md (aarch64_bytes_per_sve_vector_operand): | |
3534 | New predicate. | |
3535 | * config/aarch64/aarch64-sve2.md (check_<raw_war>_ptrs<mode>): New | |
3536 | expander. | |
3537 | (@aarch64_sve2_while<cmp_op><GPI:mode><PRED_ALL:mode>_ptest): New | |
3538 | pattern. | |
3539 | ||
3540 | 2019-11-18 Richard Sandiford <richard.sandiford@arm.com> | |
3541 | ||
3542 | * tree.c (build_vector_from_ctor): Directly return a zero vector for | |
3543 | empty constructors. | |
3544 | ||
3545 | 2019-11-18 Richard Sandiford <richard.sandiford@arm.com> | |
3546 | ||
3547 | * cse.c (cse_insn): Delete no-op register moves too. | |
3548 | * simplify-rtx.c (comparison_to_mask): Handle unsigned comparisons. | |
3549 | Take a second comparison to control the value for NE. | |
3550 | (mask_to_comparison): Handle unsigned comparisons. | |
3551 | (simplify_logical_relational_operation): Likewise. Update call | |
3552 | to comparison_to_mask. Handle AND if !HONOR_NANs. | |
3553 | (simplify_binary_operation_1): Call the above for AND too. | |
3554 | ||
3555 | 2019-11-18 Richard Sandiford <richard.sandiford@arm.com> | |
3556 | ||
3557 | * fold-const.c (native_encode_vector): Turn into a wrapper function, | |
3558 | splitting the main code out into... | |
3559 | (native_encode_vector_part): ...this new function. | |
3560 | (native_decode_vector_tree): New function. | |
3561 | (fold_view_convert_vector_encoding): Likewise. | |
3562 | (fold_view_convert_expr): Use it for converting VECTOR_CSTs | |
3563 | to VECTOR_TYPEs. | |
3564 | ||
3565 | 2019-11-18 Richard Sandiford <richard.sandiford@arm.com> | |
3566 | ||
3567 | * tree-data-ref.c (create_intersect_range_checks_index): If the | |
3568 | alias pair describes simple WAW and WAR dependencies, just check | |
3569 | whether the first B access overlaps later A accesses. | |
3570 | (create_waw_or_war_checks): New function that performs the same | |
3571 | optimization on addresses. | |
3572 | (create_intersect_range_checks): Call it. | |
3573 | ||
3574 | 2019-11-18 Richard Sandiford <richard.sandiford@arm.com> | |
3575 | ||
3576 | * lra-constraints.c (valid_address_p): Take the operand and a | |
3577 | constraint as argument. If the operand is a MEM and the constraint | |
3578 | is a memory constraint, check whether the eliminated form of the | |
3579 | MEM already satisfies the constraint. | |
3580 | (process_address_1): Update calls accordingly. | |
3581 | ||
3582 | 2019-11-18 Tom Tromey <tromey@adacore.com> | |
3583 | ||
3584 | * doc/tm.texi: Rebuild. | |
3585 | * doc/tm.texi.in (Misc): Don't document MODIFY_JNI_METHOD_CALL. | |
3586 | * config/i386/cygming.h (MODIFY_JNI_METHOD_CALL): Don't define. | |
3587 | ||
3588 | 2019-11-18 Richard Biener <rguenther@suse.de> | |
3589 | ||
3590 | PR tree-optimization/92516 | |
3591 | * tree-vect-slp.c (vect_analyze_slp_instance): Add bst_map | |
3592 | argument, hoist bst_map creation/destruction to ... | |
3593 | (vect_analyze_slp): ... here, forming a true graph with | |
3594 | SLP instances being the entries. | |
3595 | (vect_detect_hybrid_slp_stmts): Remove wrapper. | |
3596 | (vect_detect_hybrid_slp): Use one visited set for all | |
3597 | graph entries. | |
3598 | (vect_slp_analyze_node_operations): Simplify visited/lvisited | |
3599 | to hash-sets of slp_tree. | |
3600 | (vect_slp_analyze_operations): Likewise. | |
3601 | (vect_bb_slp_scalar_cost): Remove wrapper. | |
3602 | (vect_bb_vectorization_profitable_p): Use one visited set for | |
3603 | all graph entries. | |
3604 | (vect_schedule_slp_instance): Elide bst_map use. | |
3605 | (vect_schedule_slp): Likewise. | |
3606 | ||
3607 | 2019-11-18 Richard Biener <rguenther@suse.de> | |
3608 | ||
3609 | * tree-vect-slp.c (vect_analyze_slp_instance): When a CTOR | |
3610 | was vectorized with just external refs fail. | |
3611 | ||
3612 | 2019-11-18 Martin Liska <mliska@suse.cz> | |
3613 | ||
3614 | PR ipa/92525 | |
3615 | * ipa-icf.c (sem_function::init): Unset m_checker | |
3616 | at the end of the function. | |
3617 | ||
3618 | 2019-11-18 Richard Biener <rguenther@suse.de> | |
3619 | ||
3620 | PR tree-optimization/92558 | |
3621 | * tree-vect-loop.c (vect_create_epilog_for_reduction): When | |
3622 | reducting the width of a reduction vector def update new_phis. | |
3623 | ||
3624 | 2019-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
3625 | ||
3626 | * configure.ac (gcc_cv_target_ldbl128): Set for powerpc*-*-linux-musl* | |
3627 | and s390*-*-linux-musl* targets. | |
3628 | * configure: Regenerate. | |
3629 | ||
3630 | 2019-11-18 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
3631 | ||
3632 | * config/s390/linux.h (MUSL_DYNAMIC_LINKER32): Define. | |
3633 | (MUSL_DYNAMIC_LINKER64): Define. | |
3634 | ||
3635 | 2019-11-18 Martin Liska <mliska@suse.cz> | |
3636 | ||
3637 | * dbgcnt.c (dbg_cnt_set_limit_by_name): Provide error | |
3638 | message for an unknown counter. | |
3639 | (dbg_cnt_process_single_pair): Support 0 as minimum value. | |
3640 | (dbg_cnt_process_opt): Remove unreachable code. | |
3641 | ||
3642 | 2019-11-18 Martin Liska <mliska@suse.cz> | |
3643 | ||
3644 | PR ipa/92529 | |
3645 | * ipa-icf-gimple.c (func_checker::compare_gimple_assign): | |
3646 | Compare LHS types of NOP_EXPR. | |
3647 | ||
3648 | 2019-11-18 Matthew Malcomson <matthew.malcomson@arm.com> | |
3649 | ||
3650 | * run-rtl-passes.c (run_rtl_passes): Accept and handle empty | |
3651 | "initial_pass_name" argument -- by running "*clean_state" pass. | |
3652 | Also free the "initial_pass_name" when done. | |
3653 | ||
3654 | 2019-11-18 Richard Biener <rguenther@suse.de> | |
3655 | ||
3656 | PR rtl-optimization/92462 | |
3657 | * alias.c (find_base_term): Restrict the look through ANDs. | |
3658 | (find_base_value): Likewise. | |
3659 | ||
3660 | 2019-11-18 Georg-Johann Lay <avr@gjlay.de> | |
3661 | ||
3662 | Add support for AVR devices from the 0-series. | |
3663 | ||
3664 | PR target/92545 | |
3665 | * config/avr/avr-arch.h (avr_mcu_t) <flash_pm_offset>: New field. | |
3666 | * config/avr/avr-devices.c (avr_mcu_types): Adjust initializers. | |
3667 | * config/avr/avr-mcus.def (AVR_MCU): Add respective field. | |
3668 | * config/avr/specs.h (LINK_SPEC) <%(link_pm_base_address)>: Add. | |
3669 | * config/avr/gen-avr-mmcu-specs.c (print_mcu) | |
3670 | <*cpp, *cpp_mcu, *cpp_avrlibc, *link_pm_base_address>: Emit code | |
3671 | for spec definitions. | |
3672 | * doc/avr-mmcu.texi: Regenerate. | |
3673 | ||
3674 | 2019-11-18 Hongtao Liu <hongtao.liu@intel.com> | |
3675 | ||
3676 | PR target/92448 | |
3677 | * config/i386/i386-expand.c (ix86_expand_set_or_cpymem): | |
3678 | Replace TARGET_AVX128_OPTIMAL with TARGET_AVX256_SPLIT_REGS. | |
3679 | * config/i386/i386-option.c (ix86_vec_cost): Ditto. | |
3680 | (ix86_reassociation_width): Ditto. | |
3681 | * config/i386/i386-options.c (ix86_option_override_internal): | |
3682 | Replace TARGET_AVX128_OPTIAML with | |
3683 | ix86_tune_features[X86_TUNE_AVX128_OPTIMAL] | |
3684 | * config/i386/i386.h (TARGET_AVX256_SPLIT_REGS): New macro. | |
3685 | (TARGET_AVX128_OPTIMAL): Deleted. | |
3686 | * config/i386/x86-tune.def (X86_TUNE_AVX256_SPLIT_REGS): New | |
3687 | DEF_TUNE. | |
3688 | ||
3689 | 2019-11-16 Segher Boessenkool <segher@kernel.crashing.org> | |
3690 | ||
3691 | * config/rs6000/rs6000.md (cceq_ior_compare): Rename to... | |
3692 | (@cceq_ior_compare_<mode> for GPR): ... this. Allow GPR instead of | |
3693 | just SI. | |
3694 | (cceq_rev_compare): Rename to... | |
3695 | (@cceq_rev_compare_<mode> for GPR): ... this. Allow GPR instead of | |
3696 | just SI. | |
3697 | (define_split for <bd>tf_<mode>): Add SImode first argument to | |
3698 | gen_cceq_ior_compare. | |
3699 | ||
3700 | 2019-11-16 Segher Boessenkool <segher@kernel.crashing.org> | |
3701 | ||
3702 | * common/config/powerpcspe: Delete. | |
3703 | ||
3704 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3705 | ||
3706 | * config/aarch64/aarch64-sve.md (aarch64_wrffr): Wrap the FFRT | |
3707 | output in UNSPEC_WRFFR. | |
3708 | ||
3709 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3710 | ||
3711 | * tree-data-ref.c (create_intersect_range_checks_index): Rewrite | |
3712 | the index tests to have the form (unsigned T) (B - A + bias) <= limit. | |
3713 | ||
3714 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3715 | ||
3716 | * tree-data-ref.c (create_intersect_range_checks_index) | |
3717 | (create_intersect_range_checks): Print dump messages. | |
3718 | ||
3719 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3720 | ||
3721 | * tree-data-ref.c (dump_alias_pair): New function. | |
3722 | (prune_runtime_alias_test_list): Use it to dump each merged alias pair. | |
3723 | ||
3724 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3725 | ||
3726 | * tree-data-ref.h (DR_ALIAS_MIXED_STEPS): New flag. | |
3727 | * tree-data-ref.c (prune_runtime_alias_test_list): Set it when | |
3728 | merging data references with different steps. | |
3729 | (create_intersect_range_checks_index): Take a | |
3730 | dr_with_seg_len_pair_t instead of two dr_with_seg_lens. | |
3731 | Bail out if DR_ALIAS_MIXED_STEPS is set. | |
3732 | (create_intersect_range_checks): Take a dr_with_seg_len_pair_t | |
3733 | instead of two dr_with_seg_lens. Update call to | |
3734 | create_intersect_range_checks_index. | |
3735 | (create_runtime_alias_checks): Update call accordingly. | |
3736 | ||
3737 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3738 | ||
3739 | * tree-data-ref.h (DR_ALIAS_RAW, DR_ALIAS_WAR, DR_ALIAS_WAW) | |
3740 | (DR_ALIAS_ARBITRARY, DR_ALIAS_SWAPPED, DR_ALIAS_UNSWAPPED): New flags. | |
3741 | (dr_with_seg_len_pair_t::sequencing): New enum. | |
3742 | (dr_with_seg_len_pair_t::flags): New member variable. | |
3743 | (dr_with_seg_len_pair_t::dr_with_seg_len_pair_t): Take a sequencing | |
3744 | parameter and initialize the flags member variable. | |
3745 | * tree-loop-distribution.c (compute_alias_check_pairs): Update | |
3746 | call accordingly. | |
3747 | * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise. | |
3748 | Ensure the two data references in an alias pair are in statement | |
3749 | order, if there is a defined order. | |
3750 | * tree-data-ref.c (prune_runtime_alias_test_list): Use | |
3751 | DR_ALIAS_SWAPPED and DR_ALIAS_UNSWAPPED to record whether we've | |
3752 | swapped the references in a dr_with_seg_len_pair_t. OR together | |
3753 | the flags when merging two dr_with_seg_len_pair_ts. After merging, | |
3754 | try to restore the original dr_with_seg_len order, updating the | |
3755 | flags if that fails. | |
3756 | ||
3757 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3758 | ||
3759 | * tree-data-ref.c (prune_runtime_alias_test_list): Delay | |
3760 | swapping the dr_as based on init values until we've decided | |
3761 | whether to merge them. | |
3762 | ||
3763 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3764 | ||
3765 | * tree-data-ref.c (prune_runtime_alias_test_list): Sort the | |
3766 | two accesses in each dr_with_seg_len_pair_t before trying to | |
3767 | combine separate dr_with_seg_len_pair_ts. | |
3768 | * tree-loop-distribution.c (compute_alias_check_pairs): Don't do | |
3769 | that here. | |
3770 | * tree-vect-data-refs.c (vect_prune_runtime_alias_test_list): Likewise. | |
3771 | ||
3772 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3773 | ||
3774 | * config/aarch64/aarch64-sve.md | |
3775 | (scatter_store<SVE_FULL_SD:mode><v_int_equiv>): Extend to... | |
3776 | (scatter_store<SVE_24:mode><v_int_container>): ...this. | |
3777 | (mask_scatter_store<SVE_FULL_S:mode><v_int_equiv>): Extend to... | |
3778 | (mask_scatter_store<SVE_4:mode><v_int_equiv>): ...this. | |
3779 | (mask_scatter_store<SVE_FULL_D:mode><v_int_equiv>): Extend to... | |
3780 | (mask_scatter_store<SVE_2:mode><v_int_equiv>): ...this. | |
3781 | (*mask_scatter_store<mode><v_int_container>_<su>xtw_unpacked): New | |
3782 | pattern. | |
3783 | (*mask_scatter_store<SVE_FULL_D:mode><v_int_equiv>_sxtw): Extend to... | |
3784 | (*mask_scatter_store<SVE_2:mode><v_int_equiv>_sxtw): ...this. | |
3785 | (*mask_scatter_store<SVE_FULL_D:mode><v_int_equiv>_uxtw): Extend to... | |
3786 | (*mask_scatter_store<SVE_2:mode><v_int_equiv>_uxtw): ...this. | |
3787 | ||
3788 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3789 | ||
3790 | * config/aarch64/iterators.md (SVE_2BHSI, SVE_2HSDI, SVE_4BHI) | |
3791 | (SVE_4HSI): New mode iterators. | |
3792 | (ANY_EXTEND2): New code iterator. | |
3793 | * config/aarch64/aarch64-sve.md | |
3794 | (@aarch64_gather_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>): | |
3795 | Extend to... | |
3796 | (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_4HSI:mode><SVE_4BHI:mode>): | |
3797 | ...this, handling extension to partial modes as well as full modes. | |
3798 | Describe the extension as a predicated rather than unpredicated | |
3799 | extension. | |
3800 | (@aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>): | |
3801 | Likewise extend to... | |
3802 | (@aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>): | |
3803 | ...this, making the same adjustments. | |
3804 | (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw): | |
3805 | Likewise extend to... | |
3806 | (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_sxtw) | |
3807 | ...this, making the same adjustments. | |
3808 | (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw): | |
3809 | Likewise extend to... | |
3810 | (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_uxtw) | |
3811 | ...this, making the same adjustments. | |
3812 | (*aarch64_gather_load_<ANY_EXTEND:optab><SVE_2HSDI:mode><SVE_2BHSI:mode>_<ANY_EXTEND2:su>xtw_unpacked): | |
3813 | New pattern. | |
3814 | (*aarch64_ldff1_gather<mode>_sxtw): Canonicalize to a constant | |
3815 | extension predicate. | |
3816 | (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) | |
3817 | (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>) | |
3818 | (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw): | |
3819 | Describe the extension as a predicated rather than unpredicated | |
3820 | extension. | |
3821 | (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw): | |
3822 | Likewise. Canonicalize to a constant extension predicate. | |
3823 | * config/aarch64/aarch64-sve-builtins-base.cc | |
3824 | (svld1_gather_extend_impl::expand): Add an extra predicate for | |
3825 | the extension. | |
3826 | (svldff1_gather_extend_impl::expand): Likewise. | |
3827 | ||
3828 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3829 | ||
3830 | * config/aarch64/iterators.md (SVE_24, SVE_2, SVE_4): New mode | |
3831 | iterators. | |
3832 | * config/aarch64/aarch64-sve.md | |
3833 | (gather_load<SVE_FULL_SD:mode><v_int_equiv>): Extend to... | |
3834 | (gather_load<SVE_24:mode><v_int_container>): ...this. | |
3835 | (mask_gather_load<SVE_FULL_S:mode><v_int_equiv>): Extend to... | |
3836 | (mask_gather_load<SVE_4:mode><v_int_container>): ...this. | |
3837 | (mask_gather_load<SVE_FULL_D:mode><v_int_equiv>): Extend to... | |
3838 | (mask_gather_load<SVE_2:mode><v_int_container>): ...this. | |
3839 | (*mask_gather_load<SVE_2:mode><v_int_container>_<su>xtw_unpacked): | |
3840 | New pattern. | |
3841 | (*mask_gather_load<SVE_FULL_D:mode><v_int_equiv>_sxtw): Extend to... | |
3842 | (*mask_gather_load<SVE_2:mode><v_int_equiv>_sxtw): ...this. | |
3843 | Allow the nominal extension predicate to be different from the | |
3844 | load predicate. | |
3845 | (*mask_gather_load<SVE_FULL_D:mode><v_int_equiv>_uxtw): Extend to... | |
3846 | (*mask_gather_load<SVE_2:mode><v_int_equiv>_uxtw): ...this. | |
3847 | ||
3848 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3849 | ||
3850 | * config/aarch64/aarch64-sve.md | |
3851 | (trunc<SVE_HSDI:mode><SVE_PARTIAL_I:mode>2): New pattern. | |
3852 | * config/aarch64/aarch64.c (aarch64_integer_truncation_p): New | |
3853 | function. | |
3854 | (aarch64_sve_adjust_stmt_cost): Call it. | |
3855 | ||
3856 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3857 | ||
3858 | * config/aarch64/aarch64-sve.md | |
3859 | (@aarch64_load_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>): | |
3860 | (@aarch64_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) | |
3861 | (@aarch64_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>): | |
3862 | Combine into... | |
3863 | (@aarch64_load_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): | |
3864 | ...this new pattern, handling extension to partial modes as well | |
3865 | as full modes. Describe the extension as a predicated rather than | |
3866 | unpredicated extension. | |
3867 | (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>) | |
3868 | (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) | |
3869 | (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>): | |
3870 | Combine into... | |
3871 | (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><SVE_HSDI:mode><SVE_PARTIAL_I:mode>): | |
3872 | ...this new pattern, handling extension to partial modes as well | |
3873 | as full modes. Describe the extension as a predicated rather than | |
3874 | unpredicated extension. | |
3875 | * config/aarch64/aarch64-sve-builtins.cc | |
3876 | (function_expander::use_contiguous_load_insn): Add an extra | |
3877 | predicate for extending loads. | |
3878 | * config/aarch64/aarch64.c (aarch64_extending_load_p): New function. | |
3879 | (aarch64_sve_adjust_stmt_cost): Likewise. | |
3880 | (aarch64_add_stmt_cost): Use aarch64_sve_adjust_stmt_cost to adjust | |
3881 | the cost of SVE vector stmts. | |
3882 | ||
3883 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3884 | ||
3885 | * config/aarch64/iterators.md (SVE_HSDI): New mode iterator. | |
3886 | (narrower_mask): Handle VNx4HI, VNx2HI and VNx2SI. | |
3887 | * config/aarch64/aarch64-sve.md | |
3888 | (<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): New pattern. | |
3889 | (*<ANY_EXTEND:optab><SVE_PARTIAL_I:mode><SVE_HSDI:mode>2): Likewise. | |
3890 | (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Update | |
3891 | comment. Avoid new narrower_mask ambiguity. | |
3892 | (@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise. | |
3893 | (*cond_uxt<mode>_2): Update comment. | |
3894 | (*cond_uxt<mode>_any): Likewise. | |
3895 | ||
3896 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3897 | ||
3898 | * config/aarch64/aarch64-modes.def: Define partial SVE vector | |
3899 | float modes. | |
3900 | * config/aarch64/aarch64-protos.h (aarch64_sve_pred_mode): New | |
3901 | function. | |
3902 | * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Handle the | |
3903 | new vector float modes. | |
3904 | (aarch64_sve_container_bits): New function. | |
3905 | (aarch64_sve_pred_mode): Likewise. | |
3906 | (aarch64_get_mask_mode): Use it. | |
3907 | (aarch64_sve_element_int_mode): Handle structure modes and partial | |
3908 | modes. | |
3909 | (aarch64_sve_container_int_mode): New function. | |
3910 | (aarch64_vectorize_related_mode): Return SVE modes when given | |
3911 | SVE modes. Handle partial modes, taking the preferred number | |
3912 | of units from the size of the given mode. | |
3913 | (aarch64_hard_regno_mode_ok): Allow partial modes to be stored | |
3914 | in registers. | |
3915 | (aarch64_expand_sve_ld1rq): Use the mode form of aarch64_sve_pred_mode. | |
3916 | (aarch64_expand_sve_const_vector): Handle partial SVE vectors. | |
3917 | (aarch64_split_sve_subreg_move): Use the mode form of | |
3918 | aarch64_sve_pred_mode. | |
3919 | (aarch64_secondary_reload): Handle partial modes in the same way | |
3920 | as full big-endian vectors. | |
3921 | (aarch64_vector_mode_supported_p): Allow partial SVE vectors. | |
3922 | (aarch64_autovectorize_vector_modes): Try unpacked SVE vectors, | |
3923 | merging with the Advanced SIMD modes. If two modes have the | |
3924 | same size, try the Advanced SIMD mode first. | |
3925 | (aarch64_simd_valid_immediate): Use the container rather than | |
3926 | the element mode for INDEX constants. | |
3927 | (aarch64_simd_vector_alignment): Make the alignment of partial | |
3928 | SVE vector modes the same as their minimum size. | |
3929 | (aarch64_evpc_sel): Use the mode form of aarch64_sve_pred_mode. | |
3930 | * config/aarch64/aarch64-sve.md (mov<SVE_FULL:mode>): Extend to... | |
3931 | (mov<SVE_ALL:mode>): ...this. | |
3932 | (movmisalign<SVE_FULL:mode>): Extend to... | |
3933 | (movmisalign<SVE_ALL:mode>): ...this. | |
3934 | (*aarch64_sve_mov<mode>_le): Rename to... | |
3935 | (*aarch64_sve_mov<mode>_ldr_str): ...this. | |
3936 | (*aarch64_sve_mov<SVE_FULL:mode>_be): Rename and extend to... | |
3937 | (*aarch64_sve_mov<SVE_ALL:mode>_no_ldr_str): ...this. Handle | |
3938 | partial modes regardless of endianness. | |
3939 | (aarch64_sve_reload_be): Rename to... | |
3940 | (aarch64_sve_reload_mem): ...this and enable for little-endian. | |
3941 | Use aarch64_sve_pred_mode to get the appropriate predicate mode. | |
3942 | (@aarch64_pred_mov<SVE_FULL:mode>): Extend to... | |
3943 | (@aarch64_pred_mov<SVE_ALL:mode>): ...this. | |
3944 | (*aarch64_sve_mov<SVE_FULL:mode>_subreg_be): Extend to... | |
3945 | (*aarch64_sve_mov<SVE_ALL:mode>_subreg_be): ...this. | |
3946 | (@aarch64_sve_reinterpret<SVE_FULL:mode>): Extend to... | |
3947 | (@aarch64_sve_reinterpret<SVE_ALL:mode>): ...this. | |
3948 | (*aarch64_sve_reinterpret<SVE_FULL:mode>): Extend to... | |
3949 | (*aarch64_sve_reinterpret<SVE_ALL:mode>): ...this. | |
3950 | (maskload<SVE_FULL:mode><vpred>): Extend to... | |
3951 | (maskload<SVE_ALL:mode><vpred>): ...this. | |
3952 | (maskstore<SVE_FULL:mode><vpred>): Extend to... | |
3953 | (maskstore<SVE_ALL:mode><vpred>): ...this. | |
3954 | (vec_duplicate<SVE_FULL:mode>): Extend to... | |
3955 | (vec_duplicate<SVE_ALL:mode>): ...this. | |
3956 | (*vec_duplicate<SVE_FULL:mode>_reg): Extend to... | |
3957 | (*vec_duplicate<SVE_ALL:mode>_reg): ...this. | |
3958 | (sve_ld1r<SVE_FULL:mode>): Extend to... | |
3959 | (sve_ld1r<SVE_ALL:mode>): ...this. | |
3960 | (vec_series<SVE_FULL_I:mode>): Extend to... | |
3961 | (vec_series<SVE_I:mode>): ...this. | |
3962 | (*vec_series<SVE_FULL_I:mode>_plus): Extend to... | |
3963 | (*vec_series<SVE_I:mode>_plus): ...this. | |
3964 | (@aarch64_pred_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Avoid | |
3965 | new VPRED ambiguity. | |
3966 | (@aarch64_cond_sxt<SVE_FULL_HSDI:mode><SVE_PARTIAL_I:mode>): Likewise. | |
3967 | (add<SVE_FULL_I:mode>3): Extend to... | |
3968 | (add<SVE_I:mode>3): ...this. | |
3969 | * config/aarch64/iterators.md (SVE_ALL, SVE_I): New mode iterators. | |
3970 | (Vetype, Vesize, VEL, Vel, vwcore): Handle partial SVE vector modes. | |
3971 | (VPRED, vpred): Likewise. | |
3972 | (Vctype): New iterator. | |
3973 | (vw): Remove SVE modes. | |
3974 | ||
3975 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3976 | ||
3977 | * config/aarch64/iterators.md (SVE_PARTIAL): Rename to... | |
3978 | (SVE_PARTIAL_I): ...this. | |
3979 | * config/aarch64/aarch64-sve.md: Apply the above renaming throughout. | |
3980 | ||
3981 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
3982 | ||
3983 | * config/aarch64/iterators.md (SVE_ALL): Rename to... | |
3984 | (SVE_FULL): ...this. | |
3985 | (SVE_I): Rename to... | |
3986 | (SVE_FULL_I): ...this. | |
3987 | (SVE_F): Rename to... | |
3988 | (SVE_FULL_F): ...this. | |
3989 | (SVE_BHSI): Rename to... | |
3990 | (SVE_FULL_BHSI): ...this. | |
3991 | (SVE_HSD): Rename to... | |
3992 | (SVE_FULL_HSD): ...this. | |
3993 | (SVE_HSDI): Rename to... | |
3994 | (SVE_FULL_HSDI): ...this. | |
3995 | (SVE_HSF): Rename to... | |
3996 | (SVE_FULL_HSF): ...this. | |
3997 | (SVE_SD): Rename to... | |
3998 | (SVE_FULL_SD): ...this. | |
3999 | (SVE_SDI): Rename to... | |
4000 | (SVE_FULL_SDI): ...this. | |
4001 | (SVE_SDF): Rename to... | |
4002 | (SVE_FULL_SDF): ...this. | |
4003 | (SVE_S): Rename to... | |
4004 | (SVE_FULL_S): ...this. | |
4005 | (SVE_D): Rename to... | |
4006 | (SVE_FULL_D): ...this. | |
4007 | * config/aarch64/aarch64-sve.md: Apply the above renaming throughout. | |
4008 | * config/aarch64/aarch64-sve2.md: Likewise. | |
4009 | ||
4010 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
4011 | ||
4012 | * config/aarch64/aarch64.opt (--param=aarch64-sve-compare-costs): | |
4013 | New option. | |
4014 | * doc/invoke.texi: Document it. | |
4015 | * config/aarch64/aarch64.c (aarch64_autovectorize_vector_modes): | |
4016 | By default, return VECT_COMPARE_COSTS for SVE. | |
4017 | ||
4018 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
4019 | ||
4020 | * target.h (VECT_COMPARE_COSTS): New constant. | |
4021 | * target.def (autovectorize_vector_modes): Return a bitmask of flags. | |
4022 | * doc/tm.texi: Regenerate. | |
4023 | * targhooks.h (default_autovectorize_vector_modes): Update accordingly. | |
4024 | * targhooks.c (default_autovectorize_vector_modes): Likewise. | |
4025 | * config/aarch64/aarch64.c (aarch64_autovectorize_vector_modes): | |
4026 | Likewise. | |
4027 | * config/arc/arc.c (arc_autovectorize_vector_modes): Likewise. | |
4028 | * config/arm/arm.c (arm_autovectorize_vector_modes): Likewise. | |
4029 | * config/i386/i386.c (ix86_autovectorize_vector_modes): Likewise. | |
4030 | * config/mips/mips.c (mips_autovectorize_vector_modes): Likewise. | |
4031 | * tree-vectorizer.h (_loop_vec_info::vec_outside_cost) | |
4032 | (_loop_vec_info::vec_inside_cost): New member variables. | |
4033 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize them. | |
4034 | (vect_better_loop_vinfo_p, vect_joust_loop_vinfos): New functions. | |
4035 | (vect_analyze_loop): When autovectorize_vector_modes returns | |
4036 | VECT_COMPARE_COSTS, try vectorizing the loop with each available | |
4037 | vector mode and picking the one with the lowest cost. | |
4038 | (vect_estimate_min_profitable_iters): Record the computed costs | |
4039 | in the loop_vec_info. | |
4040 | ||
4041 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
4042 | ||
4043 | * tree-vectorizer.h (can_duplicate_and_interleave_p): Take an | |
4044 | element type rather than an element mode. | |
4045 | * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise. | |
4046 | Use get_vectype_for_scalar_type to query the natural types | |
4047 | for a given element type rather than basing everything on | |
4048 | GET_MODE_SIZE (vinfo->vector_mode). Limit int_mode_for_size | |
4049 | query to MAX_FIXED_MODE_SIZE. | |
4050 | (duplicate_and_interleave): Update call accordingly. | |
4051 | * tree-vect-loop.c (vectorizable_reduction): Likewise. | |
4052 | ||
4053 | 2019-11-16 Richard Sandiford <richard.sandiford@arm.com> | |
4054 | ||
4055 | * tree-vectorizer.h (vect_get_vector_types_for_stmt): Take an | |
4056 | optional maximum nunits. | |
4057 | (get_vectype_for_scalar_type): Likewise. Also declare a form that | |
4058 | takes an slp_tree. | |
4059 | (get_mask_type_for_scalar_type): Take an optional slp_tree. | |
4060 | (vect_get_mask_type_for_stmt): Likewise. | |
4061 | * tree-vect-data-refs.c (vect_analyze_data_refs): Don't store | |
4062 | the vector type in STMT_VINFO_VECTYPE for BB vectorization. | |
4063 | * tree-vect-patterns.c (vect_recog_bool_pattern): Use | |
4064 | vect_get_vector_types_for_stmt instead of STMT_VINFO_VECTYPE | |
4065 | to get an assumed vector type for data references. | |
4066 | * tree-vect-slp.c (vect_update_shared_vectype): New function. | |
4067 | (vect_update_all_shared_vectypes): Likewise. | |
4068 | (vect_build_slp_tree_1): Pass the group size to | |
4069 | vect_get_vector_types_for_stmt. Use vect_update_shared_vectype | |
4070 | for BB vectorization. | |
4071 | (vect_build_slp_tree_2): Call vect_update_all_shared_vectypes | |
4072 | before building the vectof from scalars. | |
4073 | (vect_analyze_slp_instance): Pass the group size to | |
4074 | get_vectype_for_scalar_type. | |
4075 | (vect_slp_analyze_node_operations_1): Don't recompute the vector | |
4076 | types for BB vectorization here; just handle the case in which | |
4077 | we deferred the choice for booleans. | |
4078 | (vect_get_constant_vectors): Pass the slp_tree to | |
4079 | get_vectype_for_scalar_type. | |
4080 | * tree-vect-stmts.c (vect_prologue_cost_for_slp_op): Likewise. | |
4081 | (vectorizable_call): Likewise. | |
4082 | (vectorizable_simd_clone_call): Likewise. | |
4083 | (vectorizable_conversion): Likewise. | |
4084 | (vectorizable_shift): Likewise. | |
4085 | (vectorizable_operation): Likewise. | |
4086 | (vectorizable_comparison): Likewise. | |
4087 | (vect_is_simple_cond): Take the slp_tree as argument and | |
4088 | pass it to get_vectype_for_scalar_type. | |
4089 | (vectorizable_condition): Update call accordingly. | |
4090 | (get_vectype_for_scalar_type): Take a group_size argument. | |
4091 | For BB vectorization, limit the the vector to that number | |
4092 | of elements. Also define an overload that takes an slp_tree. | |
4093 | (get_mask_type_for_scalar_type): Add an slp_tree argument and | |
4094 | pass it to get_vectype_for_scalar_type. | |
4095 | (vect_get_vector_types_for_stmt): Add a group_size argument | |
4096 | and pass it to get_vectype_for_scalar_type. Don't use the | |
4097 | cached vector type for BB vectorization if a group size is given. | |
4098 | Handle data references in that case. | |
4099 | (vect_get_mask_type_for_stmt): Take an slp_tree argument and | |
4100 | pass it to get_mask_type_for_scalar_type. | |
4101 | ||
4102 | 2019-11-15 Jan Hubicka <hubicka@ucw.cz> | |
4103 | ||
4104 | * ipa-inline.h (do_estimate_edge_time): Add nonspec_time | |
4105 | parameter. | |
4106 | (estimate_edge_time): Use it. | |
4107 | * ipa-inline-analysis.c (do_estimate_edge_time): Add | |
4108 | ret_nonspec_time parameter. | |
4109 | ||
4110 | 2019-11-15 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
4111 | ||
4112 | * config/m68k/linux.h (MUSL_DYNAMIC_LINKER): Define. | |
4113 | ||
4114 | 2019-11-15 Nick Clifton <nickc@redhat.com> | |
4115 | Szabolcs Nagy <szabolcs.nagy@arm.com> | |
4116 | ||
4117 | PR target/65649 | |
4118 | * config/microblaze/microblaze.c (print_operand): Print value as long. | |
4119 | ||
4120 | 2019-11-15 Jan Hubicka <hubicka@ucw.cz> | |
4121 | ||
4122 | * ipa-inline.c (edge_badness, inline_small_functions): Revert | |
4123 | accidental commit. | |
4124 | ||
4125 | 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> | |
4126 | ||
4127 | * config/gcn/gcn.h (FIXED_REGISTERS): Unfix frame pointer. | |
4128 | (CALL_USED_REGISTERS): Make frame pointer callee-saved. | |
4129 | ||
4130 | 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> | |
4131 | ||
4132 | * config/gcn/gcn.c (MAX_NORMAL_SGPR_COUNT, MAX_NORMAL_VGPR_COUNT): New. | |
4133 | (gcn_conditional_register_usage): Use constants in place of hard-coded | |
4134 | values. | |
4135 | (gcn_hsa_declare_function_name): Set lower bound for number of | |
4136 | SGPRs/VGPRs in non-leaf kernels to MAX_NORMAL_SGPR_COUNT and | |
4137 | MAX_NORMAL_VGPR_COUNT. | |
4138 | ||
4139 | 2019-11-15 Martin Jambor <mjambor@suse.cz> | |
4140 | ||
4141 | * ipa-utils.h (ipa_remove_useless_jump_functions): Remove stray | |
4142 | declaration. | |
4143 | ||
4144 | 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> | |
4145 | ||
4146 | * config/gcn/gcn.c (default_requested_args): New. | |
4147 | (gcn_parse_amdgpu_hsa_kernel_attribute): Initialize requested args | |
4148 | set with default_requested_args. | |
4149 | (gcn_conditional_register_usage): Limit register usage of non-kernel | |
4150 | functions. Reassign fixed registers if a non-standard set of args is | |
4151 | requested. | |
4152 | * config/gcn/gcn.h (FIXED_REGISTERS): Fix registers according to ABI. | |
4153 | ||
4154 | 2019-11-15 Feng Xue <fxue@os.amperecomputing.com> | |
4155 | ||
4156 | PR ipa/92528 | |
4157 | * ipa-prop.c (update_jump_functions_after_inlining): Invalidate | |
4158 | aggregate jump function when inlined-to caller has no edge summary. | |
4159 | ||
4160 | 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> | |
4161 | ||
4162 | * config/gcn/gcn.c (gcn_init_cumulative_args): Call reinit_regs. | |
4163 | ||
4164 | 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> | |
4165 | ||
4166 | * config/gcn/gcn.c (gcn_expand_prologue): Remove initialization and | |
4167 | prologue use of v0. | |
4168 | (print_operand_address): Use v1 for zero vector offset. | |
4169 | ||
4170 | 2019-11-15 Richard Sandiford <richard.sandiford@arm.com> | |
4171 | ||
4172 | PR tree-optimization/92515 | |
4173 | * tree-vect-stmts.c (vectorizable_shift): Record incompatible op1 | |
4174 | types when converting a vector/scalar shift into a vector/vector one, | |
4175 | using tree_nop_conversion_p instead of useless_type_conversion_p. | |
4176 | Move the conversion code to the transform block. | |
4177 | ||
4178 | 2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com> | |
4179 | ||
4180 | * read-rtl-function.c | |
4181 | (function_reader::add_fixup_source_location): Take additional | |
4182 | parameter of a column. | |
4183 | (function_reader::maybe_read_location): Optionally parse column | |
4184 | information and pass to add_fixup_source_location. | |
4185 | ||
4186 | 2019-11-15 Richard Biener <rguenther@suse.de> | |
4187 | ||
4188 | PR tree-optimization/92512 | |
4189 | * tree-vect-loop.c (check_reduction_path): Fix operand index | |
4190 | computability check. Add check for second use in COND_EXPRs. | |
4191 | ||
4192 | 2019-11-15 Richard Sandiford <richard.sandiford@arm.com> | |
4193 | ||
4194 | PR target/92515 | |
4195 | * config/rs6000/rs6000-call.c (rs6000_gimple_fold_builtin): Use | |
4196 | VIEW_CONVERT_EXPR to reinterpret vectors as different types. | |
4197 | ||
4198 | 2019-11-15 Kwok Cheung Yeung <kcy@codesourcery.com> | |
4199 | ||
4200 | * config/gcn/gcn.c (gcn_regno_reg_class): Return VCC_CONDITIONAL_REG | |
4201 | register class for VCC_LO and VCC_HI. | |
4202 | (gcn_spill_class): Use SGPR_REGS to spill registers in | |
4203 | VCC_CONDITIONAL_REG. | |
4204 | ||
4205 | 2019-11-15 Richard Biener <rguenther@suse.de> | |
4206 | ||
4207 | PR tree-optimization/92324 | |
4208 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Fix | |
4209 | singedness of SLP reduction epilouge operations. Also reduce | |
4210 | the vector width for SLP reductions before doing elementwise | |
4211 | operations if possible. | |
4212 | ||
4213 | 2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com> | |
4214 | ||
4215 | * passes.c (skip_pass): Set epilogue_completed if skipping the | |
4216 | pro_and_epilogue pass. | |
4217 | ||
4218 | 2019-11-15 Matthew Malcomson <matthew.malcomson@arm.com> | |
4219 | ||
4220 | * passes.c (should_skip_pass_p): Always run "dfinish". | |
4221 | ||
4222 | 2019-11-15 Richard Biener <rguenther@suse.de> | |
4223 | ||
4224 | * ipa-inline.c (inline_small_functions): Move assignment | |
4225 | to next before call destroying edge. | |
4226 | ||
4227 | 2019-11-15 Richard Biener <rguenther@suse.de> | |
4228 | ||
4229 | PR tree-optimization/92039 | |
4230 | PR tree-optimization/91975 | |
4231 | * tree-ssa-loop-ivcanon.c (constant_after_peeling): Revert | |
4232 | previous change, treat invariants consistently as non-constant. | |
4233 | (tree_estimate_loop_size): Ternary ops with just the first op | |
4234 | constant are not optimized away. | |
4235 | ||
4236 | 2019-11-15 Jakub Jelinek <jakub@redhat.com> | |
4237 | ||
4238 | * gimplify.c (gimplify_call_expr): Don't call | |
4239 | omp_resolve_declare_variant after gimplification. | |
4240 | * omp-general.c (omp_context_selector_matches): For isa that might | |
4241 | match in some other function, defer if in declare simd function. | |
4242 | (omp_context_compute_score): Don't look for " score" in construct | |
4243 | trait set. Set *score to -1 if it can't ever match. | |
4244 | (omp_resolve_declare_variant): If any variants need to be deferred, | |
4245 | don't punt immediately, but compute scores of all variants and if | |
4246 | ther eis a score winner that doesn't need to be deferred, return that. | |
4247 | ||
4248 | 2019-11-15 Luo Xiong Hu <luoxhu@linux.ibm.com> | |
4249 | ||
4250 | * ipa-comdats.c: Fix comments typo. | |
4251 | * ipa-profile.c: Fix comments typo. | |
4252 | * tree-profile.c (gimple_gen_ic_profiler): Use the new variable | |
4253 | __gcov_indirect_call.counters and __gcov_indirect_call.callee. | |
4254 | (gimple_gen_ic_func_profiler): Likewise. | |
4255 | (pass_ipa_tree_profile::gate): Fix comments typo. | |
4256 | ||
4257 | 2019-11-15 Xiong Hu Luo <luoxhu@linux.ibm.com> | |
4258 | ||
4259 | * ipa-inline.c (inline_small_functions): Update iterator of next. | |
4260 | ||
4261 | 2019-11-14 Kwok Cheung Yeung <kcy@codesourcery.com> | |
4262 | ||
4263 | * lra-spills.c (assign_spill_hard_regs): Check that the spill | |
4264 | register is suitable for the mode. | |
4265 | ||
4266 | 2019-11-14 Andrew MacLeod <amacleod@redhat.com> | |
4267 | ||
4268 | * range-op.h (range_operator::fold_range): Return a bool. | |
4269 | * range-op.cc (range_operator::wi_fold): Assert supported type. | |
4270 | (range_operator::fold_range): Assert supported type and return true. | |
4271 | (operator_equal::fold_range): Return true. | |
4272 | (operator_not_equal::fold_range): Same. | |
4273 | (operator_lt::fold_range): Same. | |
4274 | (operator_le::fold_range): Same. | |
4275 | (operator_gt::fold_range): Same. | |
4276 | (operator_ge::fold_range): Same. | |
4277 | (operator_plus::op1_range): Adjust call to fold_range. | |
4278 | (operator_plus::op2_range): Same. | |
4279 | (operator_minus::op1_range): Same. | |
4280 | (operator_minus::op2_range): Same. | |
4281 | (operator_exact_divide::op1_range): Same. | |
4282 | (operator_lshift::fold_range): Return true and adjust fold_range call. | |
4283 | (operator_rshift::fold_range): Same. | |
4284 | (operator_cast::fold_range): Return true. | |
4285 | (operator_logical_and::fold_range): Same. | |
4286 | (operator_logical_or::fold_range): Same. | |
4287 | (operator_logical_not::fold_range): Same. | |
4288 | (operator_bitwise_not::fold_range): Adjust call to fold_range. | |
4289 | (operator_bitwise_not::op1_range): Same. | |
4290 | (operator_cst::fold_range): Return true. | |
4291 | (operator_identity::fold_range): Return true. | |
4292 | (operator_negate::fold_range): Return true and adjust fold_range call. | |
4293 | (operator_addr_expr::fold_range): Return true. | |
4294 | (operator_addr_expr::op1_range): Adjust call to fold_range. | |
4295 | (range_cast): Same. | |
4296 | * tree-vrp.c (range_fold_binary_symbolics_p): Adjust call to fold_range. | |
4297 | (range_fold_unary_symbolics_p): Same. | |
4298 | ||
4299 | 2019-11-14 Andrew MacLeod <amacleod@redhat.com> | |
4300 | ||
4301 | PR tree-optimization/92506 | |
4302 | * range-op.cc (range_operator::fold_range): Start with range undefined. | |
4303 | (operator_abs::wi_fold): Fix wrong line copy... With wrapv, abs with | |
4304 | overflow is varying. | |
4305 | ||
4306 | 2019-11-14 Aldy Hernandez <aldyh@redhat.com> | |
4307 | ||
4308 | * range-op.cc (*operator*::*range): Remove calls to | |
4309 | range_intersect, range_invert, and range_union in favor of calling | |
4310 | the in-place API methods. | |
4311 | (range_tests): Same. | |
4312 | * range.cc (range_intersect): Remove. | |
4313 | (range_union): Remove. | |
4314 | (range_invert): Remove. | |
4315 | * range.h (range_intersect): Remove. | |
4316 | (range_union): Remove. | |
4317 | (range_intersect): Remove. | |
4318 | ||
4319 | 2019-11-14 Ilya Leoshkevich <iii@linux.ibm.com> | |
4320 | ||
4321 | PR rtl-optimization/92430 | |
4322 | * cfgcleanup.c (pass_jump_after_combine::gate): New function. | |
4323 | (pass_jump_after_combine::execute): Perform jump threading | |
4324 | unconditionally. | |
4325 | ||
4326 | 2019-11-14 Jerome Lambourg <lambourg@adacore.com> | |
4327 | Doug Rupp <rupp@adacore.com> | |
4328 | Olivier Hainque <hainque@adacore.com> | |
4329 | ||
4330 | * config.gcc: Collapse the arm-vxworks entries into | |
4331 | a single arm-wrs-vxworks7* one, bpabi based. Update | |
4332 | the default cpu from arm8 to armv7-a | |
4333 | * config/arm/vxworks.h (CC1_SPEC): Simplify, knowing that | |
4334 | we always use ARM_UNWIND_INFO. | |
4335 | (DWARF2_UNWIND_INFO): Remove redefinition. | |
4336 | (ARM_TARGET2_DWARF_FORMAT): Likewise. | |
4337 | (VXWORKS_PERSONALITY): Define, to "llvm". | |
4338 | (VXWORKS_EXTRA_LIBS_RTP): Define, to "-lllvm". | |
4339 | ||
4340 | 2019-11-14 Jerome Lambourg <lambourg@adacore.com> | |
4341 | ||
4342 | * config/arm/vxworks.h (TARGET_OS_CPP_BUILTINS): Use | |
4343 | _VX_CPU instead of CPU and handle arm_arch8. | |
4344 | ||
4345 | 2019-11-14 Doug Rupp <rupp@adacore.com> | |
4346 | Olivier Hainque <hainque@adacore.com> | |
4347 | Jerome Lambourg <lambourg@adacore.com> | |
4348 | ||
4349 | * config.gcc: Handle aarch64*-wrs-vxworks7*. | |
4350 | * config/aarch64/aarch64-vxworks.h: New file. | |
4351 | * config/aarch64/t-aarch64-vxworks: New file. | |
4352 | ||
4353 | 2019-11-06 Jerome Lambourg <lambourg@adacore.com> | |
4354 | Olivier Hainque <hainque@adacore.com> | |
4355 | ||
4356 | * config/vx-common.h (USE_TM_CLONE_REGISTRY): Remove | |
4357 | definition, pointless with a VxWorks specific version | |
4358 | of crtstuff. | |
4359 | (DWARF2_UNWIND_INFO): Conditionalize on !ARM_UNWIND_INFO. | |
4360 | * config/vxworks.h (VX_CRTBEGIN_SPEC, VX_CRTEND_SPEC): | |
4361 | New local macros, controlling the addition of vxworks specific | |
4362 | crtstuff objects depending on the EH mechanism and kind of | |
4363 | module being linked. | |
4364 | (VXWORKS_STARTFILE_SPEC, VXWORKS_ENDFILE_SPEC): Use them. | |
4365 | ||
4366 | 2019-11-06 Pat Bernardi <bernardi@adacore.com> | |
4367 | Jerome Lambourg <lambourg@adacore.com> | |
4368 | Olivier Hainque <hainque@adacore.com> | |
4369 | ||
4370 | * config.gcc: Add comment to introduce the TARGET_VXWORKS | |
4371 | common macro definitions, conveying VXWORKS7 or 64bit general | |
4372 | variations. Add a block to set gcc_cv_initfini_array | |
4373 | unconditionally to "yes" for VxWorks7. | |
4374 | config/vx-common.h (VXWORKS_CC1_SPEC): New macro, empty string | |
4375 | by default. Update some comments. | |
4376 | config/vxworks.h (VXWORKS_EXTRA_LIBS_RTP): New macro, empty by | |
4377 | default, to be added the end of VXWORKS_LIBS_RTP. | |
4378 | (VXWORKS_LIBS_RTP): Replace hardcoded part by VXWORKS_BASE_LIBS_RTP | |
4379 | and append VXWORKS_EXTRA_LIBS_RTP, both of which specific ports may | |
4380 | redefine. | |
4381 | (VXWORKS_NET_LIBS_RTP): Account for VxWorks7 specificities. | |
4382 | (VXWORKS_CC1_SPEC): Common base definition, with VxWorks7 variation | |
4383 | to account for the now available TLS abilities. | |
4384 | (TARGET_LIBC_HAS_FUNCTION): Account for VxWorks7 abilities. | |
4385 | (VXWORKS_HAVE_TLS): Likewise. | |
4386 | ||
4387 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4388 | ||
4389 | * tree-vect-slp.c (vect_contains_pattern_stmt_p): New function. | |
4390 | (vect_slp_convert_to_external): Likewise. | |
4391 | (vect_slp_analyze_node_operations): If analysis fails, try building | |
4392 | the node from scalars instead. | |
4393 | ||
4394 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4395 | ||
4396 | * tree-cfg.c (verify_gimple_assign_unary): Handle conversions | |
4397 | between vector types. | |
4398 | * tree-vect-stmts.c (vectorizable_conversion): Extend the | |
4399 | non-widening and non-narrowing path to handle standard | |
4400 | conversion codes, if the target supports them. | |
4401 | * expr.c (convert_move): Try using the extend and truncate optabs | |
4402 | for vectors. | |
4403 | * optabs-tree.c (supportable_convert_operation): Likewise. | |
4404 | * config/aarch64/iterators.md (Vnarroqw): New iterator. | |
4405 | * config/aarch64/aarch64-simd.md (<optab><Vnarrowq><mode>2) | |
4406 | (trunc<mode><Vnarrowq>2): New patterns. | |
4407 | ||
4408 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4409 | ||
4410 | * tree-vect-stmts.c (vect_get_vector_types_for_stmt): Don't | |
4411 | require vectype and nunits_vectype to have the same size; | |
4412 | instead assert that nunits_vectype has at least as many | |
4413 | elements as vectype. Don't compute a separate nunits_vectype | |
4414 | if the scalar type is obviously the same as vectype's. | |
4415 | Tweak dump messages. | |
4416 | ||
4417 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4418 | ||
4419 | * config/aarch64/aarch64.c (aarch64_vectorize_related_mode): New | |
4420 | function. | |
4421 | (aarch64_autovectorize_vector_modes): Also add V4HImode and V2SImode. | |
4422 | (TARGET_VECTORIZE_RELATED_MODE): Define. | |
4423 | ||
4424 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4425 | ||
4426 | * tree-vectorizer.h (vec_info::mode_set): New typedef. | |
4427 | (vec_info::used_vector_mode): New member variable. | |
4428 | (vect_chooses_same_modes_p): Declare. | |
4429 | * tree-vect-stmts.c (get_vectype_for_scalar_type): Record each | |
4430 | chosen vector mode in vec_info::used_vector_mode. | |
4431 | (vect_chooses_same_modes_p): New function. | |
4432 | * tree-vect-loop.c (vect_analyze_loop): Use it to avoid trying | |
4433 | the same vector statements multiple times. | |
4434 | * tree-vect-slp.c (vect_slp_bb_region): Likewise. | |
4435 | ||
4436 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4437 | ||
4438 | * machmode.h (opt_machine_mode::operator==): New function. | |
4439 | (opt_machine_mode::operator!=): Likewise. | |
4440 | * tree-vectorizer.h (vec_info::vector_mode): Update comment. | |
4441 | (get_related_vectype_for_scalar_type): Delete. | |
4442 | (get_vectype_for_scalar_type_and_size): Declare. | |
4443 | * tree-vect-slp.c (vect_slp_bb_region): Print dump messages to say | |
4444 | whether analysis passed or failed, and with what vector modes. | |
4445 | Use related_vector_mode to check whether trying a particular | |
4446 | vector mode would be redundant with the autodetected mode, | |
4447 | and print a dump message if we decide to skip it. | |
4448 | * tree-vect-loop.c (vect_analyze_loop): Likewise. | |
4449 | (vect_create_epilog_for_reduction): Use | |
4450 | get_related_vectype_for_scalar_type instead of | |
4451 | get_vectype_for_scalar_type_and_size. | |
4452 | * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): Replace | |
4453 | with... | |
4454 | (get_related_vectype_for_scalar_type): ...this new function. | |
4455 | Take a starting/"prevailing" vector mode rather than a vector size. | |
4456 | Take an optional nunits argument, with the same meaning as for | |
4457 | related_vector_mode. Use related_vector_mode when not | |
4458 | auto-detecting a mode, falling back to mode_for_vector if no | |
4459 | target mode exists. | |
4460 | (get_vectype_for_scalar_type): Update accordingly. | |
4461 | (get_same_sized_vectype): Likewise. | |
4462 | * tree-vectorizer.c (get_vec_alignment_for_array_type): Likewise. | |
4463 | ||
4464 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4465 | ||
4466 | * tree-vect-stmts.c (vectorizable_call): Require the types | |
4467 | to have the same size. | |
4468 | ||
4469 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4470 | ||
4471 | * tree-vect-stmts.c (vectorizable_call): If an operand is | |
4472 | constant or external, use get_vectype_for_scalar_type | |
4473 | rather than get_same_sized_vectype to get its vector type. | |
4474 | (vectorizable_conversion, vectorizable_shift): Likewise. | |
4475 | (vectorizable_operation): Likewise. | |
4476 | ||
4477 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4478 | ||
4479 | * tree-vectorizer.h (vec_info::vector_size): Replace with... | |
4480 | (vec_info::vector_mode): ...this new field. | |
4481 | * tree-vect-loop.c (vect_update_vf_for_slp): Update accordingly. | |
4482 | (vect_analyze_loop, vect_transform_loop): Likewise. | |
4483 | * tree-vect-loop-manip.c (vect_do_peeling): Likewise. | |
4484 | * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise. | |
4485 | (vect_make_slp_decision, vect_slp_bb_region): Likewise. | |
4486 | * tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise. | |
4487 | * tree-vectorizer.c (try_vectorize_loop_1): Likewise. | |
4488 | ||
4489 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4490 | ||
4491 | * target.h (vector_sizes, auto_vector_sizes): Delete. | |
4492 | (vector_modes, auto_vector_modes): New typedefs. | |
4493 | * target.def (autovectorize_vector_sizes): Replace with... | |
4494 | (autovectorize_vector_modes): ...this new hook. | |
4495 | * doc/tm.texi.in (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): | |
4496 | Replace with... | |
4497 | (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): ...this new hook. | |
4498 | * doc/tm.texi: Regenerate. | |
4499 | * targhooks.h (default_autovectorize_vector_sizes): Delete. | |
4500 | (default_autovectorize_vector_modes): New function. | |
4501 | * targhooks.c (default_autovectorize_vector_sizes): Delete. | |
4502 | (default_autovectorize_vector_modes): New function. | |
4503 | * omp-general.c (omp_max_vf): Use autovectorize_vector_modes instead | |
4504 | of autovectorize_vector_sizes. Use the number of units in the mode | |
4505 | to calculate the maximum VF. | |
4506 | * omp-low.c (omp_clause_aligned_alignment): Use | |
4507 | autovectorize_vector_modes instead of autovectorize_vector_sizes. | |
4508 | Use a loop based on related_mode to iterate through all supported | |
4509 | vector modes for a given scalar mode. | |
4510 | * optabs-query.c (can_vec_mask_load_store_p): Use | |
4511 | autovectorize_vector_modes instead of autovectorize_vector_sizes. | |
4512 | * tree-vect-loop.c (vect_analyze_loop, vect_transform_loop): Likewise. | |
4513 | * tree-vect-slp.c (vect_slp_bb_region): Likewise. | |
4514 | * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): | |
4515 | Replace with... | |
4516 | (aarch64_autovectorize_vector_modes): ...this new function. | |
4517 | (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete. | |
4518 | (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define. | |
4519 | * config/arc/arc.c (arc_autovectorize_vector_sizes): Replace with... | |
4520 | (arc_autovectorize_vector_modes): ...this new function. | |
4521 | (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete. | |
4522 | (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define. | |
4523 | * config/arm/arm.c (arm_autovectorize_vector_sizes): Replace with... | |
4524 | (arm_autovectorize_vector_modes): ...this new function. | |
4525 | (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete. | |
4526 | (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define. | |
4527 | * config/i386/i386.c (ix86_autovectorize_vector_sizes): Replace with... | |
4528 | (ix86_autovectorize_vector_modes): ...this new function. | |
4529 | (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete. | |
4530 | (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define. | |
4531 | * config/mips/mips.c (mips_autovectorize_vector_sizes): Replace with... | |
4532 | (mips_autovectorize_vector_modes): ...this new function. | |
4533 | (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_SIZES): Delete. | |
4534 | (TARGET_VECTORIZE_AUTOVECTORIZE_VECTOR_MODES): Define. | |
4535 | ||
4536 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4537 | ||
4538 | * tree-vect-stmts.c (vectorizable_shift): Check the number | |
4539 | of vector elements as well as the type mode when deciding | |
4540 | whether an op1_vectype is compatible. Reuse the result of | |
4541 | this check when generating vector statements. | |
4542 | ||
4543 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4544 | ||
4545 | * tree-vect-stmts.c (get_vectype_for_scalar_type_and_size): If | |
4546 | targetm.vectorize.preferred_simd_mode returns an integer mode, | |
4547 | use mode_for_vector to decide what the vector type's mode | |
4548 | should actually be. Use build_vector_type_for_mode instead | |
4549 | of build_vector_type. | |
4550 | ||
4551 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4552 | ||
4553 | * target.def (get_mask_mode): Take a vector mode itself as argument, | |
4554 | instead of properties about the vector mode. | |
4555 | * doc/tm.texi: Regenerate. | |
4556 | * targhooks.h (default_get_mask_mode): Update to reflect new | |
4557 | get_mode_mask interface. | |
4558 | * targhooks.c (default_get_mask_mode): Likewise. Use | |
4559 | related_int_vector_mode. | |
4560 | * optabs-query.c (can_vec_mask_load_store_p): Update call | |
4561 | to get_mask_mode. | |
4562 | * tree-vect-stmts.c (check_load_store_masking): Likewise, checking | |
4563 | first that the original mode really is a vector. | |
4564 | * tree.c (build_truth_vector_type_for): Likewise. | |
4565 | * config/aarch64/aarch64.c (aarch64_get_mask_mode): Update for new | |
4566 | get_mode_mask interface. | |
4567 | (aarch64_expand_sve_vcond): Update call accordingly. | |
4568 | * config/gcn/gcn.c (gcn_vectorize_get_mask_mode): Update for new | |
4569 | get_mode_mask interface. | |
4570 | * config/i386/i386.c (ix86_get_mask_mode): Likewise. | |
4571 | ||
4572 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4573 | ||
4574 | * tree.h (build_truth_vector_type): Delete. | |
4575 | (build_same_sized_truth_vector_type): Likewise. | |
4576 | * tree.c (build_truth_vector_type): Rename to... | |
4577 | (build_truth_vector_type_for): ...this. Make static and take | |
4578 | a vector type as argument. | |
4579 | (truth_type_for): Update accordingly. | |
4580 | (build_same_sized_truth_vector_type): Delete. | |
4581 | * tree-vect-generic.c (expand_vector_divmod): Use truth_type_for | |
4582 | instead of build_same_sized_truth_vector_type. | |
4583 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Likewise. | |
4584 | (vect_record_loop_mask, vect_get_loop_mask): Likewise. | |
4585 | * tree-vect-patterns.c (build_mask_conversion): Likeise. | |
4586 | * tree-vect-slp.c (vect_get_constant_vectors): Likewise. | |
4587 | * tree-vect-stmts.c (vect_get_vec_def_for_operand): Likewise. | |
4588 | (vect_build_gather_load_calls, vectorizable_call): Likewise. | |
4589 | (scan_store_can_perm_p, vectorizable_scan_store): Likewise. | |
4590 | (vectorizable_store, vectorizable_condition): Likewise. | |
4591 | (get_mask_type_for_scalar_type, get_same_sized_vectype): Likewise. | |
4592 | (vect_get_mask_type_for_stmt): Use truth_type_for instead of | |
4593 | build_truth_vector_type. | |
4594 | * config/aarch64/aarch64-sve-builtins.cc (gimple_folder::convert_pred): | |
4595 | Use truth_type_for instead of build_same_sized_truth_vector_type. | |
4596 | * config/rs6000/rs6000-call.c (fold_build_vec_cmp): Likewise. | |
4597 | ||
4598 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4599 | ||
4600 | * tree.h (build_truth_vector_type_for_mode): Declare. | |
4601 | * tree.c (build_truth_vector_type_for_mode): New function, | |
4602 | split out from... | |
4603 | (build_truth_vector_type): ...here. | |
4604 | (build_opaque_vector_type): Fix head comment. | |
4605 | * tree-vectorizer.h (supportable_narrowing_operation): Remove | |
4606 | vec_info parameter. | |
4607 | (vect_halve_mask_nunits): Replace vec_info parameter with the | |
4608 | mode of the new vector. | |
4609 | (vect_double_mask_nunits): Likewise. | |
4610 | * tree-vect-loop.c (vect_halve_mask_nunits): Likewise. | |
4611 | (vect_double_mask_nunits): Likewise. | |
4612 | * tree-vect-loop-manip.c: Include insn-config.h, rtl.h and recog.h. | |
4613 | (vect_maybe_permute_loop_masks): Remove vinfo parameter. Update call | |
4614 | to vect_halve_mask_nunits, getting the required mode from the unpack | |
4615 | patterns. | |
4616 | (vect_set_loop_condition_masked): Update call accordingly. | |
4617 | * tree-vect-stmts.c (supportable_narrowing_operation): Remove vec_info | |
4618 | parameter and update call to vect_double_mask_nunits. | |
4619 | (vectorizable_conversion): Update call accordingly. | |
4620 | (simple_integer_narrowing): Likewise. Remove vec_info parameter. | |
4621 | (vectorizable_call): Update call accordingly. | |
4622 | (supportable_widening_operation): Update call to | |
4623 | vect_halve_mask_nunits. | |
4624 | * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): | |
4625 | Use build_truth_vector_type_mode instead of build_truth_vector_type. | |
4626 | ||
4627 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4628 | ||
4629 | * machmode.h (mode_for_int_vector): Delete. | |
4630 | (related_int_vector_mode): Declare. | |
4631 | * stor-layout.c (mode_for_int_vector): Delete. | |
4632 | (related_int_vector_mode): New function. | |
4633 | * optabs.c (expand_vec_perm_1): Use related_int_vector_mode | |
4634 | instead of mode_for_int_vector. | |
4635 | (expand_vec_perm_const): Likewise. | |
4636 | * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Likewise. | |
4637 | (aarch64_evpc_sve_tbl): Likewise. | |
4638 | * config/s390/s390.c (s390_expand_vec_compare_cc): Likewise. | |
4639 | (s390_expand_vcond): Likewise. | |
4640 | ||
4641 | 2019-11-14 Richard Sandiford <richard.sandiford@arm.com> | |
4642 | ||
4643 | * target.def (related_mode): New hook. | |
4644 | * doc/tm.texi.in (TARGET_VECTORIZE_RELATED_MODE): New hook. | |
4645 | * doc/tm.texi: Regenerate. | |
4646 | * targhooks.h (default_vectorize_related_mode): Declare. | |
4647 | * targhooks.c (default_vectorize_related_mode): New function. | |
4648 | * machmode.h (related_vector_mode): Declare. | |
4649 | * stor-layout.c (related_vector_mode): New function. | |
4650 | * expmed.c (extract_bit_field_1): Use it instead of mode_for_vector. | |
4651 | * optabs-query.c (qimode_for_vec_perm): Likewise. | |
4652 | * tree-vect-stmts.c (get_group_load_store_type): Likewise. | |
4653 | (vectorizable_store, vectorizable_load): Likewise | |
4654 | ||
4655 | 2019-11-14 Richard Henderson <richard.henderson@linaro.org> | |
4656 | ||
4657 | * config/arm/aarch-common-protos.h (arm_md_asm_adjust): Declare. | |
4658 | * config/arm/aarch-common.c (arm_md_asm_adjust): New. | |
4659 | * config/arm/arm-c.c (arm_cpu_builtins): Define | |
4660 | __GCC_ASM_FLAG_OUTPUTS__. | |
4661 | * config/arm/arm.c (TARGET_MD_ASM_ADJUST): New. | |
4662 | * config/aarch64/aarch64-c.c (aarch64_define_unconditional_macros): | |
4663 | Define __GCC_ASM_FLAG_OUTPUTS__. | |
4664 | * config/aarch64/aarch64.c (TARGET_MD_ASM_ADJUST): New. | |
4665 | * doc/extend.texi (FlagOutputOperands): Add documentation | |
4666 | for ARM and AArch64. | |
4667 | ||
4668 | * config/arm/arm-modes.def (CC_NZ): Rename from CC_NOOV. | |
4669 | * config/arm/predicates.md (nz_comparison_operator): Rename | |
4670 | from noov_comparison_operator. | |
4671 | * config/arm/arm.c (arm_select_cc_mode): Use CC_NZmode name. | |
4672 | (arm_gen_dicompare_reg): Likewise. | |
4673 | (maybe_get_arm_condition_code): Likewise. | |
4674 | (thumb1_final_prescan_insn): Likewise. | |
4675 | (arm_emit_coreregs_64bit_shift): Likewise. | |
4676 | * config/arm/arm.md (addsi3_compare0): Likewise. | |
4677 | (*addsi3_compare0_scratch, subsi3_compare0): Likewise. | |
4678 | (*mulsi3_compare0, *mulsi3_compare0_v6): Likewise. | |
4679 | (*mulsi3_compare0_scratch, *mulsi3_compare0_scratch_v6): Likewise. | |
4680 | (*mulsi3addsi_compare0, *mulsi3addsi_compare0_v6): Likewise. | |
4681 | (*mulsi3addsi_compare0_scratch): Likewise. | |
4682 | (*mulsi3addsi_compare0_scratch_v6): Likewise. | |
4683 | (*andsi3_compare0, *andsi3_compare0_scratch): Likewise. | |
4684 | (*zeroextractsi_compare0_scratch): Likewise. | |
4685 | (*ne_zeroextractsi, *ne_zeroextractsi_shifted): Likewise. | |
4686 | (*ite_ne_zeroextractsi, *ite_ne_zeroextractsi_shifted): Likewise. | |
4687 | (andsi_not_shiftsi_si_scc_no_reuse): Likewise. | |
4688 | (andsi_not_shiftsi_si_scc): Likewise. | |
4689 | (*andsi_notsi_si_compare0, *andsi_notsi_si_compare0_scratch): Likewise. | |
4690 | (*iorsi3_compare0, *iorsi3_compare0_scratch): Likewise. | |
4691 | (*xorsi3_compare0, *xorsi3_compare0_scratch): Likewise. | |
4692 | (*shiftsi3_compare0, *shiftsi3_compare0_scratch): Likewise. | |
4693 | (*not_shiftsi_compare0, *not_shiftsi_compare0_scratch): Likewise. | |
4694 | (*notsi_compare0, *notsi_compare0_scratch): Likewise. | |
4695 | (return_addr_mask, *check_arch2): Likewise. | |
4696 | (*arith_shiftsi_compare0, *arith_shiftsi_compare0_scratch): Likewise. | |
4697 | (*sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch): Likewise. | |
4698 | (compare_scc splitters): Likewise. | |
4699 | (movcond_addsi): Likewise. | |
4700 | * config/arm/thumb2.md (thumb2_addsi3_compare0): Likewise. | |
4701 | (*thumb2_addsi3_compare0_scratch): Likewise. | |
4702 | (*thumb2_mulsi_short_compare0): Likewise. | |
4703 | (*thumb2_mulsi_short_compare0_scratch): Likewise. | |
4704 | (compare peephole2s): Likewise. | |
4705 | * config/arm/thumb1.md (thumb1_cbz): Use CC_NZmode and | |
4706 | nz_comparison_operator names. | |
4707 | (cbranchsi4_insn): Likewise. | |
4708 | ||
4709 | * config/arm/constraints.md (c): Use cc_register predicate. | |
4710 | ||
4711 | * config/aarch64/constraints.md (c): New constraint. | |
4712 | ||
4713 | 2019-11-14 Jan Hubicka <hubicka@ucw.cz> | |
4714 | ||
4715 | * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time, | |
4716 | ipa_merge_fn_summary_after_inlining): Micro optimize. | |
4717 | ||
4718 | 2019-11-14 Jan Hubicka <hubicka@ucw.cz> | |
4719 | ||
4720 | * params.opt (max-inline-insns-single-O2): Set to 70 (instead of 30). | |
4721 | ||
4722 | 2019-11-14 Jan Hubicka <hubicka@ucw.cz> | |
4723 | ||
4724 | * ipa-cp.c (ipa_vr_operation_and_type_effects): Move up in file. | |
4725 | (ipa_value_range_from_jfunc): New function. | |
4726 | * ipa-fnsummary.c (evaluate_conditions_for_known_args): Add | |
4727 | known_value_ranges parameter; use it to evalulate conditions. | |
4728 | (evaluate_properties_for_edge): Compute known value ranges. | |
4729 | (ipa_fn_summary_t::duplicate): Update use of | |
4730 | evaluate_conditions_for_known_args. | |
4731 | (estimate_ipcp_clone_size_and_time): Likewise. | |
4732 | (ipa_merge_fn_summary_after_inlining): Likewise. | |
4733 | * ipa-prop.h (ipa_value_range_from_jfunc): Declare. | |
4734 | ||
4735 | 2019-11-14 Martin Liska <mliska@suse.cz> | |
4736 | ||
4737 | * ipa-inline.c (want_inline_small_function_p): Use | |
4738 | CIF_MAX_INLINE_INSNS_AUTO_LIMIT instead | |
4739 | of CIF_MAX_INLINE_INSNS_SINGLE_O2_LIMIT. | |
4740 | ||
4741 | 2019-11-14 Martin Liska <mliska@suse.cz> | |
4742 | ||
4743 | * ipa-cp.c (devirtualization_time_bonus): Use opt_for_fn | |
4744 | of a callee to get value of the param. | |
4745 | * ipa-inline.c (inline_insns_auto): Use proper | |
4746 | opt_for_fn. | |
4747 | * opts.c (maybe_default_option): Do not overwrite param | |
4748 | value if optimization level does not match. Note that | |
4749 | params usually have default value set via Init() keyword. | |
4750 | * params.opt: Remove -param=max-inline-insns-auto-O2. | |
4751 | * cif-code.def (MAX_INLINE_INSNS_AUTO_O2_LIMIT): Remove. | |
4752 | * doc/invoke.texi: Remove documentation of | |
4753 | max-inline-insns-auto-O2. | |
4754 | ||
4755 | 2019-11-14 Martin Liska <mliska@suse.cz> | |
4756 | ||
4757 | * tree-switch-conversion.c (switch_conversion::switch_conversion): | |
4758 | Do not initialize m_other_count. | |
4759 | (switch_conversion::collect): Do not count m_default_count and | |
4760 | m_other_count as we use frequencies for edges. | |
4761 | * tree-switch-conversion.h: Remove m_default_count and m_other_count. | |
4762 | ||
4763 | 2019-11-14 Martin Liska <mliska@suse.cz> | |
4764 | ||
4765 | PR other/92329 | |
4766 | * doc/invoke.texi: Document -fallocation-dce. | |
4767 | ||
4768 | 2019-11-14 Martin Liska <mliska@suse.cz> | |
4769 | ||
4770 | PR target/92389 | |
4771 | * config/i386/i386.h: Add PTA_AVX512VPOPCNTDQ to | |
4772 | PTA_ICELAKE_CLIENT which is later interited by | |
4773 | PTA_ICELAKE_SERVER and PTA_TIGERLAKE. | |
4774 | ||
4775 | 2019-11-14 Martin Liska <mliska@suse.cz> | |
4776 | ||
4777 | * ipa-icf.c (sem_item_optimizer::execute): Save | |
4778 | loaded_symbols. | |
4779 | (sem_item_optimizer::parse_nonsingleton_classes): | |
4780 | Return number of loaded symbols. | |
4781 | (sem_item_optimizer::merge_classes): Print | |
4782 | statistics about totally needed symbols. | |
4783 | * ipa-icf.h (parse_nonsingleton_classes): Change return | |
4784 | type. | |
4785 | (merge_classes): Add one argument. | |
4786 | ||
4787 | 2019-11-14 Martin Liska <mliska@suse.cz> | |
4788 | ||
4789 | * ipa-icf-gimple.c (func_checker::hash_operand): Improve | |
4790 | func_checker::hash_operand by handling of FIELD_DECLs. | |
4791 | ||
4792 | 2019-11-14 Martin Liska <mliska@suse.cz> | |
4793 | ||
4794 | * ipa-icf-gimple.h (func_checker::func_checker): Add | |
4795 | default constructor. | |
4796 | * ipa-icf.c (sem_function::init): Make operand_equal_p | |
4797 | and hash_operand public. | |
4798 | (sem_item::add_expr): Remove. | |
4799 | (sem_item::add_type): Remove. | |
4800 | (sem_function::hash_stmt): Use m_checker for hashing | |
4801 | of GIMPLE statements. | |
4802 | (sem_function::parse): Init with checker. | |
4803 | (sem_variable::parse): Pass NULL as checker. | |
4804 | (sem_item_optimizer::parse_funcs_and_vars): | |
4805 | Pass checker to ::parse function. | |
4806 | (sem_item_optimizer::parse_nonsingleton_classes): Likewise. | |
4807 | (sem_variable::parse): New function. | |
4808 | (sem_variable::get_hash): Only return computed hash value. | |
4809 | (sem_variable::init): Initialize hash of a variable. | |
4810 | * ipa-icf.h: Remove add_expr, add_type and add func_checker | |
4811 | to couple of functions as a new argument. | |
4812 | ||
4813 | 2019-11-14 Martin Liska <mliska@suse.cz> | |
4814 | ||
4815 | * ipa-icf-gimple.c (func_checker::compare_gimple_call): Update | |
4816 | bail out reason. | |
4817 | (func_checker::compare_gimple_assign): Likewise. | |
4818 | ||
4819 | 2019-11-14 Jakub Jelinek <jakub@redhat.com> | |
4820 | ||
4821 | * config/i386/i386-options.c (ix86_omp_device_kind_arch_isa): Don't | |
4822 | change sse4.2 to sse4_2 and sse4.1 to sse4.1. | |
4823 | * config/i386/t-omp-device (omp-device-properties-i386): Likewise. | |
4824 | ||
4825 | * omp-general.c (omp_context_name_list_prop): New function. | |
4826 | (omp_context_selector_matches): Use it. Return 0 if it returns | |
4827 | NULL. | |
4828 | (omp_context_selector_props_compare): Allow equivalency of an | |
4829 | identifier and a string literal containing no embedded zeros. | |
4830 | ||
4831 | 2019-11-14 Aldy Hernandez <aldyh@redhat.com> | |
4832 | ||
4833 | * range-op.cc (RANGE3): Remove. | |
4834 | (range_tests): Remove all selftest that check for multi-ranges. | |
4835 | Put tests in namespace selftest. | |
4836 | * selftest.h: Move range_tests into namespace selftest. | |
4837 | * value-range.h (class value_range): Unfriend range_tests. | |
4838 | ||
4839 | 2019-11-14 Aldy Hernandez <aldyh@redhat.com> | |
4840 | ||
4841 | * tree-vrp.c (range_fold_binary_symbolics_p): Adapt for | |
4842 | normalize_symbolics and normalize_addresses working in place. | |
4843 | (range_fold_unary_symbolics_p): Same. | |
4844 | (range_fold_unary_symbolics_p): Same. | |
4845 | * value-range.cc (num_pairs): Same. | |
4846 | (lower_bound): Same. | |
4847 | (upper_bound): Same. | |
4848 | (contains_p): Same. | |
4849 | (normalize_addresses): Same. | |
4850 | (normalize_symbolics): Same. | |
4851 | * value-range.h (normalize_symbolics): Same. | |
4852 | (normalize_addresses): Same. | |
4853 | ||
4854 | 2019-11-14 Feng Xue <fxue@os.amperecomputing.com> | |
4855 | ||
4856 | PR ipa/91682 | |
4857 | * ipa-prop.h (jump_func_type): New value IPA_JF_LOAD_AGG. | |
4858 | (ipa_load_agg_data, ipa_agg_value, ipa_agg_value_set): New structs. | |
4859 | (ipa_agg_jf_item): Add new field jftype and type, redefine field value. | |
4860 | (ipa_agg_jump_function): Remove member function equal_to. | |
4861 | (ipa_agg_jump_function_p): Remove typedef. | |
4862 | (ipa_copy_agg_values, ipa_release_agg_values): New functions. | |
4863 | * ipa-prop.c (ipa_print_node_jump_functions_for_edge): Dump | |
4864 | information for aggregate jump function. | |
4865 | (get_ssa_def_if_simple_copy): Add new parameter rhs_stmt to | |
4866 | record last definition statement. | |
4867 | (load_from_unmodified_param_or_agg): New function. | |
4868 | (ipa_known_agg_contents_list): Add new field type and value, remove | |
4869 | field constant. | |
4870 | (build_agg_jump_func_from_list): Rename parameter const_count to | |
4871 | value_count, build aggregate jump function from ipa_load_agg_data. | |
4872 | (analyze_agg_content_value): New function. | |
4873 | (extract_mem_content): Analyze memory store assignment to prepare | |
4874 | information for aggregate jump function generation. | |
4875 | (determine_known_aggregate_parts): Add new parameter fbi, remove | |
4876 | parameter aa_walk_budeget_p. | |
4877 | (update_jump_functions_after_inlining): Update aggregate jump function. | |
4878 | (ipa_find_agg_cst_for_param): Change type of parameter agg. | |
4879 | (try_make_edge_direct_simple_call): Add new parameter new_root. | |
4880 | (try_make_edge_direct_virtual_call): Add new parameter new_root and | |
4881 | new_root_info. | |
4882 | (update_indirect_edges_after_inlining): Pass new argument to | |
4883 | try_make_edge_direct_simple_call and try_make_edge_direct_virtual_call. | |
4884 | (ipa_write_jump_function): Write aggregate jump function to file. | |
4885 | (ipa_read_jump_function): Read aggregate jump function from file. | |
4886 | (ipa_agg_value::equal_to): Migrate from ipa_agg_jf_item::equal_to. | |
4887 | * ipa-cp.c (ipa_get_jf_arith_result): New function. | |
4888 | (ipa_agg_value_from_node): Likewise. | |
4889 | (ipa_agg_value_set_from_jfunc): Likewise. | |
4890 | (propagate_vals_across_arith_jfunc): Likewise. | |
4891 | (propagate_aggregate_lattice): Likewise. | |
4892 | (ipa_get_jf_pass_through_result): Call ipa_get_jf_arith_result. | |
4893 | (propagate_vals_across_pass_through): Call | |
4894 | propagate_vals_across_arith_jfunc. | |
4895 | (get_clone_agg_value): Move forward. | |
4896 | (propagate_aggs_across_jump_function): Handle value propagation for | |
4897 | aggregate jump function. | |
4898 | (agg_jmp_p_vec_for_t_vec): Remove. | |
4899 | (context_independent_aggregate_values): Replace vec<ipa_agg_jf_item> | |
4900 | with vec<ipa_agg_value>. | |
4901 | (copy_plats_to_inter, intersect_with_plats): Likewise. | |
4902 | (agg_replacements_to_vector, intersect_with_agg_replacements): Likewise. | |
4903 | (intersect_aggregate_with_edge): Likewise. | |
4904 | (find_aggregate_values_for_callers_subset): Likewise. | |
4905 | (cgraph_edge_brings_all_agg_vals_for_node): Likewise. | |
4906 | (estimate_local_effects): Replace vec<ipa_agg_jump_function> and | |
4907 | vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>. | |
4908 | (gather_context_independent_values): Likewise. | |
4909 | (perform_estimation_of_a_value, decide_whether_version_node): Likewise. | |
4910 | * ipa-fnsummary.c (evaluate_conditions_for_known_args): Replace | |
4911 | vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>. | |
4912 | (evaluate_properties_for_edge): Likewise. | |
4913 | (estimate_edge_devirt_benefit): Likewise. | |
4914 | (estimate_edge_size_and_time): Likewise. | |
4915 | (estimate_calls_size_and_time): Likewise. | |
4916 | (ipa_call_context::ipa_call_context): Likewise. | |
4917 | (estimate_ipcp_clone_size_and_time): Likewise. | |
4918 | * ipa-fnsummary.h (ipa_call_context): Replace | |
4919 | vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>. | |
4920 | * ipa-inline-analysis.c (do_estimate_edge_time): Replace | |
4921 | vec<ipa_agg_jump_function_p> with vec<ipa_agg_value_set>. | |
4922 | (do_estimate_edge_size): Likewise. | |
4923 | (do_estimate_edge_hints): Likewise. | |
4924 | ||
4925 | 2019-11-13 Jan Hubicka <hubicka@ucw.cz> | |
4926 | ||
4927 | * ipa-cp.c (propagate_vr_across_jump_function): Propagate also across | |
4928 | binary operations. | |
4929 | ||
4930 | 2019-11-13 Jan Hubicka <hubicka@ucw.cz> | |
4931 | ||
4932 | * ipa-profile.c (check_argument_count): Check properly that e_info | |
4933 | is non-NULL; do not check descriptors. | |
4934 | ||
4935 | 2019-11-13 Jan Hubicka <hubicka@ucw.cz> | |
4936 | ||
4937 | * ipa-inline-analysis.c (do_estimate_edge_time): Relax | |
4938 | check for ipa profiles. | |
4939 | ||
4940 | 2019-11-13 Jan Hubicka <hubicka@ucw.cz> | |
4941 | ||
4942 | PR c++/92421 | |
4943 | * ipa-prop.c (update_indirect_edges_after_inlining): | |
4944 | Mark parameter as used. | |
4945 | * ipa-inline.c (recursive_inlining): Reset node cache | |
4946 | after inlining. | |
4947 | (inline_small_functions): Remove checking ifdef. | |
4948 | * ipa-inline-analysis.c (do_estimate_edge_time): Verify | |
4949 | cache consistency. | |
4950 | ||
4951 | 2019-11-13 Jan Hubicka <hubicka@ucw.cz> | |
4952 | ||
4953 | PR ipa/92498 | |
4954 | * ipa-profile.c (check_argument_count): Do not ICE when descriptors | |
4955 | is NULL. | |
4956 | (ipa_profile): Fix reversed test. | |
4957 | ||
4958 | 2019-11-13 Jan Hubicka <hubicka@ucw.cz> | |
4959 | ||
4960 | * ipa-cp.c (ignore_edge_p): Do not check caller flags. | |
4961 | (propagate_constants_topo): Fix typo. | |
4962 | ||
4963 | 2019-11-13 Aldy Hernandez <aldyh@redhat.com> | |
4964 | ||
4965 | * Makefile.in (OBJS): Add value-range.o. | |
4966 | (GTFILES): Add value-range.h. | |
4967 | * gengtype.c (open_base_files): Add value-range.h to list of | |
4968 | header files. | |
4969 | * tree-vrp.c: Move the following value_range related functions: | |
4970 | ranges_from_anti_range, value_range, check, equal_p, symbolic_p, | |
4971 | constant_p, set_undefined, set_varying, may_contain_p, | |
4972 | singleton_p, type, dump, dump_value_range, debug, vrp_val_max, | |
4973 | vrp_val_min, vrp_val_is_min, vrp_val_is_max, set, set_nonzero, | |
4974 | set_zero, vrp_operand_equal_p, range_has_numeric_bounds_p, | |
4975 | value_inside_range, ranges_from_anti_range, union_ranges, | |
4976 | intersect_ranges, intersect_helper, union_helper, union_, | |
4977 | normalize_addresses, normalize_symbolics, num_pairs, lower_bound, | |
4978 | upper_bound, contains_p, invert, intersect... | |
4979 | * value-range.cc: ...to here. | |
4980 | * tree-vrp.h: Move class value_range, enum_value_range_kind, and | |
4981 | associated inline methods from here... | |
4982 | * value-range.h: ...to here. | |
4983 | ||
4984 | 2019-11-13 Dragan Mladjenovic <dmladjenovic@wavecomp.com> | |
4985 | ||
4986 | * config/mips/mips.md (rotr<mode>3): Sanitize the constant argument | |
4987 | instead of asserting its value. | |
4988 | ||
4989 | (2019-11-13 Aldy Hernandez <aldyh@redhat.com> | |
4990 | ||
4991 | * gimple-fold.c (size_must_be_zero_p): Rewrite use of value_range | |
4992 | constructors and set methods so value_range_kind is the last | |
4993 | argument and defaults to VR_RANGE. | |
4994 | * gimple-ssa-evrp-analyze.c (record_ranges_from_stmt): Same. | |
4995 | * ipa-cp.c (propagate_vr_across_jump_function): Same. | |
4996 | * ipa-prop.c (ipa_get_value_range): Same. | |
4997 | (ipa_compute_jump_functions_for_edge): Same. | |
4998 | * range-op.cc (value_range_from_overflowed_bounds): Same. | |
4999 | (operator_cast::op1_range): Same. | |
5000 | (range_tests): Same. | |
5001 | * range.cc (range_nonzero): Same. | |
5002 | * tree-ssanames.c (get_range_info): Same. | |
5003 | * tree-vrp.c (value_range_equiv::set): Same. | |
5004 | (value_range::value_range): Same. | |
5005 | (value_range_equiv::value_range_equiv): Same. | |
5006 | (value_range_equiv::update): Same. | |
5007 | (value_range_equiv::deep_copy): Same. | |
5008 | (value_range_equiv::move): Same. | |
5009 | (value_range_equiv::set_undefined): Same. | |
5010 | (value_range::set): Same. | |
5011 | (value_range::set_nonzero): Same. | |
5012 | (ranges_from_anti_range): Same. | |
5013 | (extract_range_from_plus_minus_expr): Same. | |
5014 | (value_range::intersect_helper): Same. | |
5015 | (value_range_equiv::intersect): Same. | |
5016 | (value_range::union_helper): Same. | |
5017 | (value_range_equiv::union_): Same. | |
5018 | (value_range::normalize_symbolics): Same. | |
5019 | (value_range::invert): Same. | |
5020 | (determine_value_range_1): Same. | |
5021 | * tree-vrp.h (class value_range): Same. | |
5022 | (class value_range_equiv): Same. | |
5023 | * vr-values.c (set_value_range_to_nonnegative): Same. | |
5024 | (set_value_range_to_truthvalue): Same. | |
5025 | (vr_values::update_value_range): Same. | |
5026 | (vr_values::extract_range_for_var_from_comparison_expr): Same. | |
5027 | (vr_values::extract_range_from_binary_expr): Same. | |
5028 | (vr_values::extract_range_from_comparison): Same. | |
5029 | (vr_values::extract_range_basic): Same. | |
5030 | (vr_values::adjust_range_with_scev): Same. | |
5031 | (vr_values::vrp_evaluate_conditional_warnv_with_ops): Same. | |
5032 | (vr_values::extract_range_from_phi_node): Same. | |
5033 | ||
5034 | 2019-11-13 Ulrich Drepper <drepper@redhat.com> | |
5035 | ||
5036 | * tree-dump.c (dequeue_and_dump): Print first tree operand | |
5037 | for VIEW_CONVERT_EXPR. | |
5038 | ||
5039 | 2019-11-13 Joseph Myers <joseph@codesourcery.com> | |
5040 | ||
5041 | * ginclude/float.c [__STDC_VERSION__ > 201710L] (FLT_NORM_MAX, | |
5042 | DBL_NORM_MAX, LDBL_NORM_MAX): Define. | |
5043 | * real.c (get_max_float): Add norm_max argument. | |
5044 | * real.h (get_max_float): Update prototype. | |
5045 | * builtins.c (fold_builtin_interclass_mathfn): Update calls to | |
5046 | get_max_float. | |
5047 | ||
5048 | 2019-11-13 Martin Liska <mliska@suse.cz> | |
5049 | ||
5050 | * dbgcnt.c (test_sorted_dbg_counters): New. | |
5051 | (dbgcnt_c_tests): Likewise. | |
5052 | * selftest-run-tests.c (selftest::run_tests): Likewise. | |
5053 | * selftest.h (dbgcnt_c_tests): Likewise. | |
5054 | ||
5055 | 2019-11-13 Jan Hubicka <hubicka@ucw.cz> | |
5056 | Martin Jambor <mjambor@suse.cz> | |
5057 | ||
5058 | PR ipa/92454 | |
5059 | * ipa-cp.c (spread_undeadness): Check that IPA_NODE_REF exists. | |
5060 | (identify_dead_nodes): Likewise. | |
5061 | ||
5062 | 2019-11-13 Martin Liska <mliska@suse.cz> | |
5063 | ||
5064 | * ipa-icf.c (sem_function::equals_private): Do not overuse | |
5065 | push/pop_cfun functions. | |
5066 | ||
5067 | 2019-11-13 Martin Liska <mliska@suse.cz> | |
5068 | ||
5069 | * common.opt: Document change of -fdbg-cnt option. | |
5070 | * dbgcnt.c (DEBUG_COUNTER): Remove. | |
5071 | (dbg_cnt_is_enabled): Remove. | |
5072 | (dbg_cnt): Work with new intervals. | |
5073 | (dbg_cnt_set_limit_by_index): Set to new | |
5074 | list of intervals. | |
5075 | (dbg_cnt_set_limit_by_name): Likewise. | |
5076 | (dbg_cnt_process_single_pair): Process new format. | |
5077 | (dbg_cnt_process_opt): Likewise. | |
5078 | (dbg_cnt_list_all_counters): Likewise. | |
5079 | * doc/invoke.texi: Document change of -fdbg-cnt option. | |
5080 | (cmp_tuples): New. | |
5081 | ||
5082 | 2019-11-13 Jan Hubicka <hubicka@ucw.cz> | |
5083 | ||
5084 | * ipa-inline.c (ipa_inline): Check that function is defined before | |
5085 | flattening. | |
5086 | ||
5087 | 2019-11-13 Andrew Stubbs <ams@codesourcery.com> | |
5088 | Julian Brown <julian@codesourcery.com> | |
5089 | ||
5090 | * config/gcn/gcn.c (gcn_goacc_validate_dims): Ensure | |
5091 | flag_worker_partitioning is not set. | |
5092 | (TARGET_GOACC_WORKER_PARTITIONING): Remove target hook definition. | |
5093 | * config/gcn/gcn.opt (macc-experimental-workers): Default to off. | |
5094 | ||
5095 | 2019-11-13 Andrew Stubbs <ams@codesourcery.com> | |
5096 | ||
5097 | * config/gcn/gcn-run.c (heap_region): New global variable. | |
5098 | (struct hsa_runtime_fn_info): Add hsa_memory_assign_agent_fn. | |
5099 | (init_hsa_runtime_functions): Initialize hsa_memory_assign_agent. | |
5100 | (get_kernarg_region): Move contents to .... | |
5101 | (get_memory_region): .... here. | |
5102 | (get_heap_region): New function. | |
5103 | (init_device): Initialize the heap_region. | |
5104 | (device_malloc): Add region parameter. | |
5105 | (struct kernargs): Move heap .... | |
5106 | (heap): ... to global scope. | |
5107 | (main): Allocate heap separate to kernargs. | |
5108 | ||
5109 | 2019-11-13 Jan Hubicka <hubicka@ucw.cz> | |
5110 | ||
5111 | * ipa-prop.c (ipa_print_node_jump_functions, | |
5112 | ipa_print_node_params): Print info about missing summaries. | |
5113 | ||
5114 | 2019-11-13 Richard Sandiford <richard.sandiford@arm.com> | |
5115 | ||
5116 | * tree-vect-loop.c (vect_estimate_min_profitable_iters): Include | |
5117 | the cost of generating loop masks. | |
5118 | ||
5119 | 2019-11-13 Richard Sandiford <richard.sandiford@arm.com> | |
5120 | ||
5121 | * tree-vectorizer.h (vect_apply_runtime_profitability_check_p): | |
5122 | New function. | |
5123 | * tree-vect-loop-manip.c (vect_loop_versioning): Use it. | |
5124 | * tree-vect-loop.c (vect_analyze_loop_2): Likewise. | |
5125 | (vect_transform_loop): Likewise. | |
5126 | (vect_analyze_loop_costing): Don't take the cost of versioning | |
5127 | into account for the static profitability threshold if it turns | |
5128 | out that no versioning is needed. | |
5129 | ||
5130 | 2019-11-13 Jan Hubicka <hubicka@ucw.cz> | |
5131 | ||
5132 | * ipa.c (cgraph_build_static_cdtor): Pass optimization_default_node | |
5133 | and target_option_default_node to get -fprofile-generate ctors working | |
5134 | right with LTO. | |
5135 | ||
5136 | 2019-11-13 Richard Sandiford <richard.sandiford@arm.com> | |
5137 | ||
5138 | * tree-vectorizer.h (vect_nop_conversion_p): Declare. | |
5139 | * tree-vect-stmts.c (vect_nop_conversion_p): New function. | |
5140 | (vectorizable_assignment): Don't add a cost for nop conversions. | |
5141 | * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): | |
5142 | Likewise. | |
5143 | * tree-vect-slp.c (vect_bb_slp_scalar_cost): Likewise. | |
5144 | ||
5145 | 2019-11-13 Richard Sandiford <richard.sandiford@arm.com> | |
5146 | ||
5147 | * tree-vect-stmts.c (vect_model_promotion_demotion_cost): Take the | |
5148 | number of ncopies as an additional argument. | |
5149 | (vectorizable_conversion): Update call accordingly. Use "modifier" | |
5150 | to check whether a conversion is between vectors with the same | |
5151 | numbers of units. | |
5152 | ||
5153 | 2019-11-13 Richard Sandiford <richard.sandiford@arm.com> | |
5154 | ||
5155 | * config/aarch64/aarch64-sve-builtins-functions.h | |
5156 | (unary_count::expand): Use aarch64_sve_int_mode instead of | |
5157 | mode_for_int_vector. | |
5158 | ||
5159 | 2019-11-13 Martin Liska <mliska@suse.cz> | |
5160 | ||
5161 | * opts.c: Update comment about OPT_LEVELS_2_PLUS_SPEED_ONLY. | |
5162 | ||
5163 | 2019-11-13 Martin Liska <mliska@suse.cz> | |
5164 | ||
5165 | * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): | |
5166 | Remove call to finalize_options_struct. | |
5167 | ||
5168 | 2019-11-13 Georg-Johann Lay <avr@gjlay.de> | |
5169 | ||
5170 | PR target/92055 | |
5171 | * config/avr/t-avr (avr-mcus): Do not depend on | |
5172 | $(srcdir)/config/avr/t-multilib. | |
5173 | ||
5174 | 2019-11-13 Richard Biener <rguenther@suse.de> | |
5175 | ||
5176 | PR tree-optimization/92473 | |
5177 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Perform | |
5178 | direct optab reduction in the correct type. | |
5179 | ||
5180 | 2019-11-12 Segher Boessenkool <segher@kernel.crashing.org> | |
5181 | ||
5182 | * config/rs6000/rs6000.md (rs6000_set_fpscr_drn): Use ULL on big | |
5183 | hexadecimal literal. | |
5184 | ||
5185 | 2019-11-12 Segher Boessenkool <segher@kernel.crashing.org> | |
5186 | ||
5187 | * config/rs6000/vsx.md (xscmpexpdp_<code> for CMP_TEST): Handle | |
5188 | UNORDERED if !HONOR_NANS (DFmode). | |
5189 | (xscmpexpqp_<code>_<mode> for CMP_TEST and IEEE128): Handle UNORDERED | |
5190 | if !HONOR_NANS (<MODE>mode). | |
5191 | ||
5192 | 2019-11-12 Jan Hubicka <hubicka@ucw.cz> | |
5193 | ||
5194 | * ipa-cp.c (ignore_edge_p): Also look for optimize flag. | |
5195 | (ipcp_verify_propagated_values): Likewise. | |
5196 | (propagate_constants_across_call): Likewise. | |
5197 | (propagate_constants_topo): Likewise. | |
5198 | (ipcp_propagate_stage): Likewise. | |
5199 | ||
5200 | 2019-11-12 Jan Hubicka <hubicka@ucw.cz> | |
5201 | ||
5202 | PR ipa/92471 | |
5203 | * ipa-profile.c (check_argument_count): Break out from ...; | |
5204 | watch for missing summaries. | |
5205 | (ipa_profile): Here. | |
5206 | ||
5207 | 2019-11-12 Martin Sebor <msebor@redhat.com> | |
5208 | ||
5209 | PR tree-optimization/92412 | |
5210 | * targhooks.c (default_ref_may_alias_errno): Errono can only alias | |
5211 | extern variables. | |
5212 | ||
5213 | 2019-11-12 Martin Sebor <msebor@redhat.com> | |
5214 | ||
5215 | PR middle-end/83688 | |
5216 | * gimple-ssa-sprintf.c (format_result::alias_info): New struct. | |
5217 | (directive::argno): New member. | |
5218 | (format_result::aliases, format_result::alias_count): New data members. | |
5219 | (format_result::append_alias): New member function. | |
5220 | (fmtresult::dst_offset): New data member. | |
5221 | (pass_sprintf_length::call_info::dst_origin): New data member. | |
5222 | (pass_sprintf_length::call_info::dst_field, dst_offset): Same. | |
5223 | (char_type_p, array_elt_at_offset, field_at_offset): New functions. | |
5224 | (get_origin_and_offset): Same. | |
5225 | (format_string): Call it. | |
5226 | (format_directive): Call append_alias and set directive argument | |
5227 | number. | |
5228 | (maybe_warn_overlap): New function. | |
5229 | (pass_sprintf_length::compute_format_length): Call it. | |
5230 | (pass_sprintf_length::handle_gimple_call): Initialize new members. | |
5231 | * tree-ssa-strlen.c (): Also enable when -Wrestrict is on. | |
5232 | ||
5233 | 2019-11-12 Ilya Leoshkevich <iii@linux.ibm.com> | |
5234 | ||
5235 | PR rtl-optimization/92430 | |
5236 | * cfgcleanup.c (pass_jump_after_combine::execute): Free | |
5237 | dominance info at the beginning. | |
5238 | ||
5239 | 2019-11-12 Richard Biener <rguenther@suse.de> | |
5240 | ||
5241 | PR tree-optimization/92460 | |
5242 | * tree-vect-stmts.c (vectorizable_simd_clone_call): Unshare | |
5243 | expression before gimplifying. | |
5244 | ||
5245 | 2019-11-12 Richard Biener <rguenther@suse.de> | |
5246 | ||
5247 | PR tree-optimization/92461 | |
5248 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Update | |
5249 | stmt after propagation. | |
5250 | ||
5251 | 2019-11-12 Martin Liska <mliska@suse.cz> | |
5252 | ||
5253 | * config/i386/i386-options.c (ix86_recompute_optlev_based_flags): | |
5254 | Use SET_OPTION_IF_UNSET. | |
5255 | (ix86_option_override_internal): Likewise. | |
5256 | * opts.c (default_options_optimization): Likewise. | |
5257 | (finish_options): Likewise. | |
5258 | (enable_fdo_optimizations): Likewise. | |
5259 | (common_handle_option): Likewise. | |
5260 | ||
5261 | 2019-11-12 Martin Liska <mliska@suse.cz> | |
5262 | ||
5263 | * common/common-target.def: Remove option_validate_param and | |
5264 | option_default_params. | |
5265 | * common/common-targhooks.c (default_option_validate_param): | |
5266 | Remove. | |
5267 | * common/common-targhooks.h (default_option_validate_param): | |
5268 | Remove. | |
5269 | * common/config/aarch64/aarch64-common.c (TARGET_OPTION_DEFAULT_PARAMS): | |
5270 | Remove usage of this. | |
5271 | (TARGET_OPTION_VALIDATE_PARAM): Likewise. | |
5272 | (aarch64_option_validate_param): Likewise. | |
5273 | (aarch64_option_default_params): Likewise | |
5274 | * common/config/bpf/bpf-common.c (bpf_option_default_params): Likewise. | |
5275 | (TARGET_OPTION_DEFAULT_PARAMS): Likewise. | |
5276 | * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise. | |
5277 | (TARGET_OPTION_DEFAULT_PARAMS): Likewise. | |
5278 | * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise. | |
5279 | (TARGET_OPTION_DEFAULT_PARAMS): Likewise. | |
5280 | * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise. | |
5281 | (TARGET_OPTION_DEFAULT_PARAMS): Likewise. | |
5282 | * common/config/sh/sh-common.c (sh_option_default_params): Likewise. | |
5283 | (TARGET_OPTION_DEFAULT_PARAMS): Likewise. | |
5284 | * config/aarch64/aarch64.c (aarch64_override_options_internal): Validate | |
5285 | guard_size here. | |
5286 | * doc/tm.texi: Remove option_default_params and option_validate_param. | |
5287 | * doc/tm.texi.in: Likewise. | |
5288 | ||
5289 | 2019-11-12 Martin Liska <mliska@suse.cz> | |
5290 | ||
5291 | * common/common-target.def: | |
5292 | Do not mention set_default_param_value | |
5293 | and set_param_value. | |
5294 | * doc/tm.texi: Likewise. | |
5295 | ||
5296 | 2019-11-12 Martin Liska <mliska@suse.cz> | |
5297 | ||
5298 | * common.opt: Remove param_values. | |
5299 | * config/i386/i386-options.c (ix86_valid_target_attribute_p): | |
5300 | Remove finalize_options_struct. | |
5301 | * gcc.c (driver::decode_argv): Do not call global_init_params | |
5302 | and finish_params. | |
5303 | (driver::finalize): Do not call params_c_finalize | |
5304 | and finalize_options_struct. | |
5305 | * opt-suggestions.c (option_proposer::get_completions): Remove | |
5306 | special casing of params. | |
5307 | (option_proposer::find_param_completions): Remove. | |
5308 | (test_completion_partial_match): Update expected output. | |
5309 | * opt-suggestions.h: Remove find_param_completions. | |
5310 | * opts-common.c (add_misspelling_candidates): Add | |
5311 | --param with a space. | |
5312 | * opts.c (handle_param): Remove. | |
5313 | (init_options_struct):. Remove init_options_struct and | |
5314 | similar calls. | |
5315 | (finalize_options_struct): Remove. | |
5316 | (common_handle_option): Use SET_OPTION_IF_UNSET. | |
5317 | * opts.h (finalize_options_struct): Remove. | |
5318 | * toplev.c (general_init): Do not call global_init_params. | |
5319 | (toplev::finalize): Do not call params_c_finalize and | |
5320 | finalize_options_struct. | |
5321 | ||
5322 | 2019-11-12 Martin Liska <mliska@suse.cz> | |
5323 | ||
5324 | * Makefile.in: Remove PARAMS_H and params.list | |
5325 | and params.options. | |
5326 | * params-enum.h: Remove. | |
5327 | * params-list.h: Remove. | |
5328 | * params-options.h: Remove. | |
5329 | * params.c: Remove. | |
5330 | * params.def: Remove. | |
5331 | * params.h: Remove. | |
5332 | * asan.c: Do not include params.h. | |
5333 | * auto-profile.c: Likewise. | |
5334 | * bb-reorder.c: Likewise. | |
5335 | * builtins.c: Likewise. | |
5336 | * cfgcleanup.c: Likewise. | |
5337 | * cfgexpand.c: Likewise. | |
5338 | * cfgloopanal.c: Likewise. | |
5339 | * cgraph.c: Likewise. | |
5340 | * combine.c: Likewise. | |
5341 | * common/config/aarch64/aarch64-common.c: Likewise. | |
5342 | * common/config/gcn/gcn-common.c: Likewise. | |
5343 | * common/config/ia64/ia64-common.c: Likewise. | |
5344 | * common/config/powerpcspe/powerpcspe-common.c: Likewise. | |
5345 | * common/config/rs6000/rs6000-common.c: Likewise. | |
5346 | * common/config/sh/sh-common.c: Likewise. | |
5347 | * config/aarch64/aarch64.c: Likewise. | |
5348 | * config/alpha/alpha.c: Likewise. | |
5349 | * config/arm/arm.c: Likewise. | |
5350 | * config/avr/avr.c: Likewise. | |
5351 | * config/csky/csky.c: Likewise. | |
5352 | * config/i386/i386-builtins.c: Likewise. | |
5353 | * config/i386/i386-expand.c: Likewise. | |
5354 | * config/i386/i386-features.c: Likewise. | |
5355 | * config/i386/i386-options.c: Likewise. | |
5356 | * config/i386/i386.c: Likewise. | |
5357 | * config/ia64/ia64.c: Likewise. | |
5358 | * config/rs6000/rs6000-logue.c: Likewise. | |
5359 | * config/rs6000/rs6000.c: Likewise. | |
5360 | * config/s390/s390.c: Likewise. | |
5361 | * config/sparc/sparc.c: Likewise. | |
5362 | * config/visium/visium.c: Likewise. | |
5363 | * coverage.c: Likewise. | |
5364 | * cprop.c: Likewise. | |
5365 | * cse.c: Likewise. | |
5366 | * cselib.c: Likewise. | |
5367 | * dse.c: Likewise. | |
5368 | * emit-rtl.c: Likewise. | |
5369 | * explow.c: Likewise. | |
5370 | * final.c: Likewise. | |
5371 | * fold-const.c: Likewise. | |
5372 | * gcc.c: Likewise. | |
5373 | * gcse.c: Likewise. | |
5374 | * ggc-common.c: Likewise. | |
5375 | * ggc-page.c: Likewise. | |
5376 | * gimple-loop-interchange.cc: Likewise. | |
5377 | * gimple-loop-jam.c: Likewise. | |
5378 | * gimple-loop-versioning.cc: Likewise. | |
5379 | * gimple-ssa-split-paths.c: Likewise. | |
5380 | * gimple-ssa-sprintf.c: Likewise. | |
5381 | * gimple-ssa-store-merging.c: Likewise. | |
5382 | * gimple-ssa-strength-reduction.c: Likewise. | |
5383 | * gimple-ssa-warn-alloca.c: Likewise. | |
5384 | * gimple-ssa-warn-restrict.c: Likewise. | |
5385 | * graphite-isl-ast-to-gimple.c: Likewise. | |
5386 | * graphite-optimize-isl.c: Likewise. | |
5387 | * graphite-scop-detection.c: Likewise. | |
5388 | * graphite-sese-to-poly.c: Likewise. | |
5389 | * graphite.c: Likewise. | |
5390 | * haifa-sched.c: Likewise. | |
5391 | * hsa-gen.c: Likewise. | |
5392 | * ifcvt.c: Likewise. | |
5393 | * ipa-cp.c: Likewise. | |
5394 | * ipa-fnsummary.c: Likewise. | |
5395 | * ipa-inline-analysis.c: Likewise. | |
5396 | * ipa-inline.c: Likewise. | |
5397 | * ipa-polymorphic-call.c: Likewise. | |
5398 | * ipa-profile.c: Likewise. | |
5399 | * ipa-prop.c: Likewise. | |
5400 | * ipa-split.c: Likewise. | |
5401 | * ipa-sra.c: Likewise. | |
5402 | * ira-build.c: Likewise. | |
5403 | * ira-conflicts.c: Likewise. | |
5404 | * loop-doloop.c: Likewise. | |
5405 | * loop-invariant.c: Likewise. | |
5406 | * loop-unroll.c: Likewise. | |
5407 | * lra-assigns.c: Likewise. | |
5408 | * lra-constraints.c: Likewise. | |
5409 | * modulo-sched.c: Likewise. | |
5410 | * opt-suggestions.c: Likewise. | |
5411 | * opts.c: Likewise. | |
5412 | * postreload-gcse.c: Likewise. | |
5413 | * predict.c: Likewise. | |
5414 | * reload.c: Likewise. | |
5415 | * reorg.c: Likewise. | |
5416 | * resource.c: Likewise. | |
5417 | * sanopt.c: Likewise. | |
5418 | * sched-deps.c: Likewise. | |
5419 | * sched-ebb.c: Likewise. | |
5420 | * sched-rgn.c: Likewise. | |
5421 | * sel-sched-ir.c: Likewise. | |
5422 | * sel-sched.c: Likewise. | |
5423 | * shrink-wrap.c: Likewise. | |
5424 | * stmt.c: Likewise. | |
5425 | * targhooks.c: Likewise. | |
5426 | * toplev.c: Likewise. | |
5427 | * tracer.c: Likewise. | |
5428 | * trans-mem.c: Likewise. | |
5429 | * tree-chrec.c: Likewise. | |
5430 | * tree-data-ref.c: Likewise. | |
5431 | * tree-if-conv.c: Likewise. | |
5432 | * tree-inline.c: Likewise. | |
5433 | * tree-loop-distribution.c: Likewise. | |
5434 | * tree-parloops.c: Likewise. | |
5435 | * tree-predcom.c: Likewise. | |
5436 | * tree-profile.c: Likewise. | |
5437 | * tree-scalar-evolution.c: Likewise. | |
5438 | * tree-sra.c: Likewise. | |
5439 | * tree-ssa-ccp.c: Likewise. | |
5440 | * tree-ssa-dom.c: Likewise. | |
5441 | * tree-ssa-dse.c: Likewise. | |
5442 | * tree-ssa-ifcombine.c: Likewise. | |
5443 | * tree-ssa-loop-ch.c: Likewise. | |
5444 | * tree-ssa-loop-im.c: Likewise. | |
5445 | * tree-ssa-loop-ivcanon.c: Likewise. | |
5446 | * tree-ssa-loop-ivopts.c: Likewise. | |
5447 | * tree-ssa-loop-manip.c: Likewise. | |
5448 | * tree-ssa-loop-niter.c: Likewise. | |
5449 | * tree-ssa-loop-prefetch.c: Likewise. | |
5450 | * tree-ssa-loop-unswitch.c: Likewise. | |
5451 | * tree-ssa-math-opts.c: Likewise. | |
5452 | * tree-ssa-phiopt.c: Likewise. | |
5453 | * tree-ssa-pre.c: Likewise. | |
5454 | * tree-ssa-reassoc.c: Likewise. | |
5455 | * tree-ssa-sccvn.c: Likewise. | |
5456 | * tree-ssa-scopedtables.c: Likewise. | |
5457 | * tree-ssa-sink.c: Likewise. | |
5458 | * tree-ssa-strlen.c: Likewise. | |
5459 | * tree-ssa-structalias.c: Likewise. | |
5460 | * tree-ssa-tail-merge.c: Likewise. | |
5461 | * tree-ssa-threadbackward.c: Likewise. | |
5462 | * tree-ssa-threadedge.c: Likewise. | |
5463 | * tree-ssa-uninit.c: Likewise. | |
5464 | * tree-switch-conversion.c: Likewise. | |
5465 | * tree-vect-data-refs.c: Likewise. | |
5466 | * tree-vect-loop.c: Likewise. | |
5467 | * tree-vect-slp.c: Likewise. | |
5468 | * tree-vrp.c: Likewise. | |
5469 | * tree.c: Likewise. | |
5470 | * value-prof.c: Likewise. | |
5471 | * var-tracking.c: Likewise. | |
5472 | ||
5473 | 2019-11-12 Martin Liska <mliska@suse.cz> | |
5474 | ||
5475 | * asan.c (asan_sanitize_stack_p): Replace old parameter syntax | |
5476 | with the new one, include opts.h if needed. Use SET_OPTION_IF_UNSET | |
5477 | macro. | |
5478 | (asan_sanitize_allocas_p): Likewise. | |
5479 | (asan_emit_stack_protection): Likewise. | |
5480 | (asan_protect_global): Likewise. | |
5481 | (instrument_derefs): Likewise. | |
5482 | (instrument_builtin_call): Likewise. | |
5483 | (asan_expand_mark_ifn): Likewise. | |
5484 | * auto-profile.c (auto_profile): Likewise. | |
5485 | * bb-reorder.c (copy_bb_p): Likewise. | |
5486 | (duplicate_computed_gotos): Likewise. | |
5487 | * builtins.c (inline_expand_builtin_string_cmp): Likewise. | |
5488 | * cfgcleanup.c (try_crossjump_to_edge): Likewise. | |
5489 | (try_crossjump_bb): Likewise. | |
5490 | * cfgexpand.c (defer_stack_allocation): Likewise. | |
5491 | (stack_protect_classify_type): Likewise. | |
5492 | (pass_expand::execute): Likewise. | |
5493 | * cfgloopanal.c (expected_loop_iterations_unbounded): Likewise. | |
5494 | (estimate_reg_pressure_cost): Likewise. | |
5495 | * cgraph.c (cgraph_edge::maybe_hot_p): Likewise. | |
5496 | * combine.c (combine_instructions): Likewise. | |
5497 | (record_value_for_reg): Likewise. | |
5498 | * common/config/aarch64/aarch64-common.c (aarch64_option_validate_param): Likewise. | |
5499 | (aarch64_option_default_params): Likewise. | |
5500 | * common/config/ia64/ia64-common.c (ia64_option_default_params): Likewise. | |
5501 | * common/config/powerpcspe/powerpcspe-common.c (rs6000_option_default_params): Likewise. | |
5502 | * common/config/rs6000/rs6000-common.c (rs6000_option_default_params): Likewise. | |
5503 | * common/config/sh/sh-common.c (sh_option_default_params): Likewise. | |
5504 | * config/aarch64/aarch64.c (aarch64_output_probe_stack_range): Likewise. | |
5505 | (aarch64_allocate_and_probe_stack_space): Likewise. | |
5506 | (aarch64_expand_epilogue): Likewise. | |
5507 | (aarch64_override_options_internal): Likewise. | |
5508 | * config/alpha/alpha.c (alpha_option_override): Likewise. | |
5509 | * config/arm/arm.c (arm_option_override): Likewise. | |
5510 | (arm_valid_target_attribute_p): Likewise. | |
5511 | * config/i386/i386-options.c (ix86_option_override_internal): Likewise. | |
5512 | * config/i386/i386.c (get_probe_interval): Likewise. | |
5513 | (ix86_adjust_stack_and_probe_stack_clash): Likewise. | |
5514 | (ix86_max_noce_ifcvt_seq_cost): Likewise. | |
5515 | * config/ia64/ia64.c (ia64_adjust_cost): Likewise. | |
5516 | * config/rs6000/rs6000-logue.c (get_stack_clash_protection_probe_interval): Likewise. | |
5517 | (get_stack_clash_protection_guard_size): Likewise. | |
5518 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise. | |
5519 | * config/s390/s390.c (allocate_stack_space): Likewise. | |
5520 | (s390_emit_prologue): Likewise. | |
5521 | (s390_option_override_internal): Likewise. | |
5522 | * config/sparc/sparc.c (sparc_option_override): Likewise. | |
5523 | * config/visium/visium.c (visium_option_override): Likewise. | |
5524 | * coverage.c (get_coverage_counts): Likewise. | |
5525 | (coverage_compute_profile_id): Likewise. | |
5526 | (coverage_begin_function): Likewise. | |
5527 | (coverage_end_function): Likewise. | |
5528 | * cse.c (cse_find_path): Likewise. | |
5529 | (cse_extended_basic_block): Likewise. | |
5530 | (cse_main): Likewise. | |
5531 | * cselib.c (cselib_invalidate_mem): Likewise. | |
5532 | * dse.c (dse_step1): Likewise. | |
5533 | * emit-rtl.c (set_new_first_and_last_insn): Likewise. | |
5534 | (get_max_insn_count): Likewise. | |
5535 | (make_debug_insn_raw): Likewise. | |
5536 | (init_emit): Likewise. | |
5537 | * explow.c (compute_stack_clash_protection_loop_data): Likewise. | |
5538 | * final.c (compute_alignments): Likewise. | |
5539 | * fold-const.c (fold_range_test): Likewise. | |
5540 | (fold_truth_andor): Likewise. | |
5541 | (tree_single_nonnegative_warnv_p): Likewise. | |
5542 | (integer_valued_real_single_p): Likewise. | |
5543 | * gcse.c (want_to_gcse_p): Likewise. | |
5544 | (prune_insertions_deletions): Likewise. | |
5545 | (hoist_code): Likewise. | |
5546 | (gcse_or_cprop_is_too_expensive): Likewise. | |
5547 | * ggc-common.c: Likewise. | |
5548 | * ggc-page.c (ggc_collect): Likewise. | |
5549 | * gimple-loop-interchange.cc (MAX_NUM_STMT): Likewise. | |
5550 | (MAX_DATAREFS): Likewise. | |
5551 | (OUTER_STRIDE_RATIO): Likewise. | |
5552 | * gimple-loop-jam.c (tree_loop_unroll_and_jam): Likewise. | |
5553 | * gimple-loop-versioning.cc (loop_versioning::max_insns_for_loop): Likewise. | |
5554 | * gimple-ssa-split-paths.c (is_feasible_trace): Likewise. | |
5555 | * gimple-ssa-store-merging.c (imm_store_chain_info::try_coalesce_bswap): Likewise. | |
5556 | (imm_store_chain_info::coalesce_immediate_stores): Likewise. | |
5557 | (imm_store_chain_info::output_merged_store): Likewise. | |
5558 | (pass_store_merging::process_store): Likewise. | |
5559 | * gimple-ssa-strength-reduction.c (find_basis_for_base_expr): Likewise. | |
5560 | * graphite-isl-ast-to-gimple.c (class translate_isl_ast_to_gimple): Likewise. | |
5561 | (scop_to_isl_ast): Likewise. | |
5562 | * graphite-optimize-isl.c (get_schedule_for_node_st): Likewise. | |
5563 | (optimize_isl): Likewise. | |
5564 | * graphite-scop-detection.c (build_scops): Likewise. | |
5565 | * haifa-sched.c (set_modulo_params): Likewise. | |
5566 | (rank_for_schedule): Likewise. | |
5567 | (model_add_to_worklist): Likewise. | |
5568 | (model_promote_insn): Likewise. | |
5569 | (model_choose_insn): Likewise. | |
5570 | (queue_to_ready): Likewise. | |
5571 | (autopref_multipass_dfa_lookahead_guard): Likewise. | |
5572 | (schedule_block): Likewise. | |
5573 | (sched_init): Likewise. | |
5574 | * hsa-gen.c (init_prologue): Likewise. | |
5575 | * ifcvt.c (bb_ok_for_noce_convert_multiple_sets): Likewise. | |
5576 | (cond_move_process_if_block): Likewise. | |
5577 | * ipa-cp.c (ipcp_lattice::add_value): Likewise. | |
5578 | (merge_agg_lats_step): Likewise. | |
5579 | (devirtualization_time_bonus): Likewise. | |
5580 | (hint_time_bonus): Likewise. | |
5581 | (incorporate_penalties): Likewise. | |
5582 | (good_cloning_opportunity_p): Likewise. | |
5583 | (ipcp_propagate_stage): Likewise. | |
5584 | * ipa-fnsummary.c (decompose_param_expr): Likewise. | |
5585 | (set_switch_stmt_execution_predicate): Likewise. | |
5586 | (analyze_function_body): Likewise. | |
5587 | (compute_fn_summary): Likewise. | |
5588 | * ipa-inline-analysis.c (estimate_growth): Likewise. | |
5589 | * ipa-inline.c (caller_growth_limits): Likewise. | |
5590 | (inline_insns_single): Likewise. | |
5591 | (inline_insns_auto): Likewise. | |
5592 | (can_inline_edge_by_limits_p): Likewise. | |
5593 | (want_early_inline_function_p): Likewise. | |
5594 | (big_speedup_p): Likewise. | |
5595 | (want_inline_small_function_p): Likewise. | |
5596 | (want_inline_self_recursive_call_p): Likewise. | |
5597 | (edge_badness): Likewise. | |
5598 | (recursive_inlining): Likewise. | |
5599 | (compute_max_insns): Likewise. | |
5600 | (early_inliner): Likewise. | |
5601 | * ipa-polymorphic-call.c (csftc_abort_walking_p): Likewise. | |
5602 | * ipa-profile.c (ipa_profile): Likewise. | |
5603 | * ipa-prop.c (determine_known_aggregate_parts): Likewise. | |
5604 | (ipa_analyze_node): Likewise. | |
5605 | (ipcp_transform_function): Likewise. | |
5606 | * ipa-split.c (consider_split): Likewise. | |
5607 | * ipa-sra.c (allocate_access): Likewise. | |
5608 | (process_scan_results): Likewise. | |
5609 | (ipa_sra_summarize_function): Likewise. | |
5610 | (pull_accesses_from_callee): Likewise. | |
5611 | * ira-build.c (loop_compare_func): Likewise. | |
5612 | (mark_loops_for_removal): Likewise. | |
5613 | * ira-conflicts.c (build_conflict_bit_table): Likewise. | |
5614 | * loop-doloop.c (doloop_optimize): Likewise. | |
5615 | * loop-invariant.c (gain_for_invariant): Likewise. | |
5616 | (move_loop_invariants): Likewise. | |
5617 | * loop-unroll.c (decide_unroll_constant_iterations): Likewise. | |
5618 | (decide_unroll_runtime_iterations): Likewise. | |
5619 | (decide_unroll_stupid): Likewise. | |
5620 | (expand_var_during_unrolling): Likewise. | |
5621 | * lra-assigns.c (spill_for): Likewise. | |
5622 | * lra-constraints.c (EBB_PROBABILITY_CUTOFF): Likewise. | |
5623 | * modulo-sched.c (sms_schedule): Likewise. | |
5624 | (DFA_HISTORY): Likewise. | |
5625 | * opts.c (default_options_optimization): Likewise. | |
5626 | (finish_options): Likewise. | |
5627 | (common_handle_option): Likewise. | |
5628 | * postreload-gcse.c (eliminate_partially_redundant_load): Likewise. | |
5629 | (if): Likewise. | |
5630 | * predict.c (get_hot_bb_threshold): Likewise. | |
5631 | (maybe_hot_count_p): Likewise. | |
5632 | (probably_never_executed): Likewise. | |
5633 | (predictable_edge_p): Likewise. | |
5634 | (predict_loops): Likewise. | |
5635 | (expr_expected_value_1): Likewise. | |
5636 | (tree_predict_by_opcode): Likewise. | |
5637 | (handle_missing_profiles): Likewise. | |
5638 | * reload.c (find_equiv_reg): Likewise. | |
5639 | * reorg.c (redundant_insn): Likewise. | |
5640 | * resource.c (mark_target_live_regs): Likewise. | |
5641 | (incr_ticks_for_insn): Likewise. | |
5642 | * sanopt.c (pass_sanopt::execute): Likewise. | |
5643 | * sched-deps.c (sched_analyze_1): Likewise. | |
5644 | (sched_analyze_2): Likewise. | |
5645 | (sched_analyze_insn): Likewise. | |
5646 | (deps_analyze_insn): Likewise. | |
5647 | * sched-ebb.c (schedule_ebbs): Likewise. | |
5648 | * sched-rgn.c (find_single_block_region): Likewise. | |
5649 | (too_large): Likewise. | |
5650 | (haifa_find_rgns): Likewise. | |
5651 | (extend_rgns): Likewise. | |
5652 | (new_ready): Likewise. | |
5653 | (schedule_region): Likewise. | |
5654 | (sched_rgn_init): Likewise. | |
5655 | * sel-sched-ir.c (make_region_from_loop): Likewise. | |
5656 | * sel-sched-ir.h (MAX_WS): Likewise. | |
5657 | * sel-sched.c (process_pipelined_exprs): Likewise. | |
5658 | (sel_setup_region_sched_flags): Likewise. | |
5659 | * shrink-wrap.c (try_shrink_wrapping): Likewise. | |
5660 | * targhooks.c (default_max_noce_ifcvt_seq_cost): Likewise. | |
5661 | * toplev.c (print_version): Likewise. | |
5662 | (process_options): Likewise. | |
5663 | * tracer.c (tail_duplicate): Likewise. | |
5664 | * trans-mem.c (tm_log_add): Likewise. | |
5665 | * tree-chrec.c (chrec_fold_plus_1): Likewise. | |
5666 | * tree-data-ref.c (split_constant_offset): Likewise. | |
5667 | (compute_all_dependences): Likewise. | |
5668 | * tree-if-conv.c (MAX_PHI_ARG_NUM): Likewise. | |
5669 | * tree-inline.c (remap_gimple_stmt): Likewise. | |
5670 | * tree-loop-distribution.c (MAX_DATAREFS_NUM): Likewise. | |
5671 | * tree-parloops.c (MIN_PER_THREAD): Likewise. | |
5672 | (create_parallel_loop): Likewise. | |
5673 | * tree-predcom.c (determine_unroll_factor): Likewise. | |
5674 | * tree-scalar-evolution.c (instantiate_scev_r): Likewise. | |
5675 | * tree-sra.c (analyze_all_variable_accesses): Likewise. | |
5676 | * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Likewise. | |
5677 | * tree-ssa-dse.c (setup_live_bytes_from_ref): Likewise. | |
5678 | (dse_optimize_redundant_stores): Likewise. | |
5679 | (dse_classify_store): Likewise. | |
5680 | * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. | |
5681 | * tree-ssa-loop-ch.c (ch_base::copy_headers): Likewise. | |
5682 | * tree-ssa-loop-im.c (LIM_EXPENSIVE): Likewise. | |
5683 | * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise. | |
5684 | (try_peel_loop): Likewise. | |
5685 | (tree_unroll_loops_completely): Likewise. | |
5686 | * tree-ssa-loop-ivopts.c (avg_loop_niter): Likewise. | |
5687 | (CONSIDER_ALL_CANDIDATES_BOUND): Likewise. | |
5688 | (MAX_CONSIDERED_GROUPS): Likewise. | |
5689 | (ALWAYS_PRUNE_CAND_SET_BOUND): Likewise. | |
5690 | * tree-ssa-loop-manip.c (can_unroll_loop_p): Likewise. | |
5691 | * tree-ssa-loop-niter.c (MAX_ITERATIONS_TO_TRACK): Likewise. | |
5692 | * tree-ssa-loop-prefetch.c (PREFETCH_BLOCK): Likewise. | |
5693 | (L1_CACHE_SIZE_BYTES): Likewise. | |
5694 | (L2_CACHE_SIZE_BYTES): Likewise. | |
5695 | (should_issue_prefetch_p): Likewise. | |
5696 | (schedule_prefetches): Likewise. | |
5697 | (determine_unroll_factor): Likewise. | |
5698 | (volume_of_references): Likewise. | |
5699 | (add_subscript_strides): Likewise. | |
5700 | (self_reuse_distance): Likewise. | |
5701 | (mem_ref_count_reasonable_p): Likewise. | |
5702 | (insn_to_prefetch_ratio_too_small_p): Likewise. | |
5703 | (loop_prefetch_arrays): Likewise. | |
5704 | (tree_ssa_prefetch_arrays): Likewise. | |
5705 | * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise. | |
5706 | * tree-ssa-math-opts.c (gimple_expand_builtin_pow): Likewise. | |
5707 | (convert_mult_to_fma): Likewise. | |
5708 | (math_opts_dom_walker::after_dom_children): Likewise. | |
5709 | * tree-ssa-phiopt.c (cond_if_else_store_replacement): Likewise. | |
5710 | (hoist_adjacent_loads): Likewise. | |
5711 | (gate_hoist_loads): Likewise. | |
5712 | * tree-ssa-pre.c (translate_vuse_through_block): Likewise. | |
5713 | (compute_partial_antic_aux): Likewise. | |
5714 | * tree-ssa-reassoc.c (get_reassociation_width): Likewise. | |
5715 | * tree-ssa-sccvn.c (vn_reference_lookup_pieces): Likewise. | |
5716 | (vn_reference_lookup): Likewise. | |
5717 | (do_rpo_vn): Likewise. | |
5718 | * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): Likewise. | |
5719 | * tree-ssa-sink.c (select_best_block): Likewise. | |
5720 | * tree-ssa-strlen.c (new_stridx): Likewise. | |
5721 | (new_addr_stridx): Likewise. | |
5722 | (get_range_strlen_dynamic): Likewise. | |
5723 | (class ssa_name_limit_t): Likewise. | |
5724 | * tree-ssa-structalias.c (push_fields_onto_fieldstack): Likewise. | |
5725 | (create_variable_info_for_1): Likewise. | |
5726 | (init_alias_vars): Likewise. | |
5727 | * tree-ssa-tail-merge.c (find_clusters_1): Likewise. | |
5728 | (tail_merge_optimize): Likewise. | |
5729 | * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): Likewise. | |
5730 | (thread_jumps::fsm_find_control_statement_thread_paths): Likewise. | |
5731 | (thread_jumps::find_jump_threads_backwards): Likewise. | |
5732 | * tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts_at_dest): Likewise. | |
5733 | * tree-ssa-uninit.c (compute_control_dep_chain): Likewise. | |
5734 | * tree-switch-conversion.c (switch_conversion::check_range): Likewise. | |
5735 | (jump_table_cluster::can_be_handled): Likewise. | |
5736 | * tree-switch-conversion.h (jump_table_cluster::case_values_threshold): Likewise. | |
5737 | (SWITCH_CONVERSION_BRANCH_RATIO): Likewise. | |
5738 | (param_switch_conversion_branch_ratio): Likewise. | |
5739 | * tree-vect-data-refs.c (vect_mark_for_runtime_alias_test): Likewise. | |
5740 | (vect_enhance_data_refs_alignment): Likewise. | |
5741 | (vect_prune_runtime_alias_test_list): Likewise. | |
5742 | * tree-vect-loop.c (vect_analyze_loop_costing): Likewise. | |
5743 | (vect_get_datarefs_in_loop): Likewise. | |
5744 | (vect_analyze_loop): Likewise. | |
5745 | * tree-vect-slp.c (vect_slp_bb): Likewise. | |
5746 | * tree-vectorizer.h: Likewise. | |
5747 | * tree-vrp.c (find_switch_asserts): Likewise. | |
5748 | (vrp_prop::check_mem_ref): Likewise. | |
5749 | * tree.c (wide_int_to_tree_1): Likewise. | |
5750 | (cache_integer_cst): Likewise. | |
5751 | * var-tracking.c (EXPR_USE_DEPTH): Likewise. | |
5752 | (reverse_op): Likewise. | |
5753 | (vt_find_locations): Likewise. | |
5754 | ||
5755 | 2019-11-12 Martin Liska <mliska@suse.cz> | |
5756 | ||
5757 | * Makefile.in: Include params.opt. | |
5758 | * flag-types.h (enum parloops_schedule_type): Add | |
5759 | parloops_schedule_type used in params.opt. | |
5760 | * params.opt: New file. | |
5761 | ||
5762 | 2019-11-12 Martin Liska <mliska@suse.cz> | |
5763 | ||
5764 | * common.opt: Remove --param and --param= options. | |
5765 | * opt-functions.awk: Mark CL_PARAMS for options | |
5766 | that have Param keyword. | |
5767 | * opts-common.c (decode_cmdline_options_to_array): | |
5768 | Replace --param key=value with --param=key=value. | |
5769 | * opts.c (print_filtered_help): Remove special | |
5770 | printing of params. | |
5771 | (print_specific_help): Update title for params. | |
5772 | (common_handle_option): Do not handle OPT__param. | |
5773 | opts.h (SET_OPTION_IF_UNSET): New macro. | |
5774 | * doc/options.texi: Document Param keyword. | |
5775 | ||
5776 | 2019-11-12 Maciej W. Rozycki <macro@codesourcery.com> | |
5777 | Frederik Harwath <frederik@codesourcery.com> | |
5778 | Thomas Schwinge <thomas@codesourcery.com> | |
5779 | ||
5780 | * gimple.h (gf_mask): Add GF_OMP_TARGET_KIND_OACC_SERIAL | |
5781 | enumeration constant. | |
5782 | (is_gimple_omp_oacc): Handle GF_OMP_TARGET_KIND_OACC_SERIAL. | |
5783 | (is_gimple_omp_offloaded): Likewise. | |
5784 | * gimplify.c (omp_region_type): Add ORT_ACC_SERIAL enumeration | |
5785 | constant. Adjust the value of ORT_NONE accordingly. | |
5786 | (is_gimple_stmt): Handle OACC_SERIAL. | |
5787 | (oacc_default_clause): Handle ORT_ACC_SERIAL. | |
5788 | (gomp_needs_data_present): Likewise. | |
5789 | (gimplify_adjust_omp_clauses): Likewise. | |
5790 | (gimplify_omp_workshare): Handle OACC_SERIAL. | |
5791 | (gimplify_expr): Likewise. | |
5792 | * omp-expand.c (expand_omp_target): | |
5793 | Handle GF_OMP_TARGET_KIND_OACC_SERIAL. | |
5794 | (build_omp_regions_1, omp_make_gimple_edges): Likewise. | |
5795 | * omp-low.c (is_oacc_parallel): Rename function to... | |
5796 | (is_oacc_parallel_or_serial): ... this. | |
5797 | Handle GF_OMP_TARGET_KIND_OACC_SERIAL. | |
5798 | (scan_sharing_clauses): Adjust accordingly. | |
5799 | (scan_omp_for): Likewise. | |
5800 | (lower_oacc_head_mark): Likewise. | |
5801 | (convert_from_firstprivate_int): Likewise. | |
5802 | (lower_omp_target): Likewise. | |
5803 | (check_omp_nesting_restrictions): Handle | |
5804 | GF_OMP_TARGET_KIND_OACC_SERIAL. | |
5805 | (lower_oacc_reductions): Likewise. | |
5806 | (lower_omp_target): Likewise. | |
5807 | * tree.def (OACC_SERIAL): New tree code. | |
5808 | * tree-pretty-print.c (dump_generic_node): Handle OACC_SERIAL. | |
5809 | ||
5810 | * doc/generic.texi (OpenACC): Document OACC_SERIAL. | |
5811 | ||
5812 | 2019-11-12 Jakub Jelinek <jakub@redhat.com> | |
5813 | ||
5814 | PR target/92449 | |
5815 | * tree-complex.c (expand_complex_multiplication): If !HONOR_NANS, | |
5816 | don't emit UNORDERED_EXPR guarded libcall. Formatting fixes. | |
5817 | ||
5818 | PR tree-optimization/92452 | |
5819 | * tree-vrp.c (vrp_prop::check_array_ref): If TRUNC_DIV_EXPR folds | |
5820 | into NULL_TREE, set up_bound to NULL_TREE instead of computing | |
5821 | MINUS_EXPR on it. | |
5822 | ||
5823 | 2019-11-12 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
5824 | ||
5825 | * tree-vect-loop.c (vect_transform_loop): Don't overwrite epilogues | |
5826 | safelen with 0. | |
5827 | ||
5828 | 2019-11-12 Alan Modra <amodra@gmail.com> | |
5829 | ||
5830 | * config/rs6000/predicates.md (unspec_tls): Allow const0_rtx for got | |
5831 | element of unspec vec. | |
5832 | * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Support | |
5833 | PC-relative TLS. | |
5834 | * config/rs6000/rs6000.md (UNSPEC_TLSTLS_PCREL): New unspec. | |
5835 | (tls_gd_pcrel, tls_ld_pcrel): New insns. | |
5836 | (tls_dtprel, tls_tprel): Set attr prefixed when tls_size is not 16. | |
5837 | (tls_got_tprel_pcrel, tls_tls_pcrel): New insns. | |
5838 | ||
5839 | 2019-11-12 Alan Modra <amodra@gmail.com> | |
5840 | ||
5841 | * config/rs6000/rs6000.opt (mtls-markers): Delete. | |
5842 | * config/rs6000/rs6000.h (TARGET_TLS_MARKERS): Don't define. | |
5843 | (IS_NOMARK_TLSGETADDR): Likewise. | |
5844 | * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Delete. | |
5845 | * config/rs6000/rs6000.c (rs6000_output_tlsargs): Delete. | |
5846 | (rs6000_legitimize_tls_address): Remove !TARGET_TLS_MARKERS code. | |
5847 | (rs6000_call_template_1): Delete TARGET_TLS_MARKERS test and | |
5848 | allow other UNSPECs besides UNSPEC_TLSGD and UNSPEC_TLSLD. | |
5849 | (rs6000_indirect_call_template_1): Likewise. | |
5850 | (rs6000_pltseq_template): Likewise. | |
5851 | (rs6000_opt_vars): Remove "tls-markers" entry. | |
5852 | * config/rs6000/rs6000.md (tls_gd<bits>): Replace TARGET_TLS_MARKERS | |
5853 | with TARGET_ELF. | |
5854 | (tls_gd_high<bits>, tls_gd_low<bits>): Likewise. | |
5855 | (tls_ld<bits>, tls_ld_high<bits>, tls_ld_low<bits>): Likewise. | |
5856 | (pltseq_plt_pcrel<mode>): Likewise. | |
5857 | (call_value_local32): Remove IS_NOMARK_TLSGETADDR predicate test. | |
5858 | (call_value_local64): Likewise. | |
5859 | (call_value_indirect_nonlocal_sysv<mode>): Remove IS_NOMARK_TLSGETADDR | |
5860 | output and length attribute sub-expression. | |
5861 | (call_value_nonlocal_sysv<mode>), | |
5862 | (call_value_nonlocal_sysv_secure<mode>), | |
5863 | (call_value_local_aix<mode>, call_value_nonlocal_aix<mode>), | |
5864 | (call_value_indirect_aix<mode>, call_value_indirect_elfv2<mode>), | |
5865 | (call_value_indirect_pcrel<mode>): Likewise. | |
5866 | * doc/install.texi (powerpc-*-*): Require binutils-2.20. | |
5867 | * configure.ac (HAVE_AS_TLS_MARKERS): Delete test. | |
5868 | * configure: Regenerate. | |
5869 | * config.in: Regenerate. | |
5870 | ||
5871 | 2019-11-11 Michael Meissner <meissner@linux.ibm.com> | |
5872 | ||
5873 | * config/rs6000/predicates.md (prefixed_memory): New predicate. | |
5874 | * config/rs6000/rs6000.md (stack_protect_setdi): Deal with either | |
5875 | address being a prefixed load/store. | |
5876 | (stack_protect_testdi): Deal with either address being a prefixed | |
5877 | load. | |
5878 | ||
5879 | 2019-11-11 Jakub Jelinek <jakub@redhat.com> | |
5880 | ||
5881 | PR bootstrap/92433 | |
5882 | * config/rs6000/rs6000-c.c (altivec_build_resolved_builtin): Guard | |
5883 | ALTIVEC_BUILTIN_VEC_VCMPGE_P argument swapping with n == 3 check. Use | |
5884 | std::swap. | |
5885 | ||
5886 | 2019-11-11 Richard Sandiford <richard.sandiford@arm.com> | |
5887 | ||
5888 | PR tree-optimization/92420 | |
5889 | * tree-vect-stmts.c (get_negative_load_store_type): Move further | |
5890 | up file. | |
5891 | (get_group_load_store_type): Use it for reversed SLP accesses. | |
5892 | ||
5893 | 2019-11-11 Jan Hubicka <hubcika@ucw.cz> | |
5894 | ||
5895 | * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipcp | |
5896 | summary. | |
5897 | (ipcp_transformation_t::duplicate): Break out from ... | |
5898 | (ipa_node_params_t::duplicate): ... here; add copying of agg | |
5899 | replacements. | |
5900 | * ipa-prop.h (ipcp_transformation): Add constructor and destructor. | |
5901 | (ipcp_transformation_t): Add duplicate. | |
5902 | ||
5903 | 2019-11-11 Janne Blomqvist <jb@gcc.gnu.org> | |
5904 | ||
5905 | PR fortran/91828 | |
5906 | * doc/install.texi: Document that the minimum MPFR version is | |
5907 | 3.1.0. | |
5908 | ||
5909 | 2019-11-11 Claudiu Zissulescu <claziss@gmail.com> | |
5910 | ||
5911 | * config/arc/arc.md (movsi_ne): Reorder instruction variants and | |
5912 | use new register constraint letters. | |
5913 | ||
5914 | 2019-11-11 Claudiu Zissulescu <claziss@gmail.com> | |
5915 | ||
5916 | * config/arc/arc.c (arc_legitimize_pic_address): Consider UNSPECs | |
5917 | as well, if interesting recover the symbol and re-legitimize the | |
5918 | pic address. | |
5919 | ||
5920 | 2019-11-11 Martin Liska <mliska@suse.cz> | |
5921 | ||
5922 | * dbgcnt.def (DEBUG_COUNTER): Sort counters | |
5923 | alphabetically. | |
5924 | ||
5925 | 2019-11-11 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
5926 | ||
5927 | * tree-vect-loop-manip.c (vect_do_peeling): Take epilogue gaps into | |
5928 | account when checking if there are enough iterations to vectorize | |
5929 | epilogue. | |
5930 | ||
5931 | 2019-11-11 Tobias Burnus <tobias@codesourcery.com> | |
5932 | Kwok Cheung Yeung <kcy@codesourcery.com> | |
5933 | ||
5934 | * langhooks-def.h (LANG_HOOKS_OMP_CHECK_OPTIONAL_ARGUMENT): | |
5935 | Renamed from LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT; update define. | |
5936 | (LANG_HOOKS_DECLS): Rename also here. | |
5937 | * langhooks.h (lang_hooks_for_decls): Rename | |
5938 | omp_is_optional_argument to omp_check_optional_argument; take | |
5939 | additional bool argument. | |
5940 | * omp-general.h (omp_check_optional_argument): Likewise. | |
5941 | * omp-general.h (omp_check_optional_argument): Likewise. | |
5942 | * omp-low.c (lower_omp_target): Update calls; handle absent | |
5943 | Fortran optional arguments with USE_DEVICE_ADDR/USE_DEVICE_PTR. | |
5944 | ||
5945 | 2019-11-11 H.J. Lu <hjl.tools@gmail.com> | |
5946 | ||
5947 | PR target/87833 | |
5948 | * config/i386/intelmic-mkoffload.c (prepare_target_image): Put | |
5949 | -fPIC and -shared the last to create offload image. | |
5950 | ||
5951 | 2019-11-11 Thomas Schwinge <thomas@codesourcery.com> | |
5952 | ||
5953 | * gimplify.c (gimplify_scan_omp_clauses): Assert 'offset2' instead | |
5954 | of 'offset'. | |
5955 | ||
5956 | * Makefile.in (LANG_CONFIGUREFRAGS): Define. | |
5957 | (config.status): Use/depend on it. | |
5958 | * configure.ac (all_lang_configurefrags): Track, 'AC_SUBST'. | |
5959 | * configure: Regenerate. | |
5960 | ||
5961 | 2019-11-11 Jiufu Guo <guojiufu@linux.ibm.com> | |
5962 | ||
5963 | PR tree-optimization/88760 | |
5964 | * config/rs6000/rs6000.opt (-munroll-only-small-loops): New option. | |
5965 | * common/config/rs6000/rs6000-common.c | |
5966 | (rs6000_option_optimization_table) [OPT_LEVELS_2_PLUS_SPEED_ONLY]: | |
5967 | Turn on -funroll-loops and -munroll-only-small-loops. | |
5968 | [OPT_LEVELS_ALL]: Turn off -fweb and -frename-registers. | |
5969 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove | |
5970 | set of PARAM_MAX_UNROLL_TIMES and PARAM_MAX_UNROLLED_INSNS. | |
5971 | Turn off -munroll-only-small-loops for explicit -funroll-loops. | |
5972 | (TARGET_LOOP_UNROLL_ADJUST): Add loop unroll adjust hook. | |
5973 | (rs6000_loop_unroll_adjust): Define it. Use -munroll-only-small-loops. | |
5974 | ||
5975 | 2019-11-11 Kewen Lin <linkw@gcc.gnu.org> | |
5976 | ||
5977 | * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): | |
5978 | Make scalar_load, vector_load, unaligned_load and | |
5979 | vector_gather_load cost more to conform hardware latency and | |
5980 | insn cost settings. | |
5981 | ||
5982 | 2019-11-10 Iain Sandoe <iain@sandoe.co.uk> | |
5983 | ||
5984 | * config/darwin.h (MACHO_SYMBOL_FLAG_LINKER_VIS): New. | |
5985 | (MACHO_SYMBOL_LINKER_VIS_P): New. | |
5986 | ||
5987 | 2019-11-10 Kwok Cheung Yeung <kcy@codesourcery.com> | |
5988 | ||
5989 | * lra-spills.c (assign_spill_hard_regs): Do not spill into | |
5990 | registers in eliminable_regset. | |
5991 | ||
5992 | 2019-11-10 Jan Hubicka <hubicka@ucw.cz> | |
5993 | ||
5994 | * ipa-inline.c (compute_uninlined_call_time, | |
5995 | compute_inlined_call_time): Take edge frequency as | |
5996 | parameter rather than computing it by itself. | |
5997 | (big_speedup_p, edge_badness): Manually CSE sreal | |
5998 | frequency calculations. | |
5999 | ||
6000 | 2019-11-10 Jan Hubicka <hubicka@ucw.cz> | |
6001 | ||
6002 | * profile-count.c (profile_count::to_sreal_scale): Short circuit | |
6003 | case where profiles are same. | |
6004 | ||
6005 | 2019-11-10 Jan Hubicka <hubicka@ucw.cz> | |
6006 | ||
6007 | * cgraph.c (cgraph_edge::maybe_hot_p): Do not use sreal_frequency. | |
6008 | ||
6009 | 2019-11-10 Jan Hubicka <hubicka@ucw.cz> | |
6010 | ||
6011 | * ipa-prop.c (ipa_propagate_indirect_call_infos): Remove ipa edge | |
6012 | args summaries of inlined edge unless it holds info about | |
6013 | described reference. | |
6014 | ||
6015 | 2019-11-10 Segher Boessenkool <segher@kernel.crashing.org> | |
6016 | ||
6017 | * config/rs6000/rs6000.md (CC_any): New mode iterator. | |
6018 | (*movcc_internal1): Rename to... | |
6019 | (*movcc_<mode> for CC_any): ... this. Support moves of all CC modes. | |
6020 | ||
6021 | 2019-11-09 Jan Hubicka <hubicka@ucw.cz> | |
6022 | ||
6023 | * cgraph.h (struct cgraph_node): Add ipcp_clone flag. | |
6024 | (cgraph_node::create_virtual_clone): Copy it. | |
6025 | * ipa-cp.c (ipcp_versionable_function_p): Watch for missing | |
6026 | summaries. | |
6027 | (ignore_edge_p): If caller has ipa-cp disabled, skip the edge, too. | |
6028 | (ipcp_verify_propagated_values): Do not verify nodes where ipcp | |
6029 | is disabled. | |
6030 | (propagate_constants_across_call): If callee is not analyzed, give up. | |
6031 | (propagate_constants_topo): Lower to bottom latties of all callees of | |
6032 | functions with ipa-cp disabled. | |
6033 | (ipcp_propagate_stage): Skip functions with ipa-cp disabled. | |
6034 | (cgraph_edge_brings_value_p): Check for availability first. | |
6035 | (create_specialized_node): Set ipcp_clone. | |
6036 | (ipcp_store_bits_results): Check that info is present. | |
6037 | * ipa-fnsummary.c (evaluate_properties_for_edge): Do not analyze | |
6038 | thunks. | |
6039 | (ipa_call_context::duplicate_from, ipa_call_context::equal_to): Be | |
6040 | conservative when callee summary is missing. | |
6041 | (remap_edge_summaries): Lookup call summary only when needed. | |
6042 | * ipa-icf.c (sem_function::param_used_p): Be ready for missing summary. | |
6043 | * ipa-prpo.c (ipa_alloc_node_params, ipa_initialize_node_params): | |
6044 | Use get_create. | |
6045 | (ipa_analyze_node): Use get_create. | |
6046 | (propagate_controlled_uses): Do not propagate when function is not | |
6047 | analyzed. | |
6048 | (ipa_propagate_indirect_call_infos): Remove summary of inline clone. | |
6049 | (ipa_read_node_info): Use get_create. | |
6050 | * ipa-prop.h (IPA_NODE_REF): Use get. | |
6051 | (IPA_NODE_REF_GET_CREATE): New. | |
6052 | ||
6053 | 2019-11-09 Jan Hubicka <hubicka@ucw.cz> | |
6054 | ||
6055 | * ipa-fnsummary.c (evaluate_properties_for_edge): Call IPA_NODE_REF | |
6056 | on function symbol. | |
6057 | ||
6058 | 2019-11-09 Jan Hubicka <hubicka@ucw.cz> | |
6059 | ||
6060 | * tree.c (fld_incomplete_type_of): Clear TYPE_FINAL_P, TYPE_EMPTY_P, | |
6061 | ENUM_IS_OPAQUE and ENUM_IS_SCOPED. | |
6062 | (free_lang_data_in_binfo): Clear TREE_PUBLIC in BINFO | |
6063 | (free_lang_data_in_type): Clear ENUM_IS_OPAQUE and ENUM_IS_SCOPED. | |
6064 | ||
6065 | 2019-11-09 Jan Hubicka <hubicka@ucw.cz> | |
6066 | ||
6067 | * ipa-inline-analysis.c (do_estimate_growth_1): Add support for | |
6068 | capping the growth cumulated. | |
6069 | (offline_size): Break out from ... | |
6070 | (estimate_growth): ... here. | |
6071 | (check_callers): Add N, OFFLINE and MIN_SIZE and KNOWN_EDGE | |
6072 | parameters. | |
6073 | (growth_likely_positive): Turn to ... | |
6074 | (growth_positive_p): Re-implement. | |
6075 | * ipa-inline.h (growth_likely_positive): Remove. | |
6076 | (growth_positive_p): Declare. | |
6077 | * ipa-inline.c (want_inline_small_function_p): Use | |
6078 | growth_positive_p. | |
6079 | (want_inline_function_to_all_callers_p): Likewise. | |
6080 | ||
6081 | 2019-11-09 Jan Hubicka <hubicka@ucw.cz> | |
6082 | ||
6083 | * ipa-fnsummary.c (ipa_call_context::estimate_size_and_time): Fix | |
6084 | calculation of min_size. | |
6085 | (ipa_update_overall_fn_summary): Likewise. | |
6086 | ||
6087 | 2019-11-09 Jan Hubicka <hubicka@ucw.cz> | |
6088 | ||
6089 | * ipa-fnsummary.c (estimate_edge_size_and_time): Do not call | |
6090 | estimate_edge_devirt_benefit when not computing hints; | |
6091 | do not compute time when not asked for. | |
6092 | (estimate_calls_size_and_time): Pass NULL hints and time when | |
6093 | these are not computed; do not evaluate hint predicates when these are | |
6094 | not computed. | |
6095 | (ipa_merge_fn_summary_after_inlining): Do not re-evaluate edge | |
6096 | frequency. | |
6097 | ||
6098 | 2019-11-09 Jakub Jelinek <jakub@redhat.com> | |
6099 | ||
6100 | PR tree-optimization/92401 | |
6101 | * gimple-match-head.c (gimple_resimplify1): Call const_unop only | |
6102 | if res_op->code is an expression with code length 1. | |
6103 | * gimple-match-head.c (gimple_resimplify2): Call const_binop only | |
6104 | if res_op->code is an expression with code length 2. | |
6105 | * gimple-match-head.c (gimple_resimplify3): Call fold_ternary only | |
6106 | if res_op->code is an expression with code length 3. | |
6107 | ||
6108 | 2019-11-09 Iain Sandoe <iain@sandoe.co.uk> | |
6109 | ||
6110 | * config/darwin.c (machopic_mcount_stub_name): Validate the | |
6111 | symbol stub name when it is created. | |
6112 | * config/i386/darwin.h (FUNCTION_PROFILER): Remove the symbol | |
6113 | stub validation. | |
6114 | ||
6115 | 2019-11-09 Jakub Jelinek <jakub@redhat.com> | |
6116 | ||
6117 | * symtab.c: Fix comment typos. | |
6118 | * cgraphunit.c: Likewise. | |
6119 | * cgraph.h: Likewise. | |
6120 | * cgraphclones.c: Likewise. | |
6121 | * cgraph.c: Likewise. | |
6122 | * varpool.c: Likewise. | |
6123 | * tree-ssa-strlen.c: Likewise. | |
6124 | * ipa-sra.c: Likewise. | |
6125 | (scan_expr_access, check_all_callers_for_issues): Fix typo | |
6126 | in a dump message. | |
6127 | ||
6128 | 2019-11-08 Iain Sandoe <iain@sandoe.co.uk> | |
6129 | ||
6130 | * config/darwin-protos.h: Add include quard. | |
6131 | ||
6132 | 2019-11-08 Andrew MacLeod <amacleod@redhat.com> | |
6133 | ||
6134 | * range-op.h (range_operator::fold_range): Return result in a | |
6135 | reference parameter instead of by value. | |
6136 | (range_operator::wi_fold): Same. | |
6137 | * range-op.cc (range_operator::wi_fold): Return result in a reference | |
6138 | parameter instead of by value. | |
6139 | (range_operator::fold_range): Same. | |
6140 | (value_range_from_overflowed_bounds): Same. | |
6141 | (value_range_with_overflow): Same | |
6142 | (create_possibly_reversed_range): Same. | |
6143 | (operator_equal::fold_range): Same. | |
6144 | (operator_not_equal::fold_range): Same. | |
6145 | (operator_lt::fold_range): Same. | |
6146 | (operator_le::fold_range): Same. | |
6147 | (operator_gt::fold_range): Same. | |
6148 | (operator_ge::fold_range): Same. | |
6149 | (operator_plus::wi_fold): Same. | |
6150 | (operator_plus::op1_range): Change call to fold_range. | |
6151 | (operator_plus::op2_range): Change call to fold_range. | |
6152 | (operator_minus::wi_fold): Return result via reference parameter. | |
6153 | (operator_minus::op1_range): Change call to fold_range. | |
6154 | (operator_minus::op2_range): Change call to fold_range. | |
6155 | (operator_min::wi_fold): Return result via reference parameter. | |
6156 | (operator_max::wi_fold): Same. | |
6157 | (cross_product_operator::wi_cross_product): Same. | |
6158 | (operator_mult::wi_fold): Same. | |
6159 | (operator_div::wi_fold): Same. | |
6160 | (operator_div op_floor_div): Fix whitespace. | |
6161 | (operator_exact_divide::op1_range): Change call to fold_range. | |
6162 | (operator_lshift::fold_range): Return result via reference parameter. | |
6163 | (operator_lshift::wi_fold): Same. | |
6164 | (operator_rshift::fold_range): Same. | |
6165 | (operator_rshift::wi_fold): Same. | |
6166 | (operator_cast::fold_range): Same. | |
6167 | (operator_cast::op1_range): Change calls to fold_range. | |
6168 | (operator_logical_and::fold_range): Return result via reference. | |
6169 | (wi_optimize_and_or): Adjust call to value_range_with_overflow. | |
6170 | (operator_bitwise_and::wi_fold): Return result via reference. | |
6171 | (operator_logical_or::fold_range): Same. | |
6172 | (operator_bitwise_or::wi_fold): Same. | |
6173 | (operator_bitwise_xor::wi_fold): Same. | |
6174 | (operator_trunc_mod::wi_fold): Same. | |
6175 | (operator_logical_not::fold_range): Same. | |
6176 | (operator_bitwise_not::fold_range): Same. | |
6177 | (operator_bitwise_not::op1_range): Change call to fold_range. | |
6178 | (operator_cst::fold_range): Return result via reference. | |
6179 | (operator_identity::fold_range): Same. | |
6180 | (operator_abs::wi_fold): Same. | |
6181 | (operator_absu::wi_fold): Same. | |
6182 | (operator_negate::fold_range): Same. | |
6183 | (operator_negate::op1_range): Change call to fold_range. | |
6184 | (operator_addr_expr::fold_range): Return result via reference. | |
6185 | (operator_addr_expr::op1_range): Change call to fold_range. | |
6186 | (operator_pointer_plus::wi_fold): Return result via reference. | |
6187 | (operator_pointer_min_max::wi_fold): Same. | |
6188 | (operator_pointer_and::wi_fold): Same. | |
6189 | (operator_pointer_or::wi_fold): Same. | |
6190 | (range_op_handler): Change call to fold_range. | |
6191 | (range_cast): Same. | |
6192 | * tree-vrp.c (range_fold_binary_symbolics_p): Change call to | |
6193 | fold_range. | |
6194 | (range_fold_unary_symbolics_p): Same. | |
6195 | (range_fold_binary_expr): Same. | |
6196 | (range_fold_unary_expr): Same. | |
6197 | ||
6198 | 2019-11-08 Richard Sandiford <richard.sandiford@arm.com> | |
6199 | ||
6200 | * tree-vect-loop.c (neutral_op_for_slp_reduction): Take the | |
6201 | vector type as an argument rather than reading it from the | |
6202 | stmt_vec_info. | |
6203 | (vect_create_epilog_for_reduction): Update accordingly. | |
6204 | (vectorizable_reduction): Likewise. | |
6205 | (vect_transform_cycle_phi): Likewise. | |
6206 | ||
6207 | 2019-11-08 Segher Boessenkool <segher@kernel.crashing.org> | |
6208 | ||
6209 | * config/rs6000/predicates.md (branch_comparison_operator): Allow only | |
6210 | the comparison codes that make sense for the mode used, and only the | |
6211 | codes that can be done with a single branch instruction. | |
6212 | ||
6213 | 2019-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
6214 | ||
6215 | PR tree-optimization/92351 | |
6216 | * tree-vect-data-refs.c (vect_compute_data_ref_alignment): When we are | |
6217 | peeling the main loop for alignment, make sure to set the misalignment | |
6218 | of the epilogue's data references to DR_MISALIGNMENT_UNKNOWN. | |
6219 | ||
6220 | 2019-11-08 Richard Biener <rguenther@suse.de> | |
6221 | ||
6222 | * dbgcnt.def (ivopts_loop): Add. | |
6223 | * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Check | |
6224 | ivopts_loop before optimizing a loop. | |
6225 | ||
6226 | 2019-11-08 Richard Biener <rguenther@suse.de> | |
6227 | ||
6228 | PR ipa/92409 | |
6229 | * tree-inline.c (declare_return_variable): Properly handle | |
6230 | type mismatches for the return slot. | |
6231 | ||
6232 | 2019-11-08 Eric Botcazou <ebotcazou@adacore.com> | |
6233 | ||
6234 | PR target/92095 | |
6235 | * config/sparc/sparc-protos.h (output_load_pcrel_sym): Declare. | |
6236 | * config/sparc/sparc.c (sparc_cannot_force_const_mem): Revert latest | |
6237 | change. | |
6238 | (got_helper_needed): New static variable. | |
6239 | (output_load_pcrel_sym): New function. | |
6240 | (get_pc_thunk_name): Remove after inlining... | |
6241 | (load_got_register): ...here. Rework the initialization of the GOT | |
6242 | register and of the GOT helper. | |
6243 | (save_local_or_in_reg_p): Test the REGNO of the GOT register. | |
6244 | (sparc_file_end): Test got_helper_needed to decide whether the GOT | |
6245 | helper must be emitted. Use output_asm_insn instead of fprintf. | |
6246 | (sparc_init_pic_reg): In PIC mode, always initialize the PIC register | |
6247 | if optimization is enabled. | |
6248 | * config/sparc/sparc.md (load_pcrel_sym<P:mode>): Emit the assembly | |
6249 | by calling output_load_pcrel_sym. | |
6250 | ||
6251 | 2019-11-08 Richard Sandiford <richard.sandiford@arm.com> | |
6252 | ||
6253 | * tree-sra.c (create_access): Delay disqualifying the base | |
6254 | for poly_int values until we know we have a base. | |
6255 | ||
6256 | 2019-11-08 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
6257 | ||
6258 | * tree-vect-loop.c (vect_analyze_loop): Disable epilogue vectorization | |
6259 | for loops with SIMDUID set. Enable epilogue vectorization for loops | |
6260 | with SIMDLEN set after finding a main loop with a VF that matches it. | |
6261 | ||
6262 | 2019-11-08 Jakub Jelinek <jakub@redhat.com> | |
6263 | ||
6264 | PR target/92038 | |
6265 | * gimple-ssa-store-merging.c (find_constituent_stores): For return | |
6266 | value only, return non-NULL if there is a single non-clobber | |
6267 | constituent store even if there are constituent clobbers and return | |
6268 | one of clobber constituent stores if all constituent stores are | |
6269 | clobbers. | |
6270 | (split_group): Handle clobbers. | |
6271 | (imm_store_chain_info::output_merged_store): When computing | |
6272 | bzero_first, look after all clobbers at the start. Don't count | |
6273 | clobber stmts in orig_num_stmts, except if the first orig store is | |
6274 | a clobber covering the whole area and split_stores cover the whole | |
6275 | area, consider equal number of stmts ok. Punt if split_stores | |
6276 | contains only ->orig stores and their number plus number of original | |
6277 | clobbers is equal to original number of stmts. For ->orig, look past | |
6278 | clobbers in the constituent stores. | |
6279 | (imm_store_chain_info::output_merged_stores): Don't remove clobber | |
6280 | stmts. | |
6281 | (rhs_valid_for_store_merging_p): Don't return false for clobber stmt | |
6282 | rhs. | |
6283 | (store_valid_for_store_merging_p): Allow clobber stmts. | |
6284 | (verify_clear_bit_region_be): Fix up a thinko in function comment. | |
6285 | ||
6286 | PR c++/92384 | |
6287 | * function.c (assign_parm_setup_block, assign_parm_setup_stack): Don't | |
6288 | copy TYPE_EMPTY_P arguments from data->entry_parm to data->stack_parm | |
6289 | slot. | |
6290 | (assign_parms): For TREE_ADDRESSABLE parms with TYPE_EMPTY_P type | |
6291 | force creation of a unique data.stack_parm slot. | |
6292 | ||
6293 | 2019-11-08 Richard Biener <rguenther@suse.de> | |
6294 | ||
6295 | * genmatch.c (expr::gen_transform): Use the resimplify | |
6296 | member function instead of hard-coding the gimple_resimplifyN variant. | |
6297 | (dt_simplify::gen_1): Likewise. | |
6298 | ||
6299 | 2019-11-08 Richard Sandiford <richard.sandiford@arm.com> | |
6300 | ||
6301 | * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Handle | |
6302 | POLY_INT_CST. | |
6303 | ||
6304 | 2019-11-08 Richard Sandiford <richard.sandiford@arm.com> | |
6305 | ||
6306 | * tree-inline.c (declare_return_variable): Check for poly_int_tree_p | |
6307 | instead of INTEGER_CST. | |
6308 | ||
6309 | 2019-11-08 Richard Biener <rguenther@suse.de> | |
6310 | ||
6311 | PR tree-optimization/92324 | |
6312 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Use | |
6313 | STMT_VINFO_REDUC_VECTYPE for all computations, inserting | |
6314 | sign-conversions as necessary. | |
6315 | (vectorizable_reduction): Reject conversions in the chain | |
6316 | that are not sign-conversions, base analysis on a non-converting | |
6317 | stmt and its operation sign. Set STMT_VINFO_REDUC_VECTYPE. | |
6318 | * tree-vect-stmts.c (vect_stmt_relevant_p): Don't dump anything | |
6319 | for debug stmts. | |
6320 | * tree-vectorizer.h (_stmt_vec_info::reduc_vectype): New. | |
6321 | (STMT_VINFO_REDUC_VECTYPE): Likewise. | |
6322 | ||
6323 | 2019-11-08 Georg-Johann Lay <avr@gjlay.de> | |
6324 | ||
6325 | PR target/92055 | |
6326 | * config/avr/avr.opt (-mdouble=, -mlong-double=): | |
6327 | Fix a missing '-' when displaying these options in the | |
6328 | help screen. | |
6329 | ||
6330 | 2019-11-08 Richard Sandiford <richard.sandiford@arm.com> | |
6331 | ||
6332 | * config/aarch64/iterators.md (SVE_BH, SVE_BHS): Delete. | |
6333 | ||
6334 | 2019-11-08 Richard Sandiford <richard.sandiford@arm.com> | |
6335 | ||
6336 | * config/aarch64/aarch64-builtins.c | |
6337 | (aarch64_builtin_vectorized_function): Remove bswap handling. | |
6338 | ||
6339 | 2019-11-08 Richard Sandiford <richard.sandiford@arm.com> | |
6340 | ||
6341 | * tree-core.h (tree_type_common::indivisible_p): New member variable. | |
6342 | * tree.h (TYPE_INDIVISIBLE_P): New macro. | |
6343 | * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): | |
6344 | Treat the vector types as indivisible. | |
6345 | ||
6346 | 2019-11-08 Richard Sandiford <richard.sandiford@arm.com> | |
6347 | ||
6348 | * optabs.def (gather_load_optab, mask_gather_load_optab) | |
6349 | (scatter_store_optab, mask_scatter_store_optab): Turn into | |
6350 | conversion optabs, with the offset mode given explicitly. | |
6351 | * doc/md.texi: Update accordingly. | |
6352 | * config/aarch64/aarch64-sve-builtins-base.cc | |
6353 | (svld1_gather_impl::expand): Likewise. | |
6354 | (svst1_scatter_impl::expand): Likewise. | |
6355 | * internal-fn.c (gather_load_direct, scatter_store_direct): Likewise. | |
6356 | (expand_scatter_store_optab_fn): Likewise. | |
6357 | (direct_gather_load_optab_supported_p): Likewise. | |
6358 | (direct_scatter_store_optab_supported_p): Likewise. | |
6359 | (expand_gather_load_optab_fn): Likewise. Expect the mask argument | |
6360 | to be argument 4. | |
6361 | (internal_fn_mask_index): Return 4 for IFN_MASK_GATHER_LOAD. | |
6362 | (internal_gather_scatter_fn_supported_p): Replace the offset sign | |
6363 | argument with the offset vector type. Require the two vector | |
6364 | types to have the same number of elements but allow their element | |
6365 | sizes to be different. Treat the optabs as conversion optabs. | |
6366 | * internal-fn.h (internal_gather_scatter_fn_supported_p): Update | |
6367 | prototype accordingly. | |
6368 | * optabs-query.c (supports_at_least_one_mode_p): Replace with... | |
6369 | (supports_vec_convert_optab_p): ...this new function. | |
6370 | (supports_vec_gather_load_p): Update accordingly. | |
6371 | (supports_vec_scatter_store_p): Likewise. | |
6372 | * tree-vectorizer.h (vect_gather_scatter_fn_p): Take a vec_info. | |
6373 | Replace the offset sign and bits parameters with a scalar type tree. | |
6374 | * tree-vect-data-refs.c (vect_gather_scatter_fn_p): Likewise. | |
6375 | Pass back the offset vector type instead of the scalar element type. | |
6376 | Allow the offset to be wider than the memory elements. Search for | |
6377 | an offset type that the target supports, stopping once we've | |
6378 | reached the maximum of the element size and pointer size. | |
6379 | Update call to internal_gather_scatter_fn_supported_p. | |
6380 | (vect_check_gather_scatter): Update calls accordingly. | |
6381 | When testing a new scale before knowing the final offset type, | |
6382 | check whether the scale is supported for any signed or unsigned | |
6383 | offset type. Check whether the target supports the source and | |
6384 | target types of a conversion before deciding whether to look | |
6385 | through the conversion. Record the chosen offset_vectype. | |
6386 | * tree-vect-patterns.c (vect_get_gather_scatter_offset_type): Delete. | |
6387 | (vect_recog_gather_scatter_pattern): Get the scalar offset type | |
6388 | directly from the gs_info's offset_vectype instead. Pass a zero | |
6389 | of the result type to IFN_GATHER_LOAD and IFN_MASK_GATHER_LOAD. | |
6390 | * tree-vect-stmts.c (check_load_store_masking): Update call to | |
6391 | internal_gather_scatter_fn_supported_p, passing the offset vector | |
6392 | type recorded in the gs_info. | |
6393 | (vect_truncate_gather_scatter_offset): Update call to | |
6394 | vect_check_gather_scatter, leaving it to search for a valid | |
6395 | offset vector type. | |
6396 | (vect_use_strided_gather_scatters_p): Convert the offset to the | |
6397 | element type of the gs_info's offset_vectype. | |
6398 | (vect_get_gather_scatter_ops): Get the offset vector type directly | |
6399 | from the gs_info. | |
6400 | (vect_get_strided_load_store_ops): Likewise. | |
6401 | (vectorizable_load): Pass a zero of the result type to IFN_GATHER_LOAD | |
6402 | and IFN_MASK_GATHER_LOAD. | |
6403 | * config/aarch64/aarch64-sve.md (gather_load<mode>): Rename to... | |
6404 | (gather_load<mode><v_int_equiv>): ...this. | |
6405 | (mask_gather_load<mode>): Rename to... | |
6406 | (mask_gather_load<mode><v_int_equiv>): ...this. | |
6407 | (scatter_store<mode>): Rename to... | |
6408 | (scatter_store<mode><v_int_equiv>): ...this. | |
6409 | (mask_scatter_store<mode>): Rename to... | |
6410 | (mask_scatter_store<mode><v_int_equiv>): ...this. | |
6411 | ||
6412 | 2019-11-08 Kewen Lin <linkw@gcc.gnu.org> | |
6413 | ||
6414 | PR target/92132 | |
6415 | * config/rs6000/predicates.md | |
6416 | (signed_or_equality_comparison_operator): New predicate. | |
6417 | (unsigned_or_equality_comparison_operator): Likewise. | |
6418 | * config/rs6000/rs6000.md (one_cmpl<mode>2): Remove expand. | |
6419 | (one_cmpl<mode>3_internal): Rename to one_cmpl<mode>2. | |
6420 | * config/rs6000/vector.md | |
6421 | (vcond_mask_<mode><mode> for VEC_I and VEC_I): New expand. | |
6422 | (vec_cmp<mode><mode> for VEC_I and VEC_I): Likewise. | |
6423 | (vec_cmpu<mode><mode> for VEC_I and VEC_I): Likewise. | |
6424 | (vcond_mask_<mode><VEC_int> for VEC_F): New expand for float | |
6425 | vector modes and same-size integer vector modes. | |
6426 | (vec_cmp<mode><VEC_int> for VEC_F): Likewise. | |
6427 | (vector_lt<mode> for VEC_F): New expand. | |
6428 | (vector_le<mode> for VEC_F): Likewise. | |
6429 | (vector_ne<mode> for VEC_F): Likewise. | |
6430 | (vector_unge<mode> for VEC_F): Likewise. | |
6431 | (vector_ungt<mode> for VEC_F): Likewise. | |
6432 | (vector_unle<mode> for VEC_F): Likewise. | |
6433 | (vector_unlt<mode> for VEC_F): Likewise. | |
6434 | (vector_uneq<mode>): Expose name. | |
6435 | (vector_ltgt<mode>): Likewise. | |
6436 | (vector_unordered<mode>): Likewise. | |
6437 | (vector_ordered<mode>): Likewise. | |
6438 | ||
6439 | 2019-11-08 Hongtao Liu <Hongtao.liu@intel.com> | |
6440 | ||
6441 | PR target/92295 | |
6442 | * config/i386/i386-expand.c (ix86_expand_vector_init_concat) | |
6443 | Enhance ix86_expand_vector_init_concat. | |
6444 | ||
6445 | 2019-11-08 Joseph Myers <joseph@codesourcery.com> | |
6446 | ||
6447 | * doc/invoke.texi (-Wold-style-definition): Document () not being | |
6448 | considered an old-style definition for C2x. | |
6449 | ||
6450 | 2019-11-07 John David Anglin <danglin@gcc.gnu.org> | |
6451 | ||
6452 | * config/pa/pa.md (memory_barrier): Revise to use ldcw barriers. | |
6453 | Enhance comment. | |
6454 | (memory_barrier_coherent, memory_barrier_64, memory_barrier_32): New | |
6455 | insn patterns using ldcw instruction. | |
6456 | (memory_barrier): Remove insn pattern using sync instruction. | |
6457 | * config/pa/pa.opt (coherent-ldcw): New option. | |
6458 | (ordered): New option. | |
6459 | ||
6460 | 2019-11-07 Segher Boessenkool <segher@kernel.crashing.org> | |
6461 | ||
6462 | * config/rs6000/rs6000.c (validate_condition_mode): Don't assert for | |
6463 | valid conditions. | |
6464 | ||
6465 | 2019-11-07 Jakub Jelinek <jakub@redhat.com> | |
6466 | ||
6467 | * ipa-utils.c (ipa_merge_profiles): Fix fprintf format string | |
6468 | typo - mistmatch -> mismatch. | |
6469 | * ipa-profile.c (ipa_profile): Likewise. | |
6470 | * ipa-devirt.c (compare_virtual_tables): Fix a comment typo | |
6471 | - mistmatch -> mismatch. | |
6472 | ||
6473 | 2018-11-07 Segher Boessenkool <segher@kernel.crashing.org> | |
6474 | ||
6475 | * simplify-rtx.c (comparison_to_mask): New function. | |
6476 | (mask_to_comparison): New function. | |
6477 | (simplify_logical_relational_operation): New function. | |
6478 | (simplify_binary_operation_1): Call | |
6479 | simplify_logical_relational_operation. | |
6480 | ||
6481 | 2019-11-07 Peter Bergner <bergner@linux.ibm.com> | |
6482 | ||
6483 | PR other/92090 | |
6484 | * config/rs6000/predicates.md (input_operand): Allow MODE_PARTIAL_INT | |
6485 | modes for integer constants. | |
6486 | ||
6487 | 2019-11-07 Jan Hubicka <jh@suse.cz> | |
6488 | ||
6489 | PR ipa/92406 | |
6490 | * ipa-fnsummary.c (analyze_function_body): Use get_create to copy | |
6491 | summary. | |
6492 | ||
6493 | 2019-11-07 Jan Hubicka <jh@suse.cz> | |
6494 | ||
6495 | * optc-save-gen.awk: Generate cl_target_option_free | |
6496 | and cl_optimization_option_free. | |
6497 | * opth-en.awk: Declare cl_target_option_free | |
6498 | and cl_optimization_option_free. | |
6499 | * tree.c (free_node): Use it. | |
6500 | ||
6501 | 2019-11-06 Jan Hubicka <jh@suse.cz> | |
6502 | ||
6503 | * lto-streamer-in.c: Include alloc-pool.h. | |
6504 | (freeing_string_slot_hasher): Remove. | |
6505 | (string_slot_allocator): New object allocator. | |
6506 | (file_name_hash_table): Turn to hash_table<string_slot_hasher>. | |
6507 | (file_name_obstack): New obstack. | |
6508 | (canon_file_name): Allocate in obstack and allocator. | |
6509 | (lto_reader_init): Initialize obstack and allocator. | |
6510 | (lto_free_file_name_hash): New function. | |
6511 | * lto-streamer.h (lto_free_file_name_hash): New. | |
6512 | ||
6513 | 2019-11-07 Feng Xue <fxue@os.amperecomputing.com> | |
6514 | ||
6515 | PR tree-optimization/89134 | |
6516 | * doc/invoke.texi (min-loop-cond-split-prob): Document new --params. | |
6517 | * params.def: Add min-loop-cond-split-prob. | |
6518 | * tree-ssa-loop-split.c (split_loop): Remove niter parameter, move some | |
6519 | outside checks on loop into the function. | |
6520 | (split_info): New class. | |
6521 | (find_vdef_in_loop, get_control_equiv_head_block): New functions. | |
6522 | (find_control_dep_blocks, vuse_semi_invariant_p): Likewise. | |
6523 | (ssa_semi_invariant_p, loop_iter_phi_semi_invariant_p): Likewise. | |
6524 | (control_dep_semi_invariant_p, stmt_semi_invariant_p_1): Likewise. | |
6525 | (stmt_semi_invariant_p, branch_removable_p): Likewise. | |
6526 | (get_cond_invariant_branch, compute_added_num_insns): Likewise. | |
6527 | (get_cond_branch_to_split_loop, do_split_loop_on_cond): Likewise. | |
6528 | (split_loop_on_cond): Likewise. | |
6529 | (tree_ssa_split_loops): Add loop split on conditional statement. | |
6530 | ||
6531 | 2019-11-07 Andreas Krebbel <krebbel@linux.ibm.com> | |
6532 | ||
6533 | * config/s390/s390.md ("*cstorecc<mode>_z13"): New insn_and_split | |
6534 | pattern. | |
6535 | ||
6536 | 2019-11-07 Richard Biener <rguenther@suse.de> | |
6537 | ||
6538 | PR tree-optimization/92405 | |
6539 | * tree-vect-loop.c (vectorizable_reduction): Appropriately | |
6540 | restrict lane-reducing ops to single stmt chains. | |
6541 | ||
6542 | 2019-11-07 Martin Jambor <mjambor@suse.cz> | |
6543 | ||
6544 | PR lto/70929 | |
6545 | * cif-code.def (MISMATCHED_ARGUMENTS): Removed. | |
6546 | * cgraph.h (gimple_check_call_matching_types): Remove | |
6547 | * cgraph.c (gimple_check_call_args): Likewise. | |
6548 | (gimple_check_call_matching_types): Likewise. | |
6549 | (symbol_table::create_edge): Do not call | |
6550 | gimple_check_call_matching_types. | |
6551 | (cgraph_edge::make_direct): Likewise. | |
6552 | (cgraph_edge::redirect_call_stmt_to_callee): Likewise. | |
6553 | * value-prof.h (check_ic_target): Remove. | |
6554 | * value-prof.c (check_ic_target): Remove. | |
6555 | (gimple_ic_transform): Do nat call check_ic_target. | |
6556 | * auto-profile.c (function_instance::find_icall_target_map): Likewise. | |
6557 | (afdo_indirect_call): Likewise. | |
6558 | * ipa-prop.c (update_indirect_edges_after_inlining): Do not call | |
6559 | gimple_check_call_matching_types. | |
6560 | * ipa-inline.c (early_inliner): Likewise. | |
6561 | ||
6562 | 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
6563 | ||
6564 | * config/arm/arm.md (arm_<simd32_op>): New define_expand. | |
6565 | (arm_<simd32_op><add_clobber_q_name>_insn): New define_insn. | |
6566 | * config/arm/arm_acle.h (__ssat16, __usat16): Define. | |
6567 | * config/arm/arm_acle_builtins.def: Define builtins for the above. | |
6568 | * config/arm/iterators.md (USSAT16): New int_iterator. | |
6569 | (simd32_op): Handle UNSPEC_SSAT16, UNSPEC_USAT16. | |
6570 | (sup): Likewise. | |
6571 | * config/arm/predicates.md (ssat16_imm): New predicate. | |
6572 | (usat16_imm): Likewise. | |
6573 | * config/arm/unspecs.md (UNSPEC_SSAT16, UNSPEC_USAT16): Define. | |
6574 | ||
6575 | 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
6576 | ||
6577 | * config/arm/arm.md (arm_<simd32_op><add_clobber_q_name>_insn): | |
6578 | New define_insns. | |
6579 | (arm_<simd32_op>): New define_expands. | |
6580 | * config/arm/arm_acle.h (__smlad, __smladx, __smlsd, __smlsdx, | |
6581 | __smuad, __smuadx): Define. | |
6582 | * config/arm/arm_acle_builtins.def: Define builtins for the above. | |
6583 | * config/arm/iterators.md (SIMD32_TERNOP_Q): New int_iterator. | |
6584 | (SIMD32_BINOP_Q): Likewise. | |
6585 | (simd32_op): Handle the above. | |
6586 | * config/arm/unspecs.md: Define unspecs for the above. | |
6587 | ||
6588 | 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
6589 | ||
6590 | * config/arm/aout.h (REGISTER_NAMES): Add apsrge. | |
6591 | * config/arm/arm.md (APSRGE_REGNUM): Define. | |
6592 | (arm_<simd32_op>): New define_insn. | |
6593 | (arm_sel): Likewise. | |
6594 | * config/arm/arm.h (FIXED_REGISTERS): Add entry for apsrge. | |
6595 | (CALL_USED_REGISTERS): Likewise. | |
6596 | (REG_ALLOC_ORDER): Likewise. | |
6597 | (FIRST_PSEUDO_REGISTER): Update value. | |
6598 | (ARM_GE_BITS_READ): Define. | |
6599 | * config/arm/arm.c (arm_conditional_register_usage): Clear | |
6600 | APSRGE_REGNUM from operand_reg_set. | |
6601 | (arm_ge_bits_access): Define. | |
6602 | * config/arm/arm-builtins.c (arm_check_builtin_call): Handle | |
6603 | ARM_BUIILTIN_sel. | |
6604 | * config/arm/arm-protos.h (arm_ge_bits_access): Declare prototype. | |
6605 | * config/arm/arm-fixed.md (add<mode>3): Convert to define_expand. | |
6606 | FAIL if ARM_GE_BITS_READ. | |
6607 | (*arm_add<mode>3): New define_insn. | |
6608 | (sub<mode>3): Convert to define_expand. FAIL if ARM_GE_BITS_READ. | |
6609 | (*arm_sub<mode>3): New define_insn. | |
6610 | * config/arm/arm_acle.h (__sel, __sadd8, __ssub8, __uadd8, __usub8, | |
6611 | __sadd16, __sasx, __ssax, __ssub16, __uadd16, __uasx, __usax, | |
6612 | __usub16): Define. | |
6613 | * config/arm/arm_acle_builtins.def: Define builtins for the above. | |
6614 | * config/arm/iterators.md (SIMD32_GE): New int_iterator. | |
6615 | (simd32_op): Handle the above. | |
6616 | * config/arm/unspecs.md (UNSPEC_GE_SET): Define. | |
6617 | (UNSPEC_SEL, UNSPEC_SADD8, UNSPEC_SSUB8, UNSPEC_UADD8, UNSPEC_USUB8, | |
6618 | UNSPEC_SADD16, UNSPEC_SASX, UNSPEC_SSAX, UNSPEC_SSUB16, UNSPEC_UADD16, | |
6619 | UNSPEC_UASX, UNSPEC_USAX, UNSPEC_USUB16): Define. | |
6620 | ||
6621 | 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
6622 | ||
6623 | * config/arm/arm.md (arm_smlabb_setq): New define_insn. | |
6624 | (arm_smlabb): New define_expand. | |
6625 | (*maddhisi4tb): Rename to... | |
6626 | (maddhisi4tb): ... This. | |
6627 | (*maddhisi4tt): Rename to... | |
6628 | (maddhisi4tt): ... This. | |
6629 | (arm_smlatb_setq): New define_insn. | |
6630 | (arm_smlatb): New define_expand. | |
6631 | (arm_smlatt_setq): New define_insn. | |
6632 | (arm_smlatt): New define_expand. | |
6633 | (arm_<smlaw_op><add_clobber_name>_insn): New define_insn. | |
6634 | (arm_<smlaw_op>): New define_expand. | |
6635 | * config/arm/arm_acle.h (__smlabb, __smlatb, __smlabt, __smlatt, | |
6636 | __smlawb, __smlawt): Define. | |
6637 | * config/arm_acle_builtins.def: Define builtins for the above. | |
6638 | * config/arm/iterators.md (SMLAWBT): New int_iterator. | |
6639 | (slaw_op): New int_attribute. | |
6640 | * config/arm/unspecs.md (UNSPEC_SMLAWB, UNSPEC_SMLAWT): Define. | |
6641 | ||
6642 | 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
6643 | ||
6644 | * config/arm/arm.md (arm_<ss_op>): New define_expand. | |
6645 | (arm_<ss_op><add_clobber_q_name>_insn): New define_insn. | |
6646 | * config/arm/arm_acle.h (__qadd, __qsub, __qdbl): Define. | |
6647 | * config/arm/arm_acle_builtins.def: Add builtins for qadd, qsub. | |
6648 | * config/arm/iterators.md (SSPLUSMINUS): New code iterator. | |
6649 | (ss_op): New code_attr. | |
6650 | ||
6651 | 2019-11-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
6652 | ||
6653 | * config/arm/aout.h (REGISTER_NAMES): Add apsrq. | |
6654 | * config/arm/arm.md (APSRQ_REGNUM): Define. | |
6655 | (add_setq): New define_subst. | |
6656 | (add_clobber_q_name): New define_subst_attr. | |
6657 | (add_clobber_q_pred): Likewise. | |
6658 | (maddhisi4): Change to define_expand. Split into mult and add if | |
6659 | ARM_Q_BIT_READ. | |
6660 | (arm_maddhisi4): New define_insn. | |
6661 | (*maddhisi4tb): Disable for ARM_Q_BIT_READ. | |
6662 | (*maddhisi4tt): Likewise. | |
6663 | (arm_ssat): New define_expand. | |
6664 | (arm_usat): Likewise. | |
6665 | (arm_get_apsr): New define_insn. | |
6666 | (arm_set_apsr): Likewise. | |
6667 | (arm_saturation_occurred): New define_expand. | |
6668 | (arm_set_saturation): Likewise. | |
6669 | (*satsi_<SAT:code>): Rename to... | |
6670 | (satsi_<SAT:code><add_clobber_q_name>): ... This. | |
6671 | (*satsi_<SAT:code>_shift): Disable for ARM_Q_BIT_READ. | |
6672 | * config/arm/arm.h (FIXED_REGISTERS): Mark apsrq as fixed. | |
6673 | (CALL_USED_REGISTERS): Mark apsrq. | |
6674 | (FIRST_PSEUDO_REGISTER): Update value. | |
6675 | (REG_ALLOC_ORDER): Add APSRQ_REGNUM. | |
6676 | (machine_function): Add q_bit_access. | |
6677 | (ARM_Q_BIT_READ): Define. | |
6678 | * config/arm/arm.c (TARGET_CHECK_BUILTIN_CALL): Define. | |
6679 | (arm_conditional_register_usage): Clear APSRQ_REGNUM from | |
6680 | operand_reg_set. | |
6681 | (arm_q_bit_access): Define. | |
6682 | * config/arm/arm-builtins.c: Include stringpool.h. | |
6683 | (arm_sat_binop_imm_qualifiers, | |
6684 | arm_unsigned_sat_binop_unsigned_imm_qualifiers, | |
6685 | arm_sat_occurred_qualifiers, arm_set_sat_qualifiers): Define. | |
6686 | (SAT_BINOP_UNSIGNED_IMM_QUALIFIERS, | |
6687 | UNSIGNED_SAT_BINOP_UNSIGNED_IMM_QUALIFIERS, SAT_OCCURRED_QUALIFIERS, | |
6688 | SET_SAT_QUALIFIERS): Likewise. | |
6689 | (arm_builtins): Define ARM_BUILTIN_SAT_IMM_CHECK. | |
6690 | (arm_init_acle_builtins): Initialize __builtin_sat_imm_check. | |
6691 | Handle 0 argument expander. | |
6692 | (arm_expand_acle_builtin): Handle ARM_BUILTIN_SAT_IMM_CHECK. | |
6693 | (arm_check_builtin_call): Define. | |
6694 | * config/arm/arm.md (ssmulsa3, usmulusa3, usmuluha3, | |
6695 | arm_ssatsihi_shift, arm_usatsihi): Disable when ARM_Q_BIT_READ. | |
6696 | * config/arm/arm-protos.h (arm_check_builtin_call): Declare prototype. | |
6697 | (arm_q_bit_access): Likewise. | |
6698 | * config/arm/arm_acle.h (__ssat, __usat, __ignore_saturation, | |
6699 | __saturation_occurred, __set_saturation_occurred): Define. | |
6700 | * config/arm/arm_acle_builtins.def: Define builtins for ssat, usat, | |
6701 | saturation_occurred, set_saturation_occurred. | |
6702 | * config/arm/unspecs.md (UNSPEC_Q_SET): Define. | |
6703 | (UNSPEC_APSR_READ): Likewise. | |
6704 | (VUNSPEC_APSR_WRITE): Likewise. | |
6705 | * config/arm/arm-fixed.md (ssadd<mode>3): Convert to define_expand. | |
6706 | (*arm_ssadd<mode>3): New define_insn. | |
6707 | (sssub<mode>3): Convert to define_expand. | |
6708 | (*arm_sssub<mode>3): New define_insn. | |
6709 | (ssmulsa3): Convert to define_expand. | |
6710 | (*arm_ssmulsa3): New define_insn. | |
6711 | (usmulusa3): Convert to define_expand. | |
6712 | (*arm_usmulusa3): New define_insn. | |
6713 | (ssmulha3): FAIL if ARM_Q_BIT_READ. | |
6714 | (arm_ssatsihi_shift, arm_usatsihi): Disable for ARM_Q_BIT_READ. | |
6715 | * config/arm/iterators.md (qaddsub_clob_q): New mode attribute. | |
6716 | ||
6717 | 2019-11-07 Martin Liska <mliska@suse.cz> | |
6718 | ||
6719 | PR c++/92354 | |
6720 | * cgraph.c (delete_function_version): Clear global | |
6721 | variable version_info_node if equal to deleted | |
6722 | function. | |
6723 | ||
6724 | 2019-11-07 Martin Liska <mliska@suse.cz> | |
6725 | ||
6726 | * fold-const.c (operand_compare::operand_equal_p): Add comparison | |
6727 | of CONSTRUCTOR_NO_CLEARING. | |
6728 | (operand_compare::hash_operand): Likewise. | |
6729 | ||
6730 | 2019-11-07 Georg-Johann Lay <avr@gjlay.de> | |
6731 | ||
6732 | Support 64-bit double and 64-bit long double configurations. | |
6733 | ||
6734 | PR target/92055 | |
6735 | * config.gcc (tm_defines) [avr]: Set from --with-double=, | |
6736 | --with-long-double=. | |
6737 | * config/avr/t-multilib: Remove. | |
6738 | * config/avr/t-avr: Output of genmultilib.awk is now fully | |
6739 | dynamically generated and no more part of the repo. | |
6740 | (HAVE_DOUBLE_MULTILIB, HAVE_LONG_DOUBLE_MULTILIB): New variables. | |
6741 | Pass them down to... | |
6742 | * config/avr/genmultilib.awk: ...here and handle them. | |
6743 | * config/avr/avr.opt (-mdouble=, avr_double). New option and var. | |
6744 | (-mlong-double=, avr_long_double). New option and var. | |
6745 | * common/config/avr/avr-common.c (opts.h, diagnostic.h): Include. | |
6746 | (TARGET_OPTION_OPTIMIZATION_TABLE) <-mdouble=, -mlong-double=>: | |
6747 | Set default as requested by --with-double= | |
6748 | (TARGET_HANDLE_OPTION): Define to this... | |
6749 | (avr_handle_option): ...new hook worker. | |
6750 | * config/avr/avr.h (DOUBLE_TYPE_SIZE): Define to avr_double. | |
6751 | (LONG_DOUBLE_TYPE_SIZE): Define to avr_long_double. | |
6752 | (avr_double_lib): New proto for spec function. | |
6753 | (EXTRA_SPEC_FUNCTIONS) <double-lib>: Add. | |
6754 | (DRIVER_SELF_SPECS): Call %:double-lib. | |
6755 | * config/avr/avr.c (avr_option_override): Assert | |
6756 | sizeof(long double) >= sizeof(double) for the target. | |
6757 | * config/avr/avr-c.c (avr_cpu_cpp_builtins) | |
6758 | [__HAVE_DOUBLE_MULTILIB__, __HAVE_LONG_DOUBLE_MULTILIB__] | |
6759 | [__HAVE_DOUBLE64__, __HAVE_DOUBLE32__, __DEFAULT_DOUBLE__=] | |
6760 | [__HAVE_LONG_DOUBLE64__, __HAVE_LONG_DOUBLE32__] | |
6761 | [__HAVE_LONG_DOUBLE_IS_DOUBLE__, __DEFAULT_LONG_DOUBLE__=]: | |
6762 | New built-in define depending on --with-double=, --with-long-double=. | |
6763 | * config/avr/driver-avr.c (avr_double_lib): New spec function. | |
6764 | * doc/invoke.tex (AVR Options) <-mdouble=,-mlong-double=>: Doc. | |
6765 | * doc/install.texi (Cross-Compiler-Specific Options) | |
6766 | <--with-double=, --with-long-double=>: Doc. | |
6767 | ||
6768 | 2019-11-07 Richard Biener <rguenther@suse.de> | |
6769 | ||
6770 | * dbgcnt.def (gimple_unroll): New. | |
6771 | * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Check | |
6772 | gimple_unroll debug counter before applying transform. | |
6773 | (try_peel_loop): Likewise. | |
6774 | ||
6775 | 2019-11-07 Kwok Cheung Yeung <kcy@codesourcery.com> | |
6776 | ||
6777 | * ira.c (setup_alloc_regs): Setup no_unit_alloc_regs for | |
6778 | frame pointer in multiple registers. | |
6779 | (ira_setup_eliminable_regset): Setup eliminable_regset, | |
6780 | ira_no_alloc_regs and regs_ever_live for frame pointer in | |
6781 | multiple registers. | |
6782 | ||
6783 | 2019-11-06 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
6784 | ||
6785 | * config/rs6000/vsx.md (xxswapd_<mode>): Add support for V2DF and | |
6786 | V2DI modes. | |
6787 | ||
6788 | 2019-11-06 Jan Hubicka <jh@suse.cz> | |
6789 | ||
6790 | * ggc-common.c (ggc_prune_overhead_list): Do not delete surviving | |
6791 | allocations. | |
6792 | * mem-stats.h (mem_alloc_description<T>::release_object_overhead): | |
6793 | Do not silently ignore summary corruptions. | |
6794 | ||
6795 | 2019-11-06 Richard Sandiford <richard.sandiford@arm.com> | |
6796 | ||
6797 | * tree-vect-loop.c (vect_analyze_loop): Only try to vectorize | |
6798 | the epilogue if there are peeled iterations for it to handle. | |
6799 | ||
6800 | 2019-11-06 Claudiu Zissulescu <claziss@synopsys.com> | |
6801 | ||
6802 | * config/arc/arc.c (arc_split_ior): Add asserts. | |
6803 | (arc_split_mov_const): Likewise. | |
6804 | (arc_check_ior_const): Do not match known short immediate values. | |
6805 | * config/arc/arc.md (movsi): Don't split predicated instructions | |
6806 | (iorsi): Likewise. | |
6807 | ||
6808 | 2019-11-06 Claudiu Zissulescu <claziss@synopsys.com> | |
6809 | ||
6810 | * config/arc/arc.opt (mea): Update help string. | |
6811 | * doc/invoke.texi(ARC): Update mea option info. | |
6812 | ||
6813 | 2019-11-06 Claudiu Zissulescu <claziss@synopsys.com> | |
6814 | ||
6815 | * config/arc/arc.md (zero_extendqihi2_i): Cleanup pattern. | |
6816 | (zero_extendqisi2_ac): Likewise. | |
6817 | (zero_extendhisi2_i): Likewise. | |
6818 | (extendqihi2_i): Likewise. | |
6819 | (extendqisi2_ac): Likewise. | |
6820 | (extendhisi2_i): Likewise. | |
6821 | ||
6822 | 2019-11-06 Richard Biener <rguenther@suse.de> | |
6823 | ||
6824 | * tree-vect-loop.c (vectorizable_reduction): Remember reduction | |
6825 | PHI. Use STMT_VINFO_REDUC_IDX to skip the reduction operand. | |
6826 | Simplify single_defuse_cycle condition. | |
6827 | ||
6828 | 2019-11-06 Richard Sandiford <richard.sandiford@arm.com> | |
6829 | ||
6830 | * tree-vect-loop.c (vect_analyze_loop_2): When vectorizing an | |
6831 | epilogue loop, make sure that the VF is small enough or that | |
6832 | the epilogue loop can be fully-masked. | |
6833 | ||
6834 | 2019-11-06 Richard Sandiford <richard.sandiford@arm.com> | |
6835 | ||
6836 | * tree-vect-loop.c (vect_analyze_loop): Break out of the main | |
6837 | loop when we've finished, rather than returning directly from | |
6838 | the loop. Use a local variable to track whether we're still | |
6839 | searching for the preferred simdlen. Make vect_epilogues | |
6840 | record whether the next iteration should try to treat the | |
6841 | loop as an epilogue. | |
6842 | ||
6843 | 2019-11-06 Vineet Gupta <vgupta@synopsys.com> | |
6844 | ||
6845 | * config/arc/arc-c.c (arc_cpu_cpp_builtins) : Add | |
6846 | __arc_hard_float__, __ARC_HARD_FLOAT__, | |
6847 | __arc_soft_float__, __ARC_SOFT_FLOAT__ | |
6848 | ||
6849 | 2019-11-06 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
6850 | ||
6851 | PR tree-optimization/92317 | |
6852 | * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_guard2): Also | |
6853 | update phi's with constant phi arguments. | |
6854 | ||
6855 | 2019-11-06 Eric Botcazou <ebotcazou@adacore.com> | |
6856 | Alexandre Oliva <oliva@adacore.com> | |
6857 | ||
6858 | * common.opt (-fcallgraph-info[=]): New option. | |
6859 | * doc/invoke.texi (Developer options): Document it. | |
6860 | * opts.c (common_handle_option): Handle it. | |
6861 | * builtins.c (expand_builtin_alloca): Record allocation if | |
6862 | -fcallgraph-info=da. | |
6863 | * calls.c (expand_call): If -fcallgraph-info, record the call. | |
6864 | (emit_library_call_value_1): Likewise. | |
6865 | * flag-types.h (enum callgraph_info_type): New type. | |
6866 | * explow.c: Include stringpool.h. | |
6867 | (set_stack_check_libfunc): Set SET_SYMBOL_REF_DECL on the symbol. | |
6868 | * function.c (allocate_stack_usage_info): New. | |
6869 | (allocate_struct_function): Call it for -fcallgraph-info. | |
6870 | (prepare_function_start): Call it otherwise. | |
6871 | (record_final_call, record_dynamic_alloc): New. | |
6872 | * function.h (struct callinfo_callee): New. | |
6873 | (CALLEE_FROM_CGRAPH_P): New. | |
6874 | (struct callinfo_dalloc): New. | |
6875 | (struct stack_usage): Add callees and dallocs. | |
6876 | (record_final_call, record_dynamic_alloc): Declare. | |
6877 | * gimplify.c (gimplify_decl_expr): Record dynamically-allocated | |
6878 | object if -fcallgraph-info=da. | |
6879 | * optabs-libfuncs.c (build_libfunc_function): Keep SYMBOL_REF_DECL. | |
6880 | * print-tree.h (print_decl_identifier): Declare. | |
6881 | (PRINT_DECL_ORIGIN, PRINT_DECL_NAME, PRINT_DECL_UNIQUE_NAME): New. | |
6882 | * print-tree.c: Include print-tree.h. | |
6883 | (print_decl_identifier): New function. | |
6884 | * toplev.c: Include print-tree.h. | |
6885 | (callgraph_info_file): New global variable. | |
6886 | (callgraph_info_external_printed): Likewise. | |
6887 | (output_stack_usage): Rename to... | |
6888 | (output_stack_usage_1): ... this. Make it static, add cf | |
6889 | parameter. If -fcallgraph-info=su, print stack usage to cf. | |
6890 | If -fstack-usage, use print_decl_identifier for | |
6891 | pretty-printing. | |
6892 | (INDIRECT_CALL_NAME): New. | |
6893 | (dump_final_node_vcg_start): New. | |
6894 | (dump_final_callee_vcg, dump_final_node_vcg): New. | |
6895 | (output_stack_usage): New. | |
6896 | (lang_dependent_init): Open and start file if | |
6897 | -fcallgraph-info. Allocated callgraph_info_external_printed. | |
6898 | (finalize): If callgraph_info_file is not null, finish it, | |
6899 | close it, and release callgraph_info_external_printed. | |
6900 | ||
6901 | 2019-11-06 Gergö Barany <gergo@codesourcery.com> | |
6902 | Frederik Harwath <frederik@codesourcery.com> | |
6903 | Thomas Schwinge <thomas@codesourcery.com> | |
6904 | ||
6905 | * omp-low.c (struct omp_context): New fields | |
6906 | local_reduction_clauses, outer_reduction_clauses. | |
6907 | (new_omp_context): Initialize these. | |
6908 | (scan_sharing_clauses): Record reduction clauses on OpenACC constructs. | |
6909 | (scan_omp_for): Check reduction clauses for incorrect nesting. | |
6910 | ||
6911 | 2019-11-06 Jakub Jelinek <jakub@redhat.com> | |
6912 | ||
6913 | PR inline-asm/92352 | |
6914 | * gimplify.c (gimplify_asm_expr): Reject VLA in output or input | |
6915 | operands with non-memory constraints. | |
6916 | ||
6917 | 2019-11-05 Martin Sebor <msebor@redhat.com> | |
6918 | ||
6919 | PR tree-optimization/92373 | |
6920 | * tree.c (component_ref_size): Only consider initializers of objects | |
6921 | of matching struct types. | |
6922 | Return null for instances of interior zero-length arrays. | |
6923 | ||
6924 | 2019-11-05 Segher Boessenkool <segher@kernel.crashing.org> | |
6925 | ||
6926 | * doc/md.texi (Insn Splitting): Fix combiner documentation. | |
6927 | ||
6928 | 2019-11-05 Jason Merrill <jason@redhat.com> | |
6929 | ||
6930 | PR tree-optimization/91825 | |
6931 | * expmed.c: Reduce -Wmaybe-uninitialized to warning. | |
6932 | ||
6933 | 2019-11-05 Jim Wilson <jimw@sifive.com> | |
6934 | ||
6935 | PR middle-end/92263 | |
6936 | * expr.c (emit_move_complex): Only use BLOCK_OP_NO_LIBCALL when | |
6937 | optimize_insn_for_speed_p is true. | |
6938 | ||
6939 | 2019-11-05 Martin Sebor <msebor@redhat.com> | |
6940 | ||
6941 | PR middle-end/92333 | |
6942 | PR middle-end/82608 | |
6943 | * tree-vrp.c (vrp_prop::check_array_ref): Handle VLAs with constant | |
6944 | size. | |
6945 | * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Use a meaninful | |
6946 | name and location for a temporary variable. | |
6947 | ||
6948 | 2019-11-05 Aldy Hernandez <aldyh@redhat.com> | |
6949 | ||
6950 | * tree-vrp.c (value_range::value_range): Fix whitespace. | |
6951 | (defined_ranges_p): Same. | |
6952 | (range_fold_binary_symbolics_p): Same. | |
6953 | (value_range::intersect_helper): Same. | |
6954 | (value_range::union_helper): Same. | |
6955 | * tree-vrp.h (range_fold_binary_expr): Same. | |
6956 | ||
6957 | 2019-11-04 Martin Sebor <msebor@redhat.com> | |
6958 | ||
6959 | PR middle-end/92341 | |
6960 | PR middle-end/82612 | |
6961 | * tree-sra.c (get_access_for_expr): Fail for out-of-bounds offsets. | |
6962 | * tree-vrp.c (vrp_prop::check_array_ref): Correct index and text | |
6963 | of message printed in a warning for empty arrays. | |
6964 | (vrp_prop::check_mem_ref): Also handle function parameters and | |
6965 | empty arrays. | |
6966 | ||
6967 | 2019-11-05 Richard Biener <rguenther@suse.de> | |
6968 | ||
6969 | PR tree-optimization/92371 | |
6970 | * tree-vect-loop.c (vectorizable_reduction): Set STMT_VINFO_REDUC_DEF | |
6971 | on the original stmt of live stmts in the chain. | |
6972 | (vectorizable_live_operation): Look at the original stmt when | |
6973 | checking STMT_VINFO_REDUC_DEF. | |
6974 | ||
6975 | 2019-11-05 Aldy Hernandez <aldyh@redhat.com> | |
6976 | ||
6977 | * gimple-fold.c, gimple-loop-versioning.cc, | |
6978 | gimple-ssa-evrp-analyze.[ch], gimple-ssa-evrp.c, | |
6979 | gimple-ssa-sprintf.c, ipa-cp.c, ipa-prop.c, ipa-prop.h, | |
6980 | range-op.[hc]*, range.[hc]*, selftest.h, tree-ssa-dom.c, | |
6981 | tree-ssa-strlen.c, tree-ssa-threadedge.c, tree-ssanames.[hc], | |
6982 | tree-vrp.[hc], vr-values.[hc]: Global rename of value_range to | |
6983 | value_range_equiv, and value_range_base to value_range. | |
6984 | ||
6985 | 2019-11-05 Matthew Malcomson <matthew.malcomson@arm.com> | |
6986 | ||
6987 | * expr.c (build_personality_function): Fix generated type to | |
6988 | match actual personality functions. | |
6989 | ||
6990 | 2019-11-05 Matthew Malcomson <matthew.malcomson@arm.com> | |
6991 | ||
6992 | * config/aarch64/aarch64.c (aarch64_handle_attr_cpu): Allocate | |
6993 | enough bytes for the NULL character. | |
6994 | ||
6995 | 2019-11-05 Richard Biener <rguenther@suse.de> | |
6996 | ||
6997 | PR tree-optimization/92280 | |
6998 | * match.pd (BIT_FIELD_REF of CTOR): Unless the original CTOR | |
6999 | had a single use do not create a new CTOR. | |
7000 | * tree-ssa-forwprop.c (simplify_bitfield_ref): Do not re-fold | |
7001 | BIT_FIELD_REF of a CTOR via GENERIC. | |
7002 | ||
7003 | 2019-11-05 Andreas Krebbel <krebbel@linux.ibm.com> | |
7004 | ||
7005 | * config/s390/s390.c (s390_vector_alignment): Check if the value | |
7006 | fits into uhwi before using it. | |
7007 | ||
7008 | 2019-11-05 Martin Liska <mliska@suse.cz> | |
7009 | ||
7010 | * symbol-summary.h: Use ggc_delete. | |
7011 | ||
7012 | 2019-11-05 Anton Youdkevitch <anton.youdkevitch@bell-sw.com> | |
7013 | ||
7014 | * config/aarch64/aarch64.c (thunderx2t99_vector_cost): | |
7015 | Change vec_perm field to 10. | |
7016 | ||
7017 | 2019-11-05 Arnaud Charlet <charlet@adacore.com> | |
7018 | ||
7019 | * doc/install.texi: Further fix syntax for html generation. | |
7020 | ||
7021 | 2019-11-05 Martin Liska <mliska@suse.cz> | |
7022 | ||
7023 | * symbol-summary.h: Rename allocator to m_allocator and | |
7024 | add comment. | |
7025 | ||
7026 | 2019-11-05 Richard Biener <rguenther@suse.de> | |
7027 | ||
7028 | PR tree-optimization/92324 | |
7029 | * tree-vect-loop.c (check_reduction_path): For MIN/MAX require | |
7030 | all signed or unsigned operations. | |
7031 | ||
7032 | 2019-11-05 Jan Hubicka <jh@suse.cz> | |
7033 | ||
7034 | * hsa-brig.c: Include alloc-pool.h | |
7035 | * hsa-dump.c: Likewise. | |
7036 | * hsa-gen.c: Likewise. | |
7037 | * hse-regalloc.c: Likewise. | |
7038 | * ipa-hsa.c: Likewise. | |
7039 | * ipa-predicate.c: Likewise. | |
7040 | * ipa-reference.c: Likewise. | |
7041 | * ipa-sra.c: Likewise. | |
7042 | * omp-expand.c: Likewise. | |
7043 | * omp-general.c: Likewise. | |
7044 | * omp-low.c: Likewise. | |
7045 | * sumbol-summary.h (function_summary_base): Add allocator. | |
7046 | (function_summary<T *>::function_summary): Update construction. | |
7047 | (fast_function_summary<T *, V>::fast_function_summary): Likewise. | |
7048 | (call_summary_base): Add allcator. | |
7049 | (call_summary<T *>::call_summary): Update construction. | |
7050 | (fast_call_summary<T *, V>::fast_call_summary): Likewise. | |
7051 | ||
7052 | 2019-11-05 Jakub Jelinek <jakub@redhat.com> | |
7053 | ||
7054 | PR tree-optimization/91945 | |
7055 | * builtins.c (compute_objsize): For ARRAY_REF, only multiply off | |
7056 | by tpsize if it is both non-NULL and INTEGER_CST, otherwise punt. | |
7057 | Formatting fix. | |
7058 | ||
7059 | 2019-11-05 Aldy Hernandez <aldyh@redhat.com> | |
7060 | ||
7061 | * range-op.cc (wi_set_zero_nonzero_bits): Remove static qualifier. | |
7062 | * range-op.h (wi_set_zero_nonzero_bits): New prototype. | |
7063 | * tree-vrp.h (vrp_set_zero_nonzero_bits): Remove. | |
7064 | * tree-vrp.c (wide_int_range_set_zero_nonzero_bits): Remove. | |
7065 | (vrp_set_zero_nonzero_bits): Move to... | |
7066 | * vr-values.c (vr_set_zero_nonzero_bits): ...here. | |
7067 | (vr_values::simplify_bit_ops_using_ranges): Rename | |
7068 | vrp_set_zero_nonzero_bits to vr_set_zero_nonzero_bits. | |
7069 | ||
7070 | 2019-11-05 Martin Liska <mliska@suse.cz> | |
7071 | ||
7072 | PR c++/92339 | |
7073 | * fold-const.c (operand_compare::hash_operand): Remove | |
7074 | FIELD_DECL handling. | |
7075 | ||
7076 | 2019-11-05 Aldy Hernandez <aldyh@redhat.com> | |
7077 | ||
7078 | * tree-vrp.h (vrp_bitmap_equal_p): Remove. | |
7079 | * tree-vrp.c (vrp_bitmap_equal_p): Move before use and make | |
7080 | static. | |
7081 | ||
7082 | 2019-11-05 Aldy Hernandez <aldyh@redhat.com> | |
7083 | ||
7084 | * tree-vrp.c (value_range_base::operator==): Use equal_p to | |
7085 | properly handle symbolics. | |
7086 | (range_compatible_p): Remove. | |
7087 | ||
7088 | 2019-11-04 Kamlesh Kumar <kamleshbhalui@gmail.com> | |
7089 | ||
7090 | * common.opt (-fabi-version): Document =14. | |
7091 | * doc/invoke.texi (C++ Dialect Options): Likewise. | |
7092 | ||
7093 | 2019-11-04 Aldy Hernandez <aldyh@redhat.com> | |
7094 | ||
7095 | * tree-vrp.c (value_range_base::set): Do not special case pointers. | |
7096 | ||
7097 | 2019-11-04 Tobias Burnus <tobias@codesourcery.com> | |
7098 | ||
7099 | * config/gcn/gcn.c (gcn_omp_device_kind_arch_isa): New function. | |
7100 | (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to | |
7101 | gcn_omp_device_kind_arch_isa. | |
7102 | * config/gcn/t-omp-device: New file. | |
7103 | * configure.ac: Support gcn for omp_device_property. | |
7104 | * configure: Regenerate. | |
7105 | ||
7106 | 2019-11-04 Aldy Hernandez <aldyh@redhat.com> | |
7107 | ||
7108 | * tree-vrp.h (vrp_val_min): Remove handle_pointers argument. | |
7109 | (vrp_val_max): Same. | |
7110 | (vrp_val_is_min): Same. | |
7111 | (vrp_val_is_max): Same. | |
7112 | (value_range_base::nonzero_p): Remove last argument to | |
7113 | vrp_val_is_max. | |
7114 | * tree-vrp.c (vrp_val_min): Remove handle_pointers argument. | |
7115 | (vrp_val_max): Same. | |
7116 | (vrp_val_is_min): Same. | |
7117 | (vrp_val_is_max): Same. | |
7118 | (value_range_base::set_varying): Remove last argument to vrp_val*. | |
7119 | (value_range_base::dump): Same. | |
7120 | (value_range_base::set): Same. | |
7121 | (value_range_base::normalize_symbolics): Same. | |
7122 | (value_range_base::num_pairs): Same. | |
7123 | (value_range_base::lower_bound): Same. | |
7124 | (value_range_base::upper_bound): Same. | |
7125 | (ranges_from_anti_range): Remove handle_pointers argument. | |
7126 | (value_range_base::singleton_p): Remove last argument to | |
7127 | ranges_from_anti_range. | |
7128 | ||
7129 | 2019-11-04 Jan Hubicka <jh@suse.cz> | |
7130 | ||
7131 | * ipa-reference.c (init_function_info): Initialize | |
7132 | info->global.statics_read. | |
7133 | ||
7134 | 2019-11-04 Aldy Hernandez <aldyh@redhat.com> | |
7135 | ||
7136 | * tree-vrp.c (value_range_base::invert): Use constructors to build | |
7137 | range. | |
7138 | ||
7139 | 2019-11-04 Aldy Hernandez <aldyh@redhat.com> | |
7140 | ||
7141 | * tree-vrp.c (range_int_cst_singleton_p): Remove. | |
7142 | * tree-vrp.h (range_int_cst_singleton_p): Remove. | |
7143 | ||
7144 | 2019-11-04 Aldy Hernandez <aldyh@redhat.com> | |
7145 | ||
7146 | * tree-vrp.c (value_range_base::normalize_addresses): Handle | |
7147 | VR_UNDEFINED. | |
7148 | ||
7149 | 2019-11-04 Aldy Hernandez <aldyh@redhat.com> | |
7150 | ||
7151 | * tree-vrp.c (dump_assert_info): New. | |
7152 | (dump_asserts_info): New. | |
7153 | ||
7154 | 2019-11-04 Jan Hubicka <jh@suse.cz> | |
7155 | ||
7156 | * ipa-inline-transform.c: Include ipa-utils.h | |
7157 | (inline_call): Set thunk_expansion flag. | |
7158 | * ipa-utils.h (thunk_expansion): Declare. | |
7159 | * ipa-devirt.c (thunk_expansion): New global var. | |
7160 | (devirt_node_removal_hook): Do not invalidate cache while | |
7161 | doing thunk expansion. | |
7162 | ||
7163 | 2019-11-04 Tamar Christina <tamar.christina@arm.com> | |
7164 | ||
7165 | * tree-vect-slp.c (vectorize_slp_instance_root_stmt): Initialize rstmt. | |
7166 | ||
7167 | 2019-11-04 Martin Sebor <msebor@redhat.com> | |
7168 | ||
7169 | PR tree-optimization/92349 | |
7170 | * tree-vrp.c (vrp_prop::check_array_ref): Avoid assuming struct | |
7171 | memebers have constant sizes. | |
7172 | ||
7173 | 2019-11-04 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
7174 | ||
7175 | * tree-vect-loop.c (vect_analyze_loop): Remove orig_loop_vinfo | |
7176 | parameter. | |
7177 | * tree-vectorizer.h (vect_analyze_loop): Update declaration. | |
7178 | * tree-vectorizer.c (try_vectorize_loop_1): Update calls to | |
7179 | vect_analyze_loop. | |
7180 | ||
7181 | 2019-11-04 Joel Hutton <Joel.Hutton@arm.com> | |
7182 | ||
7183 | * expr.c (store_constructor): Modify to handle single element vectors. | |
7184 | * tree-vect-slp.c (vect_analyze_slp_instance): Add case for vector | |
7185 | constructors. | |
7186 | (vect_slp_check_for_constructors): New function. | |
7187 | (vect_slp_analyze_bb_1): Call new function to check for vector | |
7188 | constructors. | |
7189 | (vectorize_slp_instance_root_stmt): New function. | |
7190 | (vect_schedule_slp): Call new function to vectorize root stmt of vector | |
7191 | constructors. | |
7192 | * tree-vectorizer.h (SLP_INSTANCE_ROOT_STMT): New field. | |
7193 | ||
7194 | 2019-11-04 Richard Biener <rguenther@suse.de> | |
7195 | ||
7196 | PR tree-optimization/92345 | |
7197 | * tree-vect-loop.c (vect_is_simple_reduction): Return whether | |
7198 | we produced a reduction chain. | |
7199 | (vect_analyze_scalar_cycles_1): Do not add reduction chains to | |
7200 | LOOP_VINFO_REDUCTIONS. | |
7201 | ||
7202 | 2019-11-04 Jan Hubicka <jh@suse.cz> | |
7203 | ||
7204 | * cgraphclones.c (cgraph_node::create_version_clone): Do not | |
7205 | duplicate summaries. | |
7206 | * ipa-fnsummary.c (ipa_fn_summary_alloc): Allocate size summary | |
7207 | first. | |
7208 | (ipa_fn_summary_t::duplicate): Use get instead of get_create to | |
7209 | access call summaries. | |
7210 | (dump_ipa_call_summary): Be ready for missing edge summaries. | |
7211 | (analyze_function_body): Use get instead of get_create to access | |
7212 | edge summary. | |
7213 | (estimate_calls_size_and_time): Do not access summaries of | |
7214 | inlined edges; sanity check they are missing. | |
7215 | (ipa_call_context::estimate_size_and_time): Use get instead | |
7216 | of get_create to access node summary. | |
7217 | (inline_update_callee_summaries): Do not update depth of | |
7218 | inlined edge. | |
7219 | (ipa_merge_fn_summary_after_inlining): Remove inline edge from | |
7220 | growth caches. | |
7221 | (ipa_merge_fn_summary_after_inlining): Use get instead | |
7222 | of get_create. | |
7223 | * ipa-fnsummary.h (ipa_remove_from_growth_caches): Declare. | |
7224 | * ipa-inline-analyssi.c (edge_growth_cache): Turn to | |
7225 | fast summary. | |
7226 | (initialize_growth_caches): Update. | |
7227 | (do_estimate_edge_time): Remove redundant copy of context. | |
7228 | (ipa_remove_from_growth_caches): New function. | |
7229 | * ipa-inline.c (flatten_function): Update overall summary | |
7230 | only when optimizing. | |
7231 | (inline_to_all_callers): Update overall summary of function | |
7232 | inlined to. | |
7233 | * ipa-inline.h (edge_growth_cache): Turn to fast summary. | |
7234 | * symbol-summary.h (call_summary_base): Set m_initialize_when_cloning | |
7235 | to false. | |
7236 | ||
7237 | 2019-11-04 Richard Biener <rguenther@suse.de> | |
7238 | ||
7239 | * system.h: Include malloc.h if INCLUDE_MALLOC_H and HAVE_MALLINFO. | |
7240 | * ggc-common.c: Remove inclusion of malloc.h, define INCLUDE_MALLOC_H. | |
7241 | ||
7242 | 2019-11-04 David Edelsohn <dje.gcc@gmail.com> | |
7243 | ||
7244 | * ggc-common.c: Include system.h before malloc.h. | |
7245 | ||
7246 | 2019-11-04 Alexandre Oliva <oliva@adacore.com> | |
7247 | ||
7248 | * configure.ac: Pass --enable-obsolete=* and | |
7249 | --enable-option-checking=* down to build configure, and fail | |
7250 | if it fails. AC_SUBST HAVE_AUTO_BUILD. | |
7251 | * configure: Rebuild. | |
7252 | * Makefile.in [HAVE_AUTO_BUILD] (auto-build.h): New rule. | |
7253 | [HAVE_AUTO_BUILD] (config.status): Depend on auto-build.h. | |
7254 | ||
7255 | 2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
7256 | ||
7257 | * config.in: Regenerate. | |
7258 | * config/msp430/msp430.c (msp430_option_override): Emit an error if | |
7259 | -mtiny-printf is used without GCC being configured with | |
7260 | --enable-newlib-nano-formatted-io. | |
7261 | * config/msp430/msp430.h (LINK_SPEC): Pass | |
7262 | "--wrap puts --wrap printf" when -mtiny-printf is used. | |
7263 | * config/msp430/msp430.opt: Document -mtiny-printf. | |
7264 | * configure: Regenerate. | |
7265 | * configure.ac: Enable --enable-newlib-nano-formatted-io flag. | |
7266 | Define HAVE_NEWLIB_NANO_FORMATTED_IO if | |
7267 | --enable-newlib-nano-formatted-io is passed. | |
7268 | * doc/invoke.texi: Document -mtiny-printf. | |
7269 | ||
7270 | 2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
7271 | ||
7272 | * configure: Regenerate. | |
7273 | ||
7274 | 2019-11-04 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
7275 | ||
7276 | * config/msp430/driver-msp430.c | |
7277 | (msp430_get_linker_devices_include_path): New spec function. | |
7278 | * config/msp430/msp430-devices.c (msp430_dirname): New function. | |
7279 | (extract_devices_dir_from_exec_prefix): New function. | |
7280 | (extract_devices_dir_from_collect_gcc): New function. | |
7281 | (msp430_check_env_var_for_devices): New function. | |
7282 | (msp430_check_path_for_devices): Use xstrdup instead of ASTRDUP. | |
7283 | (parse_devices_csv): Call msp430_check_env_var_for_devices if | |
7284 | devices.csv was not found using other methods. | |
7285 | * config/msp430/msp430-devices.h (msp430_check_env_var_for_devices): | |
7286 | New prototype. | |
7287 | (msp430_dirname): Likewise. | |
7288 | * config/msp430/msp430.c (msp430_register_pre_includes): New function. | |
7289 | * config/msp430/msp430.h (EXTRA_SPEC_FUNCTIONS): Add | |
7290 | msp430_get_linker_devices_include_path. | |
7291 | (TARGET_EXTRA_PRE_INCLUDES): Define. | |
7292 | * doc/invoke.texi: Document new ways of searching for support files. | |
7293 | ||
7294 | 2019-11-04 Richard Biener <rguenther@suse.de> | |
7295 | ||
7296 | PR tree-optimization/92301 | |
7297 | * tree-vect-stmts.c (process_use): Force reduction PHI defs live | |
7298 | as required by epilogue generation | |
7299 | ||
7300 | 2019-11-04 Martin Liska <mliska@suse.cz> | |
7301 | ||
7302 | PR ipa/92304 | |
7303 | * fold-const.c (operand_compare::hash_operand): Fix field | |
7304 | hashing of CONSTRUCTOR. | |
7305 | ||
7306 | 2019-11-04 Martin Liska <mliska@suse.cz> | |
7307 | ||
7308 | * ggc.h (ggc_delete): New function. | |
7309 | * ipa-fnsummary.c (ipa_free_fn_summary): Use it. | |
7310 | * ipa-prop.c (ipa_free_all_edge_args): Likewise. | |
7311 | (ipa_free_all_node_params): Likewise. | |
7312 | * ipa-sra.c (ipa_sra_analysis): Likewise. | |
7313 | ||
7314 | 2019-11-02 Jan Hubicka <hubicka@ucw.cz> | |
7315 | ||
7316 | * ipa-fnsummary.c (set_cond_stmt_execution_predicate, | |
7317 | set_switch_stmt_execution_predicate, compute_bb_predicates, | |
7318 | will_be_nonconstant_expr_predicate, | |
7319 | phi_result_unknown_predicate, | |
7320 | analyze_function_body): Pass arround params summary. | |
7321 | (ipa_call_context::duplicate_from): New comment; | |
7322 | only duplicate useful values. | |
7323 | (ipa_call_context::equal_to): Only compare useful values. | |
7324 | (remap_edge_summaries): Pass params_summary. | |
7325 | (remap_hint_predicate): Likewise. | |
7326 | (ipa_merge_fn_summary_after_inlining): Likewise. | |
7327 | (inline_read_section): Initialize params summary used flags. | |
7328 | * ipa-predicate.c (predicate::remap_after_inlining): Pass | |
7329 | around param_summary. | |
7330 | (add_condition): Initialized used params summary flags. | |
7331 | * ipa-predicate.h (inline_param_summary::equals_to): Make const. | |
7332 | (inline_param_summary::useless_p): New predicate. | |
7333 | (remap_after_inlining, add_condition): Update prototype | |
7334 | * ipa-prop.c (ipa_populate_param_decls): Watch overflow in | |
7335 | move_cost. | |
7336 | (ipa_note_param_call): Add parameter POLYMORPHIC; update params | |
7337 | summaries. | |
7338 | (ipa_analyze_indirect_call_uses): Update use of ipa_note_param_call. | |
7339 | (ipa_analyze_virtual_call_uses): Likewise. | |
7340 | (update_indirect_edges_after_inlining): Update param summaries. | |
7341 | (ipa_print_node_params): Print used flags. | |
7342 | (ipa_read_indirect_edge_info): Update param summareis. | |
7343 | * ipa-prop.h (ipa_param_descriptor): Add | |
7344 | used_by_ipa_predicates, used_by_indirect_call | |
7345 | and used_by_polymorphic_call. | |
7346 | (ipa_set_param_used_by_ipa_predicates, | |
7347 | ipa_set_param_used_by_indirect_call, | |
7348 | ipa_set_param_used_by_polymorphic_call, | |
7349 | ipa_is_param_used_by_ipa_predicates, | |
7350 | ipa_is_param_used_by_indirect_call, | |
7351 | ipa_is_param_used_by_polymorphic_call): New inline functions. | |
7352 | ||
7353 | 2019-11-02 Jan Hubicka <hubicka@ucw.cz> | |
7354 | ||
7355 | * ipa-fnsummary.c (ipa_call_context::duplicate_from): New | |
7356 | member function. | |
7357 | (ipa_call_context::release): Add ALL parameter. | |
7358 | (ipa_call_context::equal_to): New member function. | |
7359 | * ipa-fnsummary.h (ipa_call_context): Add empty constructor; | |
7360 | duplicate_form, release, equal_to and exists_p member functoins. | |
7361 | * ipa-inline-analysis.c (node_context_cache_entry): New | |
7362 | class. | |
7363 | (node_context_summary): Likewise. | |
7364 | (node_context_cache, node_context_cache_hit, node_context_cache_miss, | |
7365 | node_context_clear): New static vars. | |
7366 | (initialize_growth_caches): New function. | |
7367 | (free_growth_caches): Also delete node_context_cache; output stats. | |
7368 | (do_estimate_edge_time): Cache contexts. | |
7369 | (reset_node_cache): New function. | |
7370 | * ipa-inline.c (reset_edge_caches): Reset also node cache. | |
7371 | (inline_small_functions): Initialize growth caches. | |
7372 | * ipa-inline.h (reset_node_cache, initialize_growth_caches): | |
7373 | Declare. | |
7374 | * ipa-predicate.h (inline_param_summary::equal_to): New. | |
7375 | * ipa-prop.c (ipa_agg_jf_item::equal_to): New. | |
7376 | * ipa-prop.h (ipa_agg_jf_item): Declare equal_to member function. | |
7377 | (ipa_agg_jump_function): Implement equal_to member function. | |
7378 | ||
7379 | 2019-11-02 Jan Hubicka <hubicka@ucw.cz> | |
7380 | ||
7381 | * ipa-fnsummary.c (inline_read_section): Set vector size | |
7382 | ahead of time. | |
7383 | ||
7384 | 2019-11-02 Jan Hubicka <hubicka@ucw.cz> | |
7385 | ||
7386 | * ipa-fnsummary.c (ipa_call_context): New constructor. | |
7387 | (estimate_node_size_and_time): Turn to ... | |
7388 | (ipa_call_context::estimate_size_and_time): ... this one. | |
7389 | (ipa_call_context::release): New. | |
7390 | * ipa-fnsummary.h (ipa_call_context): New class. | |
7391 | (estimate_node_size_and_time): Remove. | |
7392 | * ipa-inline-analysis.c (do_estimate_edge_time, do_estimate_edge_size, | |
7393 | do_estimate_edge_hints): Update. | |
7394 | ||
7395 | 2019-11-02 Jan Hubicka <hubicka@ucw.cz> | |
7396 | ||
7397 | * config.in: Regenerate. | |
7398 | * configure: Regenerate. | |
7399 | * configure.ac: Check for mallinfo. | |
7400 | * ggc-common.c: Include malloc.h if available; | |
7401 | include options.h | |
7402 | (report_heap_memory_use): New functoin. | |
7403 | * ggc-page.c (ggc_grow): Do not print "start". | |
7404 | * ggc.h (report_heap_memory_use): Declare. | |
7405 | * pases.c (execute_one_pass): Report memory after IPA passes. | |
7406 | (ipa_read_summaries_1): Likewise. | |
7407 | (ipa_read_optimization_summaries_1): Likewise. | |
7408 | ||
7409 | 2019-11-02 Jakub Jelinek <jakub@redhat.com> | |
7410 | ||
7411 | * gimplify.h (omp_construct_selector_matches): Change return | |
7412 | type to int, add a new SCORES argument. | |
7413 | * gimplify.c (omp_construct_selector_matches): Likewise. If | |
7414 | SCORES is non-NULL, compute scores of each construct. | |
7415 | * omp-general.h (omp_get_context_selector): Declare. | |
7416 | * omp-general.c (omp_maybe_offloaded, omp_context_selector_matches): | |
7417 | Adjust omp_construct_selector_matches callers. | |
7418 | (omp_get_context_selector): New function, moved from c-family/c-omp.c. | |
7419 | (omp_context_compute_score): New function. | |
7420 | (omp_resolve_declare_variant): Compute scores and decide based on | |
7421 | that. | |
7422 | ||
7423 | PR bootstrap/92314 | |
7424 | * configure.ac: Don't look for omp-device-properties files from | |
7425 | installed offloading compilers. Instead add tmake_file snippets | |
7426 | for configured offloading targets and use files they generate. | |
7427 | * Makefile.in (install): Don't depend on | |
7428 | install-omp-device-properties. | |
7429 | (install-omp-device-properties): Remove goal. | |
7430 | * config/i386/t-omp-device: New file. | |
7431 | * config/i386/t-intelmic (omp-device-properties): Remove goal. | |
7432 | * config/nvptx/t-omp-device: New file. | |
7433 | * config/nvptx/t-nvptx (omp-device-properties): Remove goal. | |
7434 | * configure: Regenerated. | |
7435 | ||
7436 | * omp-general.h (omp_context_selector_set_compare): Declare. | |
7437 | * omp-general.c (omp_construct_simd_compare, | |
7438 | omp_context_selector_props_compare, omp_context_selector_set_compare, | |
7439 | omp_context_selector_compare): New functions. | |
7440 | (omp_resolve_declare_variant): Prune variants that are strict subset | |
7441 | of another variant. | |
7442 | ||
7443 | 2019-11-01 Martin Sebor <msebor@redhat.com> | |
7444 | ||
7445 | PR middle-end/91679 | |
7446 | PR middle-end/91647 | |
7447 | PR middle-end/91463 | |
7448 | PR middle-end/92312 | |
7449 | * doc/invoke.texi (-Wzero-length-bounds): Document. | |
7450 | * gimple-match-head.c (try_conditional_simplification): Use memcpy | |
7451 | instead of a hand-rolled loop to avoid PR 92323. | |
7452 | * tree-vrp.c (vrp_prop::check_array_ref): Handle trailing arrays | |
7453 | with initializers. | |
7454 | (vrp_prop::check_mem_ref): Handle declared struct objects. | |
7455 | * tree.c (last_field): New function. | |
7456 | (array_at_struct_end_p): Handle MEM_REF. | |
7457 | (get_initializer_for): New helper. | |
7458 | (component_ref_size): Add argument. Rename locals. Call | |
7459 | get_initializer_for instead of fold_ctor_reference. Correct handling | |
7460 | of flexible array members. | |
7461 | * wide-int.h (generic_wide_int <storage>::sign_mask): Assert invariant. | |
7462 | ||
7463 | 2019-11-01 Kewen Lin <linkw@gcc.gnu.org> | |
7464 | ||
7465 | * config/rs6000/rs6000-modes.def (V2SF, V2SI): New modes. | |
7466 | * config/rs6000/vsx.md (UNSPEC_VSX_CVSPSXDS, | |
7467 | UNSPEC_VSX_CVSPUXDS): Remove. | |
7468 | (vsx_xvcvspdp): New define_expand, old define_insn split to... | |
7469 | (vsx_xvcvspdp_be): ... this. New. And... | |
7470 | (vsx_xvcvspdp_le): ... this. New. | |
7471 | (vsx_xvcv<su>xwdp): New define_expand, old define_insn split to... | |
7472 | (vsx_xvcv<su>xwdp_be): ... this. New. And... | |
7473 | (vsx_xvcv<su>xwdp_le): ... this. New. | |
7474 | (vsx_xvcvsp<su>xds): New define_expand, old define_insn split to... | |
7475 | (vsx_xvcvsp<su>xds_be): ... this. New. And... | |
7476 | (vsx_xvcvsp<su>xds_le): ... this. New. | |
7477 | ||
7478 | 2019-11-01 Kewen Lin <linkw@gcc.gnu.org> | |
7479 | ||
7480 | * config/rs6000/vsx.md (UNSPEC_VSX_CVSXWSP, UNSPEC_VSX_CVUXWSP, | |
7481 | UNSPEC_VSX_XVCVSXDDP, UNSPEC_VSX_XVCVUXDDP, | |
7482 | UNSPEC_VSX_XVCVDPSXDS, UNSPEC_VSX_XVCVDPUXDS, | |
7483 | UNSPEC_VSX_XVCVSPSXWS): Remove. | |
7484 | (vsx_xvcv<su>xddp, vsx_xvcvdp<su>xds, vsx_xvcvsp<su>xws, | |
7485 | vsx_xvcv<su>xwsp): Update define_insn RTL patterns. | |
7486 | ||
7487 | 2019-11-01 Kewen Lin <linkw@gcc.gnu.org> | |
7488 | ||
7489 | * config/rs6000/vsx.md (vsx_xvcdpsp): Remove define_insn. | |
7490 | (UNSPEC_VSX_XVCDPSP): Remove. | |
7491 | * config/rs6000/rs6000.c (rs6000_generate_float2_double_code): | |
7492 | Replace gen_vsx_xvcdpsp by gen_vsx_xvcvdpsp. | |
7493 | ||
7494 | 2019-11-01 Tobias Burnus <tobias@codesourcery.com> | |
7495 | ||
7496 | * hooks.c (hook_tree_tree_bool_null): New. | |
7497 | * hooks.h (hook_tree_tree_bool_null): Declare. | |
7498 | * langhooks-def.h (LANG_HOOKS_OMP_ARRAY_DATA): Define. | |
7499 | (LANG_HOOKS_DECLS): Add it. | |
7500 | * langhooks.h (lang_hooks_for_decls): Add omp_array_data. | |
7501 | * omp-low.c (install_var_field): New mode for Fortran descriptor arrays. | |
7502 | (lower_omp_target): Handle Fortran array with descriptor in | |
7503 | OMP_CLAUSE_USE_DEVICE_ADDR/OMP_CLAUSE_USE_DEVICE_PTR. | |
7504 | ||
7505 | 2019-10-31 Richard Sandiford <richard.sandiford@arm.com> | |
7506 | ||
7507 | * config/aarch64/aarch64-sve-builtins.cc (register_builtin_types): | |
7508 | Assert that the type we store in abi_vector_types is its own | |
7509 | main variant. | |
7510 | (svbool_type_p): Don't apply TYPE_MAIN_VARIANT here. | |
7511 | ||
7512 | 2019-10-31 Richard Earnshaw <rearnsha@arm.com> | |
7513 | ||
7514 | * config/arm/arm.c (arm_legitimize_address): Don't form negative offsets | |
7515 | from a CONST_INT address when TARGET_THUMB2. | |
7516 | ||
7517 | 2019-10-31 Richard Earnshaw <rearnsha@arm.com> | |
7518 | ||
7519 | * config/arm/arm.md (add_not_cin): New insn. | |
7520 | (add_not_shift_cin): Likewise. | |
7521 | ||
7522 | 2019-10-31 Martin Liska <mliska@suse.cz> | |
7523 | ||
7524 | * ipa-icf-gimple.c (func_checker::compare_tree_ssa_label): Remove. | |
7525 | * ipa-icf-gimple.h: Remove declaration from compare_tree_ssa_label | |
7526 | and compare_memory_operand. | |
7527 | ||
7528 | 2019-10-31 Jakub Jelinek <jakub@redhat.com> | |
7529 | ||
7530 | * configure.ac: Compute and substitute omp_device_properties and | |
7531 | omp_device_property_deps. | |
7532 | * Makefile.in (generated_files): Add omp-device-properties.h. | |
7533 | (omp-general.o): Depend on omp-device-properties.h. | |
7534 | (omp_device_properties): New make variable. | |
7535 | (omp-device-properties.h, s-omp-device-properties-h, | |
7536 | install-omp-device-properties): New goals. | |
7537 | (install): Depend on install-omp-device-properties for accelerators. | |
7538 | * target.def (TARGET_OMP_DEVICE_KIND_ARCH_ISA): New target hook. | |
7539 | * target.h (enum omp_device_kind_arch_isa): New enum. | |
7540 | * doc/tm.texi.in: Add placeholder for TARGET_OMP_DEVICE_KIND_ARCH_ISA | |
7541 | documentation. | |
7542 | * omp-general.c: Include omp-device-properties.h. | |
7543 | (omp_max_simt_vf): Expect OFFLOAD_TARGET_NAMES to be separated by | |
7544 | colon instead of comma. | |
7545 | (omp_offload_device_kind_arch_isa, omp_maybe_offloaded): New | |
7546 | functions. | |
7547 | (omp_context_selector_matches): Implement device set arch/isa | |
7548 | selectors, improve device set kind selector handling. | |
7549 | * config/i386/i386-options.h (ix86_omp_device_kind_arch_isa): Declare. | |
7550 | * config/i386/i386.c (TARGET_SIMD_CLONE_ADJUST, | |
7551 | TARGET_SIMD_CLONE_USABLE): Formatting fix. | |
7552 | (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to | |
7553 | ix86_omp_device_kind_arch_isa. | |
7554 | * config/i386/i386-options.c (struct ix86_target_opts): Move type | |
7555 | definition from ix86_target_string to file scope. | |
7556 | (isa2_opts, isa_opts): Moved arrays from ix86_target_string function | |
7557 | to file scope. | |
7558 | (ix86_omp_device_kind_arch_isa): New function. | |
7559 | (ix86_target_string): Moved struct ix86_target_opts, isa2_opts and | |
7560 | isa_opts definitions to file scope. | |
7561 | * config/i386/t-intelmic (omp-device-properties): New goal. | |
7562 | * config/nvptx/t-nvptx (omp-device-properties): Likewise. | |
7563 | * config/nvptx/nvptx.c (nvptx_omp_device_kind_arch_isa): New function. | |
7564 | (TARGET_OMP_DEVICE_KIND_ARCH_ISA): Redefine to | |
7565 | nvptx_omp_device_kind_arch_isa. | |
7566 | * configure: Regenerate. | |
7567 | * doc/tm.texi: Regenerate. | |
7568 | ||
7569 | PR middle-end/92231 | |
7570 | * tree.h (fndecl_built_in_p): Use fndecl_built_in_p instead of | |
7571 | DECL_BUILT_IN in comment. Remove redundant ()s around return | |
7572 | argument. | |
7573 | * tree.c (free_lang_data_in_decl): Check if var is FUNCTION_DECL | |
7574 | before calling fndecl_built_in_p. | |
7575 | * gimple-fold.c (gimple_fold_stmt_to_constant_1): Check if | |
7576 | TREE_OPERAND (fn, 0) is a FUNCTION_DECL before calling | |
7577 | fndecl_built_in_p on it. | |
7578 | ||
7579 | 2019-10-31 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
7580 | ||
7581 | * params.def (PARAM_VECT_EPILOGUES_NOMASK): Enable by default. | |
7582 | ||
7583 | 2019-10-31 Martin Liska <mliska@suse.cz> | |
7584 | ||
7585 | * config/arm/arm.c (arm_get_pcs_model): Remove usage | |
7586 | of cgraph_local_info and use local_info_node instead. | |
7587 | * config/bfin/bfin.c (bfin_load_pic_reg): Likewise. | |
7588 | (bfin_function_ok_for_sibcall): Likewise. | |
7589 | * config/c6x/c6x.c (c6x_function_ok_for_sibcall): Likewise. | |
7590 | (must_reload_pic_reg_p): Likewise. | |
7591 | ||
7592 | 2019-10-31 Jakub Jelinek <jakub@redhat.com> | |
7593 | ||
7594 | PR c++/90947 | |
7595 | * tree.h (type_initializer_zero_p): Remove. | |
7596 | * tree.c (type_initializer_zero_p): Remove. | |
7597 | ||
7598 | 2019-10-30 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
7599 | ||
7600 | * doc/invoke.texi (-Wshadow, -Wshadow=global | |
7601 | -Wshadow=local, -Wshadow=compatible-local): Update documentation. | |
7602 | ||
7603 | 2019-10-30 Tobias Burnus <tobias@codesourcery.com> | |
7604 | ||
7605 | * gimplify.c (gimplify_scan_omp_clauses): Remove FE-generated | |
7606 | GOMP_MAP_TO_PSET and GOMP_MAP_POINTER mapping for 'target update' | |
7607 | and 'target exit data'. | |
7608 | ||
7609 | 2019-10-30 Martin Jambor <mjambor@suse.cz> | |
7610 | ||
7611 | ipa/92278 | |
7612 | * cgraph.c (cgraph_edge::possibly_call_in_translation_unit_p): Fix | |
7613 | availability comparison. | |
7614 | ||
7615 | 2019-10-30 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
7616 | ||
7617 | * config/msp430/msp430.c (msp430_expand_helper): Support expansion of | |
7618 | calls to __mspabi_mpy* functions. | |
7619 | * config/msp430/msp430.md (mulhisi3): New define_expand. | |
7620 | (umulhisi3): New define_expand. | |
7621 | (*mulhisi3_inline): Use old mulhisi3 define_insn. | |
7622 | (*umulhisi3_inline): Use old umulhisi3 define_insn. | |
7623 | ||
7624 | 2019-10-30 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
7625 | ||
7626 | * config/msp430/msp430.c (msp430_check_index_not_high_mem): New. | |
7627 | (msp430_check_plus_not_high_mem): New. | |
7628 | (msp430_op_not_in_high_mem): Use new functions to check if the operand | |
7629 | might be in low memory. | |
7630 | Indicate that a 16-bit absolute address is in lower memory. | |
7631 | ||
7632 | 2019-10-30 Martin Jambor <mjambor@suse.cz> | |
7633 | ||
7634 | * ipa-prop.c (ipa_compute_jump_functions_for_bb): Fix the call to | |
7635 | ultimate_alias_target. | |
7636 | ||
7637 | 2019-10-30 Richard Biener <rguenther@suse.de> | |
7638 | ||
7639 | PR tree-optimization/92275 | |
7640 | * tree-vect-loop-manip.c (slpeel_update_phi_nodes_for_loops): | |
7641 | Copy all loop-closed PHIs. | |
7642 | ||
7643 | 2019-10-30 Martin Liska <mliska@suse.cz> | |
7644 | ||
7645 | * ipa-icf-gimple.c (func_checker::compare_ssa_name): Use | |
7646 | const_tree as function argument. | |
7647 | (func_checker::compare_decl): Likewise. | |
7648 | (func_checker::operand_equal_p): Likewise. | |
7649 | (func_checker::compare_variable_decl): Likewise. | |
7650 | (func_checker::parse_labels): Likewise. | |
7651 | * ipa-icf-gimple.h: Likewise. | |
7652 | ||
7653 | 2019-10-30 Martin Liska <mliska@suse.cz> | |
7654 | ||
7655 | * ipa-icf-gimple.c (func_checker::compatible_types_p): | |
7656 | Do not compare alias sets. It's handled by operand_equal_p. | |
7657 | ||
7658 | 2019-10-30 Martin Liska <mliska@suse.cz> | |
7659 | ||
7660 | * ipa-icf-gimple.c (func_checker::func_checker): Do not | |
7661 | initialize m_compare_polymorphic. | |
7662 | (func_checker::compare_decl): Do not compare polymorphic types. | |
7663 | * ipa-icf-gimple.h (m_compare_polymorphic): Remove. | |
7664 | * ipa-icf.c (sem_function::equals_private): Do not call | |
7665 | compare_polymorphic_p. | |
7666 | ||
7667 | 2019-10-30 Martin Liska <mliska@suse.cz> | |
7668 | ||
7669 | * ipa-icf-gimple.c (func_checker::compare_ssa_name): Call | |
7670 | compare_operand. | |
7671 | (func_checker::compare_memory_operand): Remove. | |
7672 | (func_checker::compare_cst_or_decl): Remove. | |
7673 | (func_checker::operand_equal_valueize): Do not handle | |
7674 | FIELD_DECL. | |
7675 | (func_checker::compare_gimple_call): Call compare_operand. | |
7676 | (func_checker::compare_gimple_assign): Likewise. | |
7677 | * ipa-icf-gimple.h: Remove compare_cst_or_decl. | |
7678 | * ipa-icf.c (sem_function::icf_handled_component_p): Remove. | |
7679 | * ipa-icf.h (icf_handled_component_p): Remove. | |
7680 | ||
7681 | 2019-10-30 Martin Liska <mliska@suse.cz> | |
7682 | ||
7683 | * ipa-icf-gimple.c (func_checker::hash_operand): New. | |
7684 | (func_checker::compare_cst_or_decl): Remove handling | |
7685 | of FIELD_DECL. | |
7686 | (func_checker::compare_operand): Transform to ... | |
7687 | (func_checker::operand_equal_p): ... this. | |
7688 | * ipa-icf-gimple.h (class func_checker): Add | |
7689 | operand_equal_p and hash_operand. | |
7690 | * ipa-icf.c (sem_function::equals_private): Fix | |
7691 | pushing and popping of cfun. | |
7692 | ||
7693 | 2019-10-30 Martin Liska <mliska@suse.cz> | |
7694 | ||
7695 | * fold-const.c (operand_equal_p): Move to ... | |
7696 | (operand_compare::operand_equal_p): ... here. | |
7697 | (operand_compare::verify_hash_value): New. | |
7698 | (add_expr): Move to ... | |
7699 | (operand_compare::hash_operand): ... here. | |
7700 | * fold-const.h (operand_equal_p): Move to the class. | |
7701 | (class operand_compare): New. | |
7702 | * tree.c (add_expr): Remove. | |
7703 | ||
7704 | 2019-10-30 Martin Liska <mliska@suse.cz> | |
7705 | ||
7706 | * fold-const.c (operand_equal_p): Support OBJ_TYPE_REF. | |
7707 | * tree.c (add_expr): Hash parts of OBJ_TYPE_REF. | |
7708 | ||
7709 | 2019-10-30 Martin Liska <mliska@suse.cz> | |
7710 | ||
7711 | PR lto/91393 | |
7712 | PR lto/88220 | |
7713 | * cgraph.c (cgraph_node::get_create): Overwrite node->order | |
7714 | from a first_clone in order to get proper LTO section | |
7715 | in LTO stream. | |
7716 | (cgraph_node::get_untransformed_body): | |
7717 | Use lto_get_section_data where symtab_node::order | |
7718 | must be provided. | |
7719 | * cgraphclones.c (cgraph_node::find_replacement): | |
7720 | Update also symbol order. | |
7721 | * ipa-fnsummary.c (ipa_fn_summary_read): | |
7722 | Use new function lto_get_summary_section_data. | |
7723 | * ipa-hsa.c (ipa_hsa_read_summary): Likewise. | |
7724 | * ipa-icf.c (sem_item_optimizer::read_summary): | |
7725 | Likewise. | |
7726 | * ipa-prop.c (ipa_prop_read_jump_functions): | |
7727 | Likewise. | |
7728 | (ipcp_read_transformation_summaries): Likewise. | |
7729 | * ipa-sra.c (ipa_sra_read_summary): Likewise. | |
7730 | * lto-cgraph.c (input_node): Add also order_base. | |
7731 | (input_varpool_node): Likewise. | |
7732 | (input_cgraph_1): Assign the order_base. | |
7733 | (input_cgraph_opt_summary): Use new lto_get_summary_section_data. | |
7734 | * lto-opts.c (lto_write_options): Pass new argument. | |
7735 | * lto-section-in.c (lto_get_section_data): Add new argumente order. | |
7736 | (lto_get_summary_section_data): New. | |
7737 | (lto_get_raw_section_data): Add order argument. | |
7738 | (lto_create_simple_input_block): Likewise. | |
7739 | * lto-section-out.c (lto_destroy_simple_output_block): | |
7740 | Likewise. | |
7741 | * lto-streamer-in.c (lto_input_toplevel_asms): | |
7742 | Use lto_get_summary_section_data. | |
7743 | (lto_input_mode_table): Likewise. | |
7744 | * lto-streamer-out.c (produce_asm): Pass symtab_node::order. | |
7745 | (lto_output_toplevel_asms): Pass new argument. | |
7746 | (copy_function_or_variable): Likewise. | |
7747 | (produce_lto_section):Likewise. | |
7748 | (produce_symtab): Likewise. | |
7749 | (lto_write_mode_table): Likewise. | |
7750 | (produce_asm_for_decls): Likewise. | |
7751 | * lto-streamer.c (lto_get_section_name): Concat symbol name | |
7752 | and symbol order. | |
7753 | * lto-streamer.h (lto_get_section_data): Add order argument. | |
7754 | (lto_get_summary_section_data): New. | |
7755 | (lto_get_raw_section_data): Add order argument. | |
7756 | (lto_get_section_name): Likewise. | |
7757 | * varpool.c (varpool_node::get_constructor): Pass order argument. | |
7758 | ||
7759 | 2019-10-30 Jakub Jelinek <jakub@redhat.com> | |
7760 | ||
7761 | PR tree-optimization/92262 | |
7762 | * tree-ssa-loop-ivopts.c (get_debug_computation_at): Don't unshare | |
7763 | ubase or cbase here. | |
7764 | (remove_unused_ivs): Unshare comp before using it. | |
7765 | ||
7766 | 2019-10-30 Jan Hubicka <hubicka@ucw.cz> | |
7767 | ||
7768 | * ipa-prop.c (update_jump_functions_after_inlining): | |
7769 | Watch for missing summaries. | |
7770 | ||
7771 | 2019-10-30 Richard Biener <rguenther@suse.de> | |
7772 | ||
7773 | PR tree-optimization/65930 | |
7774 | * tree-vect-loop.c (vect_is_simple_reduction): For reduction | |
7775 | chains also allow a leading and trailing conversion. | |
7776 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle | |
7777 | intermediate reduction chains. | |
7778 | (vect_analyze_slp_instance): Likewise. Build a SLP | |
7779 | node for a trailing conversion manually. | |
7780 | ||
7781 | 2019-10-30 Martin Liska <mliska@suse.cz> | |
7782 | ||
7783 | * cgraph.c (cgraph_node::local_info): Transform to ... | |
7784 | (cgraph_node::local_info_node): ... this. | |
7785 | (cgraph_node::dump): Remove cgraph_local_info and | |
7786 | put its fields directly into cgraph_node. | |
7787 | (cgraph_node::get_availability): Likewise. | |
7788 | (cgraph_node::make_local): Likewise. | |
7789 | (cgraph_node::verify_node): Likewise. | |
7790 | * cgraph.h (struct GTY): Likewise. | |
7791 | * cgraphclones.c (set_new_clone_decl_and_node_flags): Likewise. | |
7792 | (duplicate_thunk_for_node): Likewise. | |
7793 | (cgraph_node::create_clone): Likewise. | |
7794 | (cgraph_node::create_virtual_clone): Likewise. | |
7795 | (cgraph_node::create_version_clone): Likewise. | |
7796 | * cgraphunit.c (cgraph_node::reset): Likewise. | |
7797 | (cgraph_node::finalize_function): Likewise. | |
7798 | (cgraph_node::add_new_function): Likewise. | |
7799 | (analyze_functions): Likewise. | |
7800 | * combine.c (setup_incoming_promotions): Likewise. | |
7801 | * config/i386/i386.c (ix86_function_regparm): Likewise. | |
7802 | (ix86_function_sseregparm): Likewise. | |
7803 | (init_cumulative_args): Likewise. | |
7804 | * ipa-cp.c (determine_versionability): Likewise. | |
7805 | (count_callers): Likewise. | |
7806 | (set_single_call_flag): Likewise. | |
7807 | (initialize_node_lattices): Likewise. | |
7808 | (estimate_local_effects): Likewise. | |
7809 | (create_specialized_node): Likewise. | |
7810 | (identify_dead_nodes): Likewise. | |
7811 | * ipa-fnsummary.c (compute_fn_summary): Likewise. | |
7812 | (ipa_fn_summary_generate): Likewise. | |
7813 | * ipa-hsa.c (check_warn_node_versionable): Likewise. | |
7814 | (process_hsa_functions): Likewise. | |
7815 | * ipa-icf.c (set_local): Likewise. | |
7816 | * ipa-inline-analysis.c (initialize_inline_failed): Likewise. | |
7817 | * ipa-inline.c (speculation_useful_p): Likewise. | |
7818 | * ipa-profile.c (ipa_propagate_frequency): Likewise. | |
7819 | (ipa_profile): Likewise. | |
7820 | * ipa-split.c (split_function): Likewise. | |
7821 | (execute_split_functions): Likewise. | |
7822 | * ipa-sra.c (ipa_sra_preliminary_function_checks): Likewise. | |
7823 | (ipa_sra_ipa_function_checks): Likewise. | |
7824 | * ipa-visibility.c (function_and_variable_visibility): Likewise. | |
7825 | * ipa.c (symbol_table::remove_unreachable_nodes): Likewise. | |
7826 | * lto-cgraph.c (lto_output_node): Likewise. | |
7827 | (input_overwrite_node): Likewise. | |
7828 | * multiple_target.c (expand_target_clones): Likewise. | |
7829 | * omp-simd-clone.c (simd_clone_create): Likewise. | |
7830 | * trans-mem.c (expand_call_tm): Likewise. | |
7831 | (ipa_tm_mayenterirr_function): Likewise. | |
7832 | (ipa_tm_diagnose_tm_safe): Likewise. | |
7833 | (ipa_tm_diagnose_transaction): Likewise. | |
7834 | (ipa_tm_create_version): Likewise. | |
7835 | (ipa_tm_transform_calls_redirect): Likewise. | |
7836 | (ipa_tm_execute): Likewise. | |
7837 | * tree-inline.c (expand_call_inline): Likewise. | |
7838 | ||
7839 | 2019-10-29 Martin Liska <mliska@suse.cz> | |
7840 | ||
7841 | * symbol-summary.h (function_summary): Pass memory location | |
7842 | to underlaying hash_map (or vec). | |
7843 | (V>::fast_function_summary): Likewise. | |
7844 | ||
7845 | 2019-10-29 Martin Liska <mliska@suse.cz> | |
7846 | ||
7847 | * ggc.h (ggc_alloc_no_dtor): New function. | |
7848 | * ipa-fnsummary.c (ipa_free_fn_summary): Call | |
7849 | destructor and ggc_free. | |
7850 | (ipa_free_size_summary): Call delete instead | |
7851 | of release. | |
7852 | * ipa-fnsummary.h: Use new function ggc_alloc_no_dtor. | |
7853 | * ipa-prop.c (ipa_check_create_edge_args): Likewise. | |
7854 | (ipa_free_all_edge_args): Call destructor and ggc_free. | |
7855 | (ipa_free_all_node_params): Likewise. | |
7856 | (ipcp_free_transformation_sum): Likewise. | |
7857 | * ipa-prop.h (ipa_check_create_node_params): | |
7858 | Call new ggc_alloc_no_dtor. | |
7859 | * ipa-sra.c (ipa_sra_generate_summary): Likewise. | |
7860 | (ipa_sra_analysis): Call destructor and ggc_free. | |
7861 | Replace release with delete operator. | |
7862 | * symbol-summary.h (release): Remove .. | |
7863 | (V>::~fast_function_summary): and move logic here. | |
7864 | Likewise for other classes. | |
7865 | ||
7866 | 2019-10-29 Richard Biener <rguenther@suse.de> | |
7867 | ||
7868 | PR tree-optimization/92260 | |
7869 | * tree-vect-slp.c (vect_get_constant_vectors): Special-case | |
7870 | lane-reducing ops. | |
7871 | ||
7872 | 2019-10-29 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
7873 | ||
7874 | PR tree-optimization/88915 | |
7875 | * tree-ssa-loop-niter.h (simplify_replace_tree): Change declaration. | |
7876 | * tree-ssa-loop-niter.c (simplify_replace_tree): Add context parameter | |
7877 | and make the valueize function pointer also take a void pointer. | |
7878 | * tree-ssa-sccvn.c (vn_valueize_wrapper): New function to wrap | |
7879 | around vn_valueize, to call it without a context. | |
7880 | (process_bb): Use vn_valueize_wrapper instead of vn_valueize. | |
7881 | * tree-vect-loop.c (_loop_vec_info): Initialize epilogue_vinfos. | |
7882 | (~_loop_vec_info): Release epilogue_vinfos. | |
7883 | (vect_analyze_loop_costing): Use knowledge of main VF to estimate | |
7884 | number of iterations of epilogue. | |
7885 | (vect_analyze_loop_2): Adapt to analyse main loop for all supported | |
7886 | vector sizes when vect-epilogues-nomask=1. Also keep track of lowest | |
7887 | versioning threshold needed for main loop. | |
7888 | (vect_analyze_loop): Likewise. | |
7889 | (find_in_mapping): New helper function. | |
7890 | (update_epilogue_loop_vinfo): New function. | |
7891 | (vect_transform_loop): When vectorizing epilogues re-use analysis done | |
7892 | on main loop and call update_epilogue_loop_vinfo to update it. | |
7893 | * tree-vect-loop-manip.c (vect_update_inits_of_drs): No longer insert | |
7894 | stmts on loop preheader edge. | |
7895 | (vect_do_peeling): Enable skip-vectors when doing loop versioning if | |
7896 | we decided to vectorize epilogues. Update epilogues NITERS and | |
7897 | construct ADVANCE to update epilogues data references where needed. | |
7898 | * tree-vectorizer.h (_loop_vec_info): Add epilogue_vinfos. | |
7899 | (vect_do_peeling, vect_update_inits_of_drs, | |
7900 | determine_peel_for_niter, vect_analyze_loop): Add or update | |
7901 | declarations. | |
7902 | * tree-vectorizer.c (try_vectorize_loop_1): Make sure to use already | |
7903 | created loop_vec_info's for epilogues when available. Otherwise analyse | |
7904 | epilogue separately. | |
7905 | ||
7906 | 2019-10-29 Richard Biener <rguenther@suse.de> | |
7907 | ||
7908 | * doc/tree-ssa.texi (Immediate Uses): Fix FOR_EACH_IMM_USE_STMT | |
7909 | example. | |
7910 | ||
7911 | 2019-10-29 Richard Sandiford <richard.sandiford@arm.com> | |
7912 | ||
7913 | * tree-vect-stmts.c (vectorizable_condition): Get the reduction | |
7914 | index for the COND_EXPR from stmt_info rather than reduc_info. | |
7915 | ||
7916 | 2019-10-29 Richard Biener <rguenther@suse.de> | |
7917 | ||
7918 | PR tree-optimization/65930 | |
7919 | * tree-vect-loop.c (check_reduction_path): Relax single-use | |
7920 | check allowing out-of-loop uses. | |
7921 | (vect_is_simple_reduction): SLP reduction chains cannot have | |
7922 | intermediate stmts used outside of the loop. | |
7923 | (vect_create_epilog_for_reduction): The adjustment might need | |
7924 | to be converted. | |
7925 | (vectorizable_reduction): Annotate live stmts of the reduction | |
7926 | chain with STMT_VINFO_REDUC_DEF. | |
7927 | * tree-vect-stms.c (process_use): Remove no longer true asserts. | |
7928 | ||
7929 | 2019-10-29 Richard Sandiford <richard.sandiford@arm.com> | |
7930 | ||
7931 | * calls.c (pass_by_reference): Leave the target to decide whether | |
7932 | POLY_INT_CST-sized arguments should be passed by value or reference, | |
7933 | rather than forcing them to be passed by reference. | |
7934 | (must_pass_in_stack_var_size): Likewise. | |
7935 | * config/aarch64/aarch64.md (LAST_SAVED_REGNUM): Redefine from | |
7936 | V31_REGNUM to P15_REGNUM. | |
7937 | * config/aarch64/aarch64-protos.h (aarch64_init_cumulative_args): | |
7938 | Take an extra "silent_p" parameter, defaulting to false. | |
7939 | (aarch64_sve::svbool_type_p): Declare. | |
7940 | (aarch64_sve::nvectors_if_data_type): Likewise. | |
7941 | * config/aarch64/aarch64.h (NUM_PR_ARG_REGS): New macro. | |
7942 | (aarch64_frame::reg_offset): Turn into poly_int64s. | |
7943 | (aarch64_frame::save_regs_size): Likewise. | |
7944 | (aarch64_frame::below_hard_fp_saved_regs_size): New field. | |
7945 | (aarch64_frame::sve_callee_adjust): Likewise. | |
7946 | (aarch64_frame::spare_reg_reg): Likewise. | |
7947 | (ARM_PCS_SVE): New arm_pcs value. | |
7948 | (CUMULATIVE_ARGS::aapcs_nprn): New field. | |
7949 | (CUMULATIVE_ARGS::aapcs_nextnprn): Likewise. | |
7950 | (CUMULATIVE_ARGS::silent_p): Likewise. | |
7951 | (BITS_PER_SVE_PRED): New macro. | |
7952 | * config/aarch64/aarch64.c (handle_aarch64_vector_pcs_attribute): New | |
7953 | function. Reject aarch64_vector_pcs attributes on SVE functions. | |
7954 | (aarch64_attribute_table): Use the above handler. | |
7955 | (aarch64_sve_abi): New function. | |
7956 | (aarch64_sve_argument_p): Likewise. | |
7957 | (aarch64_returns_value_in_sve_regs_p): Likewise. | |
7958 | (aarch64_takes_arguments_in_sve_regs_p): Likewise. | |
7959 | (aarch64_fntype_abi): Check for SVE functions and return the SVE PCS | |
7960 | descriptor for them. | |
7961 | (aarch64_simd_decl_p): Delete. | |
7962 | (aarch64_emit_cfi_for_reg_p): New function. | |
7963 | (aarch64_reg_save_mode): Remove the fndecl argument and instead use | |
7964 | crtl->abi to choose the mode for FP registers. Handle the SVE PCS. | |
7965 | (aarch64_hard_regno_call_part_clobbered): Do not treat FP registers | |
7966 | as partly clobbered for the SVE PCS. | |
7967 | (aarch64_function_ok_for_sibcall): Check whether the two functions | |
7968 | use the same ABI, rather than checking specifically for whether | |
7969 | they're aarch64_vector_pcs functions. | |
7970 | (aarch64_pass_by_reference): Raise an error for attempts to pass | |
7971 | SVE arguments when SVE is disabled. Pass SVE arguments by reference | |
7972 | if there are not enough free registers left, or if the argument is | |
7973 | variadic. | |
7974 | (aarch64_function_value): Handle SVE predicates, vectors and tuples. | |
7975 | (aarch64_return_in_memory): Do not return SVE predicates, vectors and | |
7976 | tuples in memory. | |
7977 | (aarch64_layout_arg): Take a function_arg_info rather than | |
7978 | individual properties. Handle SVE predicates, vectors and tuples. | |
7979 | Raise an error if they are passed to unprototyped functions. | |
7980 | (aarch64_function_arg): If the silent_p flag is set, suppress the | |
7981 | usual error about using float registers without TARGET_FLOAT. | |
7982 | (aarch64_init_cumulative_args): Take a silent_p parameter and store | |
7983 | it in the cumulative_args structure. Initialize aapcs_nprn and | |
7984 | aapcs_nextnprn. If the silent_p flag is set, suppress the usual | |
7985 | error about using float registers without TARGET_FLOAT. | |
7986 | If the silent_p flag is not set, also raise an error about | |
7987 | using SVE functions when SVE is disabled. | |
7988 | (aarch64_function_arg_advance): Update the call to aarch64_layout_arg, | |
7989 | and call it for SVE functions too. Update aapcs_nprn similarly | |
7990 | to the other register counts. | |
7991 | (aarch64_layout_frame): If a big-endian function needs to save | |
7992 | and restore Z8-Z15, search for a spare predicate that it can use. | |
7993 | Store SVE predicates at the bottom of the register save area, | |
7994 | followed by SVE vectors, then followed by the normal slots. | |
7995 | Keep pointing the hard frame pointer at the base of the normal slots, | |
7996 | above the SVE vectors. Update the various frame creation and | |
7997 | tear-down strategies for the new layout, initializing the new | |
7998 | sve_callee_adjust field. Add an additional layout for frames | |
7999 | whose saved registers are all SVE registers. | |
8000 | (aarch64_register_saved_on_entry): Cope with poly_int64 reg_offsets. | |
8001 | (aarch64_return_address_signing_enabled): Likewise. | |
8002 | (aarch64_push_regs, aarch64_pop_regs): Update calls to | |
8003 | aarch64_reg_save_mode. | |
8004 | (aarch64_adjust_sve_callee_save_base): New function. | |
8005 | (aarch64_add_cfa_expression): Move earlier in file. Take the | |
8006 | saved register as an rtx rather than a register number and use | |
8007 | its mode for the MEM slot. | |
8008 | (aarch64_save_callee_saves): Remove the mode argument and instead | |
8009 | use aarch64_reg_save_mode to get the mode of each save slot. | |
8010 | Add a hard_fp_valid_p parameter. Cope with poly_int64 register | |
8011 | offsets. Allow GP offsets to be saved at a VL-based offset from | |
8012 | the stack, handling this case using the frame pointer if available | |
8013 | or a temporary register otherwise. Use ST1D to save Z8-Z15 for | |
8014 | big-endian SVE functions; use normal moves for other SVE saves. | |
8015 | Only mark the save as frame-related if aarch64_emit_cfi_for_reg_p | |
8016 | returns true. Add explicit CFA notes when not storing via the | |
8017 | stack pointer. Do not try to pair SVE saves. | |
8018 | (aarch64_restore_callee_saves): Cope with poly_int64 register | |
8019 | offsets. Use LD1D to restore Z8-Z15 for big-endian SVE functions; | |
8020 | use normal moves for other SVE restores. Only add CFA restore notes | |
8021 | if aarch64_emit_cfi_for_reg_p returns true. Do not try to pair | |
8022 | SVE restores. | |
8023 | (aarch64_get_separate_components): Always keep the first SVE save | |
8024 | in the prologue if we need to use it as a stack probe. Don't allow | |
8025 | Z8-Z15 saves and loads to be shrink-wrapped for big-endian targets. | |
8026 | Likewise the spare predicate register that they need. Update the | |
8027 | offset calculation to account for the SVE save area. Use the | |
8028 | appropriate range check for SVE LDR and STR instructions. | |
8029 | (aarch64_components_for_bb): Cope with poly_int64 reg_offsets. | |
8030 | (aarch64_process_components): Likewise. Update the offset | |
8031 | calculation to account for the SVE save area. Only mark the | |
8032 | save as frame-related if aarch64_emit_cfi_for_reg_p returns true. | |
8033 | Do not try to pair SVE saves. | |
8034 | (aarch64_allocate_and_probe_stack_space): Cope with poly_int64 | |
8035 | reg_offsets. When handling the final allocation, expect the | |
8036 | first SVE register save to be part of the initial allocation | |
8037 | and for it to act as a probe at SP. Account for the SVE callee | |
8038 | save area in the dump information. | |
8039 | (aarch64_expand_prologue): Update the frame diagram. Fold the | |
8040 | SVE callee allocation into the initial allocation if stack clash | |
8041 | protection is enabled. Use new variables to track the offset | |
8042 | of the frame chain (and hard frame pointer) from the current | |
8043 | stack pointer, and likewise the offset of the bottom of the | |
8044 | register save area. Update calls to aarch64_save_callee_saves | |
8045 | and aarch64_add_cfa_expression. Apply sve_callee_adjust before | |
8046 | saving the FP&SIMD registers. Save the predicate registers. | |
8047 | (aarch64_expand_epilogue): Take below_hard_fp_saved_regs_size | |
8048 | into account when setting the stack pointer from the frame pointer, | |
8049 | and when deciding whether we can inherit the initial adjustment | |
8050 | amount from the prologue. Restore the predicate registers after | |
8051 | the vector registers, then apply sve_callee_adjust, then restore | |
8052 | the general registers. | |
8053 | (aarch64_secondary_reload): Don't use secondary SVE reloads | |
8054 | for VNx16BImode. | |
8055 | (aapcs_vfp_sub_candidate): Assert that the type is not an SVE type. | |
8056 | (aarch64_short_vector_p): Return false for SVE types. | |
8057 | (aarch64_vfp_is_call_or_return_candidate): Initialize *is_ha | |
8058 | at the start of the function. Return false for SVE types. | |
8059 | (aarch64_asm_output_variant_pcs): Output .variant_pcs for SVE | |
8060 | functions too. | |
8061 | (TARGET_STRICT_ARGUMENT_NAMING): Redefine to request strict naming. | |
8062 | * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<mode>_le): Extend | |
8063 | to big-endian targets for bytewise moves. | |
8064 | (*aarch64_sve_mov<mode>_be): Exclude the bytewise case. | |
8065 | ||
8066 | 2019-10-29 Richard Sandiford <richard.sandiford@arm.com> | |
8067 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
8068 | Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
8069 | ||
8070 | * config.gcc (aarch64*-*-*): Add arm_sve.h to extra_headers. | |
8071 | Add aarch64-sve-builtins.o, aarch64-sve-builtins-shapes.o and | |
8072 | aarch64-sve-builtins-base.o to extra_objs. Add | |
8073 | aarch64-sve-builtins.h and aarch64-sve-builtins.cc to target_gtfiles. | |
8074 | * config/aarch64/t-aarch64 (aarch64-sve-builtins.o): New rule. | |
8075 | (aarch64-sve-builtins-shapes.o): Likewise. | |
8076 | (aarch64-sve-builtins-base.o): New rules. | |
8077 | * config/aarch64/aarch64-c.c (aarch64_pragma_aarch64): New function. | |
8078 | (aarch64_resolve_overloaded_builtin): Likewise. | |
8079 | (aarch64_check_builtin_call): Likewise. | |
8080 | (aarch64_register_pragmas): Install aarch64_resolve_overloaded_builtin | |
8081 | and aarch64_check_builtin_call in targetm. Register the GCC aarch64 | |
8082 | pragma. | |
8083 | * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPRFOP): New macro. | |
8084 | (aarch64_svprfop): New enum. | |
8085 | (AARCH64_BUILTIN_SVE): New aarch64_builtin_class enum value. | |
8086 | (aarch64_sve_int_mode, aarch64_sve_data_mode): Declare. | |
8087 | (aarch64_fold_sve_cnt_pat, aarch64_output_sve_prefetch): Likewise. | |
8088 | (aarch64_output_sve_cnt_pat_immediate): Likewise. | |
8089 | (aarch64_output_sve_ptrues, aarch64_sve_ptrue_svpattern_p): Likewise. | |
8090 | (aarch64_sve_sqadd_sqsub_immediate_p, aarch64_sve_ldff1_operand_p) | |
8091 | (aarch64_sve_ldnf1_operand_p, aarch64_sve_prefetch_operand_p) | |
8092 | (aarch64_ptrue_all_mode, aarch64_convert_sve_data_to_pred): Likewise. | |
8093 | (aarch64_expand_sve_dupq, aarch64_replace_reg_mode): Likewise. | |
8094 | (aarch64_sve::init_builtins, aarch64_sve::handle_arm_sve_h): Likewise. | |
8095 | (aarch64_sve::builtin_decl, aarch64_sve::builtin_type_p): Likewise. | |
8096 | (aarch64_sve::mangle_builtin_type): Likewise. | |
8097 | (aarch64_sve::resolve_overloaded_builtin): Likewise. | |
8098 | (aarch64_sve::check_builtin_call, aarch64_sve::gimple_fold_builtin) | |
8099 | (aarch64_sve::expand_builtin): Likewise. | |
8100 | * config/aarch64/aarch64.c (aarch64_sve_data_mode): Make public. | |
8101 | (aarch64_sve_int_mode): Likewise. | |
8102 | (aarch64_ptrue_all_mode): New function. | |
8103 | (aarch64_convert_sve_data_to_pred): Make public. | |
8104 | (svprfop_token): New function. | |
8105 | (aarch64_output_sve_prefetch): Likewise. | |
8106 | (aarch64_fold_sve_cnt_pat): Likewise. | |
8107 | (aarch64_output_sve_cnt_pat_immediate): Likewise. | |
8108 | (aarch64_sve_move_pred_via_while): Use gen_while with UNSPEC_WHILE_LO | |
8109 | instead of gen_while_ult. | |
8110 | (aarch64_replace_reg_mode): Make public. | |
8111 | (aarch64_init_builtins): Call aarch64_sve::init_builtins. | |
8112 | (aarch64_fold_builtin): Handle AARCH64_BUILTIN_SVE. | |
8113 | (aarch64_gimple_fold_builtin, aarch64_expand_builtin): Likewise. | |
8114 | (aarch64_builtin_decl, aarch64_builtin_reciprocal): Likewise. | |
8115 | (aarch64_mangle_type): Call aarch64_sve::mangle_type. | |
8116 | (aarch64_sve_sqadd_sqsub_immediate_p): New function. | |
8117 | (aarch64_sve_ptrue_svpattern_p): Likewise. | |
8118 | (aarch64_sve_pred_valid_immediate): Check | |
8119 | aarch64_sve_ptrue_svpattern_p. | |
8120 | (aarch64_sve_ldff1_operand_p, aarch64_sve_ldnf1_operand_p) | |
8121 | (aarch64_sve_prefetch_operand_p, aarch64_output_sve_ptrues): New | |
8122 | functions. | |
8123 | * config/aarch64/aarch64.md (UNSPEC_LDNT1_SVE, UNSPEC_STNT1_SVE) | |
8124 | (UNSPEC_LDFF1_GATHER, UNSPEC_PTRUE, UNSPEC_WHILE_LE, UNSPEC_WHILE_LS) | |
8125 | (UNSPEC_WHILE_LT, UNSPEC_CLASTA, UNSPEC_UPDATE_FFR) | |
8126 | (UNSPEC_UPDATE_FFRT, UNSPEC_RDFFR, UNSPEC_WRFFR) | |
8127 | (UNSPEC_SVE_LANE_SELECT, UNSPEC_SVE_CNT_PAT, UNSPEC_SVE_PREFETCH) | |
8128 | (UNSPEC_SVE_PREFETCH_GATHER, UNSPEC_SVE_COMPACT, UNSPEC_SVE_SPLICE): | |
8129 | New unspecs. | |
8130 | * config/aarch64/iterators.md (SI_ONLY, DI_ONLY, VNx8HI_ONLY) | |
8131 | (VNx2DI_ONLY, SVE_PARTIAL, VNx8_NARROW, VNx8_WIDE, VNx4_NARROW) | |
8132 | (VNx4_WIDE, VNx2_NARROW, VNx2_WIDE, PRED_HSD): New mode iterators. | |
8133 | (UNSPEC_ADR, UNSPEC_BRKA, UNSPEC_BRKB, UNSPEC_BRKN, UNSPEC_BRKPA) | |
8134 | (UNSPEC_BRKPB, UNSPEC_PFIRST, UNSPEC_PNEXT, UNSPEC_CNTP, UNSPEC_SADDV) | |
8135 | (UNSPEC_UADDV, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTMAD) | |
8136 | (UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_CMPEQ_WIDE): New unspecs. | |
8137 | (UNSPEC_COND_CMPGE_WIDE, UNSPEC_COND_CMPGT_WIDE): Likewise. | |
8138 | (UNSPEC_COND_CMPHI_WIDE, UNSPEC_COND_CMPHS_WIDE): Likewise. | |
8139 | (UNSPEC_COND_CMPLE_WIDE, UNSPEC_COND_CMPLO_WIDE): Likewise. | |
8140 | (UNSPEC_COND_CMPLS_WIDE, UNSPEC_COND_CMPLT_WIDE): Likewise. | |
8141 | (UNSPEC_COND_CMPNE_WIDE, UNSPEC_COND_FCADD90, UNSPEC_COND_FCADD270) | |
8142 | (UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90, UNSPEC_COND_FCMLA180) | |
8143 | (UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN): Likewise. | |
8144 | (UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX, UNSPEC_COND_FSCALE): Likewise. | |
8145 | (UNSPEC_LASTA, UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE): Likewise. | |
8146 | (UNSPEC_LSHIFTRT_WIDE, UNSPEC_LDFF1, UNSPEC_LDNF1): Likewise. | |
8147 | (Vesize): Handle partial vector modes. | |
8148 | (self_mask, narrower_mask, sve_lane_con, sve_lane_pair_con): New | |
8149 | mode attributes. | |
8150 | (UBINQOPS, ANY_PLUS, SAT_PLUS, ANY_MINUS, SAT_MINUS): New code | |
8151 | iterators. | |
8152 | (s, paired_extend, inc_dec): New code attributes. | |
8153 | (SVE_INT_ADDV, CLAST, LAST): New int iterators. | |
8154 | (SVE_INT_UNARY): Add UNSPEC_RBIT. | |
8155 | (SVE_FP_UNARY, SVE_FP_UNARY_INT): New int iterators. | |
8156 | (SVE_FP_BINARY, SVE_FP_BINARY_INT): Likewise. | |
8157 | (SVE_COND_FP_UNARY): Add UNSPEC_COND_FRECPX. | |
8158 | (SVE_COND_FP_BINARY): Add UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and | |
8159 | UNSPEC_COND_FMULX. | |
8160 | (SVE_COND_FP_BINARY_INT, SVE_COND_FP_ADD): New int iterators. | |
8161 | (SVE_COND_FP_SUB, SVE_COND_FP_MUL): Likewise. | |
8162 | (SVE_COND_FP_BINARY_I1): Add UNSPEC_COND_FMAX and UNSPEC_COND_FMIN. | |
8163 | (SVE_COND_FP_BINARY_REG): Add UNSPEC_COND_FMULX. | |
8164 | (SVE_COND_FCADD, SVE_COND_FP_MAXMIN, SVE_COND_FCMLA) | |
8165 | (SVE_COND_INT_CMP_WIDE, SVE_FP_TERNARY_LANE, SVE_CFP_TERNARY_LANE) | |
8166 | (SVE_WHILE, SVE_SHIFT_WIDE, SVE_LDFF1_LDNF1, SVE_BRK_UNARY) | |
8167 | (SVE_BRK_BINARY, SVE_PITER): New int iterators. | |
8168 | (optab): Handle UNSPEC_SADDV, UNSPEC_UADDV, UNSPEC_FRECPE, | |
8169 | UNSPEC_FRECPS, UNSPEC_RSQRTE, UNSPEC_RSQRTS, UNSPEC_RBIT, | |
8170 | UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART, UNSPEC_FMLA, UNSPEC_FMLS, | |
8171 | UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270, | |
8172 | UNSPEC_FEXPA, UNSPEC_FTSMUL, UNSPEC_FTSSEL, UNSPEC_COND_FCADD90, | |
8173 | UNSPEC_COND_FCADD270, UNSPEC_COND_FCMLA, UNSPEC_COND_FCMLA90, | |
8174 | UNSPEC_COND_FCMLA180, UNSPEC_COND_FCMLA270, UNSPEC_COND_FMAX, | |
8175 | UNSPEC_COND_FMIN, UNSPEC_COND_FMULX, UNSPEC_COND_FRECPX and | |
8176 | UNSPEC_COND_FSCALE. | |
8177 | (maxmin_uns): Handle UNSPEC_COND_FMAX and UNSPEC_COND_FMIN. | |
8178 | (binqops_op, binqops_op_rev, last_op): New int attributes. | |
8179 | (su): Handle UNSPEC_SADDV and UNSPEC_UADDV. | |
8180 | (fn, ab): New int attributes. | |
8181 | (cmp_op): Handle UNSPEC_COND_CMP*_WIDE and UNSPEC_WHILE_*. | |
8182 | (while_optab_cmp, brk_op, sve_pred_op): New int attributes. | |
8183 | (sve_int_op): Handle UNSPEC_SMUL_HIGHPART, UNSPEC_UMUL_HIGHPART, | |
8184 | UNSPEC_ASHIFT_WIDE, UNSPEC_ASHIFTRT_WIDE, UNSPEC_LSHIFTRT_WIDE and | |
8185 | UNSPEC_RBIT. | |
8186 | (sve_fp_op): Handle UNSPEC_FRECPE, UNSPEC_FRECPS, UNSPEC_RSQRTE, | |
8187 | UNSPEC_RSQRTS, UNSPEC_FMLA, UNSPEC_FMLS, UNSPEC_FEXPA, UNSPEC_FTSMUL, | |
8188 | UNSPEC_FTSSEL, UNSPEC_COND_FMAX, UNSPEC_COND_FMIN, UNSPEC_COND_FMULX, | |
8189 | UNSPEC_COND_FRECPX and UNSPEC_COND_FSCALE. | |
8190 | (sve_fp_op_rev): Handle UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and | |
8191 | UNSPEC_COND_FMULX. | |
8192 | (rot): Handle UNSPEC_COND_FCADD* and UNSPEC_COND_FCMLA*. | |
8193 | (brk_reg_con, brk_reg_opno): New int attributes. | |
8194 | (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs2_operand): Handle | |
8195 | UNSPEC_COND_FMAX, UNSPEC_COND_FMIN and UNSPEC_COND_FMULX. | |
8196 | (sve_pred_fp_rhs2_immediate): Handle UNSPEC_COND_FMAX and | |
8197 | UNSPEC_COND_FMIN. | |
8198 | (max_elem_bits): New int attribute. | |
8199 | (min_elem_bits): Handle UNSPEC_RBIT. | |
8200 | * config/aarch64/predicates.md (subreg_lowpart_operator): Handle | |
8201 | TRUNCATE as well as SUBREG. | |
8202 | (ascending_int_parallel, aarch64_simd_reg_or_minus_one) | |
8203 | (aarch64_sve_ldff1_operand, aarch64_sve_ldnf1_operand) | |
8204 | (aarch64_sve_prefetch_operand, aarch64_sve_ptrue_svpattern_immediate) | |
8205 | (aarch64_sve_qadd_immediate, aarch64_sve_qsub_immediate) | |
8206 | (aarch64_sve_gather_immediate_b, aarch64_sve_gather_immediate_h) | |
8207 | (aarch64_sve_gather_immediate_w, aarch64_sve_gather_immediate_d) | |
8208 | (aarch64_sve_sqadd_operand, aarch64_sve_gather_offset_b) | |
8209 | (aarch64_sve_gather_offset_h, aarch64_sve_gather_offset_w) | |
8210 | (aarch64_sve_gather_offset_d, aarch64_gather_scale_operand_b) | |
8211 | (aarch64_gather_scale_operand_h): New predicates. | |
8212 | * config/aarch64/constraints.md (UPb, UPd, UPh, UPw, Utf, Utn, vgb) | |
8213 | (vgd, vgh, vgw, vsQ, vsS): New constraints. | |
8214 | * config/aarch64/aarch64-sve.md: Add a note on the FFR handling. | |
8215 | (*aarch64_sve_reinterpret<mode>): Allow any source register | |
8216 | instead of requiring an exact match. | |
8217 | (*aarch64_sve_ptruevnx16bi_cc, *aarch64_sve_ptrue<mode>_cc) | |
8218 | (*aarch64_sve_ptruevnx16bi_ptest, *aarch64_sve_ptrue<mode>_ptest) | |
8219 | (aarch64_wrffr, aarch64_update_ffr_for_load, aarch64_copy_ffr_to_ffrt) | |
8220 | (aarch64_rdffr, aarch64_rdffr_z, *aarch64_rdffr_z_ptest) | |
8221 | (*aarch64_rdffr_ptest, *aarch64_rdffr_z_cc, *aarch64_rdffr_cc) | |
8222 | (aarch64_update_ffrt): New patterns. | |
8223 | (@aarch64_load_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>) | |
8224 | (@aarch64_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) | |
8225 | (@aarch64_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>) | |
8226 | (@aarch64_ld<fn>f1<mode>): New patterns. | |
8227 | (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx8_WIDE:mode><VNx8_NARROW:mode>) | |
8228 | (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) | |
8229 | (@aarch64_ld<fn>f1_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>) | |
8230 | (@aarch64_ldnt1<mode>): New patterns. | |
8231 | (gather_load<mode>): Use aarch64_sve_gather_offset_<Vesize> for | |
8232 | the scalar part of the address. | |
8233 | (mask_gather_load<SVE_S:mode>): Use aarch64_sve_gather_offset_w for the | |
8234 | scalar part of the addresse and add an alternative for handling | |
8235 | nonzero offsets. | |
8236 | (mask_gather_load<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d. | |
8237 | (*mask_gather_load<mode>_sxtw, *mask_gather_load<mode>_uxtw) | |
8238 | (@aarch64_gather_load_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) | |
8239 | (@aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>) | |
8240 | (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw) | |
8241 | (*aarch64_gather_load_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw) | |
8242 | (@aarch64_ldff1_gather<SVE_S:mode>, @aarch64_ldff1_gather<SVE_D:mode>) | |
8243 | (*aarch64_ldff1_gather<mode>_sxtw, *aarch64_ldff1_gather<mode>_uxtw) | |
8244 | (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx4_WIDE:mode><VNx4_NARROW:mode>) | |
8245 | (@aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>) | |
8246 | (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_sxtw) | |
8247 | (*aarch64_ldff1_gather_<ANY_EXTEND:optab><VNx2_WIDE:mode><VNx2_NARROW:mode>_uxtw) | |
8248 | (@aarch64_sve_prefetch<mode>): New patterns. | |
8249 | (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx4SI_ONLY:mode>) | |
8250 | (@aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>) | |
8251 | (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_sxtw) | |
8252 | (*aarch64_sve_gather_prefetch<SVE_I:mode><VNx2DI_ONLY:mode>_uxtw) | |
8253 | (@aarch64_store_trunc<VNx8_NARROW:mode><VNx8_WIDE:mode>) | |
8254 | (@aarch64_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>) | |
8255 | (@aarch64_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>) | |
8256 | (@aarch64_stnt1<mode>): New patterns. | |
8257 | (scatter_store<mode>): Use aarch64_sve_gather_offset_<Vesize> for | |
8258 | the scalar part of the address. | |
8259 | (mask_scatter_store<SVE_S:mode>): Use aarch64_sve_gather_offset_w for | |
8260 | the scalar part of the addresse and add an alternative for handling | |
8261 | nonzero offsets. | |
8262 | (mask_scatter_store<SVE_D:mode>): Likewise aarch64_sve_gather_offset_d. | |
8263 | (*mask_scatter_store<mode>_sxtw, *mask_scatter_store<mode>_uxtw) | |
8264 | (@aarch64_scatter_store_trunc<VNx4_NARROW:mode><VNx4_WIDE:mode>) | |
8265 | (@aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>) | |
8266 | (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_sxtw) | |
8267 | (*aarch64_scatter_store_trunc<VNx2_NARROW:mode><VNx2_WIDE:mode>_uxtw): | |
8268 | New patterns. | |
8269 | (vec_duplicate<mode>): Use QI as the mode of the input operand. | |
8270 | (extract_last_<mode>): Generalize to... | |
8271 | (@extract_<LAST:last_op>_<mode>): ...this. | |
8272 | (*<SVE_INT_UNARY:optab><mode>2): Rename to... | |
8273 | (@aarch64_pred_<SVE_INT_UNARY:optab><mode>): ...this. | |
8274 | (@cond_<SVE_INT_UNARY:optab><mode>): New expander. | |
8275 | (@aarch64_pred_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): New pattern. | |
8276 | (@aarch64_cond_sxt<SVE_HSDI:mode><SVE_PARTIAL:mode>): Likewise. | |
8277 | (@aarch64_pred_cnot<mode>, @cond_cnot<mode>): New expanders. | |
8278 | (@aarch64_sve_<SVE_FP_UNARY_INT:optab><mode>): New pattern. | |
8279 | (@aarch64_sve_<SVE_FP_UNARY:optab><mode>): Likewise. | |
8280 | (*<SVE_COND_FP_UNARY:optab><mode>2): Rename to... | |
8281 | (@aarch64_pred_<SVE_COND_FP_UNARY:optab><mode>): ...this. | |
8282 | (@cond_<SVE_COND_FP_UNARY:optab><mode>): New expander. | |
8283 | (*<SVE_INT_BINARY_IMM:optab><mode>3): Rename to... | |
8284 | (@aarch64_pred_<SVE_INT_BINARY_IMM:optab><mode>): ...this. | |
8285 | (@aarch64_adr<mode>, *aarch64_adr_sxtw): New patterns. | |
8286 | (*aarch64_adr_uxtw_unspec): Likewise. | |
8287 | (*aarch64_adr_uxtw): Rename to... | |
8288 | (*aarch64_adr_uxtw_and): ...this. | |
8289 | (@aarch64_adr<mode>_shift): New expander. | |
8290 | (*aarch64_adr_shift_sxtw): New pattern. | |
8291 | (aarch64_<su>abd<mode>_3): Rename to... | |
8292 | (@aarch64_pred_<su>abd<mode>): ...this. | |
8293 | (<su>abd<mode>_3): Update accordingly. | |
8294 | (@aarch64_cond_<su>abd<mode>): New expander. | |
8295 | (@aarch64_<SBINQOPS:su_optab><optab><mode>): New pattern. | |
8296 | (@aarch64_<UBINQOPS:su_optab><optab><mode>): Likewise. | |
8297 | (*<su>mul<mode>3_highpart): Rename to... | |
8298 | (@aarch64_pred_<optab><mode>): ...this. | |
8299 | (@cond_<MUL_HIGHPART:optab><mode>): New expander. | |
8300 | (*cond_<MUL_HIGHPART:optab><mode>_2): New pattern. | |
8301 | (*cond_<MUL_HIGHPART:optab><mode>_z): Likewise. | |
8302 | (*<SVE_INT_BINARY_SD:optab><mode>3): Rename to... | |
8303 | (@aarch64_pred_<SVE_INT_BINARY_SD:optab><mode>): ...this. | |
8304 | (cond_<SVE_INT_BINARY_SD:optab><mode>): Add a "@" marker. | |
8305 | (@aarch64_bic<mode>, @cond_bic<mode>): New expanders. | |
8306 | (*v<ASHIFT:optab><mode>3): Rename to... | |
8307 | (@aarch64_pred_<ASHIFT:optab><mode>): ...this. | |
8308 | (@aarch64_sve_<SVE_SHIFT_WIDE:sve_int_op><mode>): New pattern. | |
8309 | (@cond_<SVE_SHIFT_WIDE:sve_int_op><mode>): New expander. | |
8310 | (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_m): New pattern. | |
8311 | (*cond_<SVE_SHIFT_WIDE:sve_int_op><mode>_z): Likewise. | |
8312 | (@cond_asrd<mode>): New expander. | |
8313 | (*cond_asrd<mode>_2, *cond_asrd<mode>_z): New patterns. | |
8314 | (sdiv_pow2<mode>3): Expand to *cond_asrd<mode>_2. | |
8315 | (*sdiv_pow2<mode>3): Delete. | |
8316 | (@cond_<SVE_COND_FP_BINARY_INT:optab><mode>): New expander. | |
8317 | (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_2): New pattern. | |
8318 | (*cond_<SVE_COND_FP_BINARY_INT:optab><mode>_any): Likewise. | |
8319 | (@aarch64_sve_<SVE_FP_BINARY:optab><mode>): New pattern. | |
8320 | (@aarch64_sve_<SVE_FP_BINARY_INT:optab><mode>): Likewise. | |
8321 | (*<SVE_COND_FP_BINARY_REG:optab><mode>3): Rename to... | |
8322 | (@aarch64_pred_<SVE_COND_FP_BINARY_REG:optab><mode>): ...this. | |
8323 | (@aarch64_pred_<SVE_COND_FP_BINARY_INT:optab><mode>): New pattern. | |
8324 | (cond_<SVE_COND_FP_BINARY:optab><mode>): Add a "@" marker. | |
8325 | (*add<SVE_F:mode>3): Rename to... | |
8326 | (@aarch64_pred_add<SVE_F:mode>): ...this and add alternatives | |
8327 | for SVE_STRICT_GP. | |
8328 | (@aarch64_pred_<SVE_COND_FCADD:optab><mode>): New pattern. | |
8329 | (@cond_<SVE_COND_FCADD:optab><mode>): New expander. | |
8330 | (*cond_<SVE_COND_FCADD:optab><mode>_2): New pattern. | |
8331 | (*cond_<SVE_COND_FCADD:optab><mode>_any): Likewise. | |
8332 | (*sub<SVE_F:mode>3): Rename to... | |
8333 | (@aarch64_pred_sub<SVE_F:mode>): ...this and add alternatives | |
8334 | for SVE_STRICT_GP. | |
8335 | (@aarch64_pred_abd<SVE_F:mode>): New expander. | |
8336 | (*fabd<SVE_F:mode>3): Rename to... | |
8337 | (*aarch64_pred_abd<SVE_F:mode>): ...this. | |
8338 | (@aarch64_cond_abd<SVE_F:mode>): New expander. | |
8339 | (*mul<SVE_F:mode>3): Rename to... | |
8340 | (@aarch64_pred_<SVE_F:optab><mode>): ...this and add alternatives | |
8341 | for SVE_STRICT_GP. | |
8342 | (@aarch64_mul_lane_<SVE_F:mode>): New pattern. | |
8343 | (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><mode>3): Rename and generalize | |
8344 | to... | |
8345 | (@aarch64_pred_<SVE_COND_FP_MAXMIN:optab><mode>): ...this. | |
8346 | (*<LOGICAL:optab><PRED_ALL:mode>3_ptest): New pattern. | |
8347 | (*<nlogical><PRED_ALL:mode>3): Rename to... | |
8348 | (aarch64_pred_<nlogical><PRED_ALL:mode>_z): ...this. | |
8349 | (*<nlogical><PRED_ALL:mode>3_cc): New pattern. | |
8350 | (*<nlogical><PRED_ALL:mode>3_ptest): Likewise. | |
8351 | (*<logical_nn><PRED_ALL:mode>3): Rename to... | |
8352 | (aarch64_pred_<logical_nn><mode>_z): ...this. | |
8353 | (*<logical_nn><PRED_ALL:mode>3_cc): New pattern. | |
8354 | (*<logical_nn><PRED_ALL:mode>3_ptest): Likewise. | |
8355 | (*fma<SVE_I:mode>4): Rename to... | |
8356 | (@aarch64_pred_fma<SVE_I:mode>): ...this. | |
8357 | (*fnma<SVE_I:mode>4): Rename to... | |
8358 | (@aarch64_pred_fnma<SVE_I:mode>): ...this. | |
8359 | (@aarch64_<sur>dot_prod_lane<vsi2qi>): New pattern. | |
8360 | (*<SVE_FP_TERNARY:optab><mode>4): Rename to... | |
8361 | (@aarch64_pred_<SVE_FP_TERNARY:optab><mode>): ...this. | |
8362 | (cond_<SVE_FP_TERNARY:optab><mode>): Add a "@" marker. | |
8363 | (@aarch64_<SVE_FP_TERNARY_LANE:optab>_lane_<mode>): New pattern. | |
8364 | (@aarch64_pred_<SVE_COND_FCMLA:optab><mode>): Likewise. | |
8365 | (@cond_<SVE_COND_FCMLA:optab><mode>): New expander. | |
8366 | (*cond_<SVE_COND_FCMLA:optab><mode>_4): New pattern. | |
8367 | (*cond_<SVE_COND_FCMLA:optab><mode>_any): Likewise. | |
8368 | (@aarch64_<FCMLA:optab>_lane_<mode>): Likewise. | |
8369 | (@aarch64_sve_tmad<mode>): Likewise. | |
8370 | (vcond_mask_<SVE_ALL:mode><vpred>): Add a "@" marker. | |
8371 | (*aarch64_sel_dup<mode>): Rename to... | |
8372 | (@aarch64_sel_dup<mode>): ...this. | |
8373 | (@aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide): New pattern. | |
8374 | (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_cc): Likewise. | |
8375 | (*aarch64_pred_cmp<cmp_op><SVE_I:mode>_wide_ptest): Likewise. | |
8376 | (@while_ult<GPI:mode><PRED_ALL:mode>): Generalize to... | |
8377 | (@while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>): ...this. | |
8378 | (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Generalize to. | |
8379 | (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_cc): ...this. | |
8380 | (*while_<while_optab_cmp><GPI:mode><PRED_ALL:mode>_ptest): New pattern. | |
8381 | (*fcm<cmp_op><mode>): Rename to... | |
8382 | (@aarch64_pred_fcm<cmp_op><mode>): ...this. Make operand order | |
8383 | match @aarch64_pred_cmp<cmp_op><SVE_I:mode>. | |
8384 | (*fcmuo<mode>): Rename to... | |
8385 | (@aarch64_pred_fcmuo<mode>): ...this. Make operand order | |
8386 | match @aarch64_pred_cmp<cmp_op><SVE_I:mode>. | |
8387 | (@aarch64_pred_fac<cmp_op><mode>): New expander. | |
8388 | (@vcond_mask_<PRED_ALL:mode><mode>): New pattern. | |
8389 | (fold_extract_last_<mode>): Generalize to... | |
8390 | (@fold_extract_<last_op>_<mode>): ...this. | |
8391 | (@aarch64_fold_extract_vector_<last_op>_<mode>): New pattern. | |
8392 | (*reduc_plus_scal_<SVE_I:mode>): Replace with... | |
8393 | (@aarch64_pred_reduc_<optab>_<mode>): ...this pattern, making the | |
8394 | DImode result explicit. | |
8395 | (reduc_plus_scal_<mode>): Update accordingly. | |
8396 | (*reduc_<optab>_scal_<SVE_I:mode>): Rename to... | |
8397 | (@aarch64_pred_reduc_<optab>_<SVE_I:mode>): ...this. | |
8398 | (*reduc_<optab>_scal_<SVE_F:mode>): Rename to... | |
8399 | (@aarch64_pred_reduc_<optab>_<SVE_F:mode>): ...this. | |
8400 | (*aarch64_sve_tbl<mode>): Rename to... | |
8401 | (@aarch64_sve_tbl<mode>): ...this. | |
8402 | (@aarch64_sve_compact<mode>): New pattern. | |
8403 | (*aarch64_sve_dup_lane<mode>): Rename to... | |
8404 | (@aarch64_sve_dup_lane<mode>): ...this. | |
8405 | (@aarch64_sve_dupq_lane<mode>): New pattern. | |
8406 | (@aarch64_sve_splice<mode>): Likewise. | |
8407 | (aarch64_sve_<perm_insn><mode>): Rename to... | |
8408 | (@aarch64_sve_<perm_insn><mode>): ...this. | |
8409 | (*aarch64_sve_ext<mode>): Rename to... | |
8410 | (@aarch64_sve_ext<mode>): ...this. | |
8411 | (aarch64_sve_<su>unpk<perm_hilo>_<SVE_BHSI:mode>): Add a "@" marker. | |
8412 | (*aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): Rename | |
8413 | to... | |
8414 | (@aarch64_sve_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): ...this. | |
8415 | (*aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): | |
8416 | Rename to... | |
8417 | (@aarch64_sve_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): | |
8418 | ...this. | |
8419 | (@cond_<optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>): New expander. | |
8420 | (@cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): Likewise. | |
8421 | (*cond_<optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): New pattern. | |
8422 | (*aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): Rename | |
8423 | to... | |
8424 | (@aarch64_sve_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): ...this. | |
8425 | (aarch64_sve_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Add | |
8426 | a "@" marker. | |
8427 | (@cond_<optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): New expander. | |
8428 | (@cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): Likewise. | |
8429 | (*cond_<optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): New | |
8430 | pattern. | |
8431 | (*aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): Rename to... | |
8432 | (@aarch64_sve_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): ...this. | |
8433 | (@cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New expander. | |
8434 | (*cond_<optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): New pattern. | |
8435 | (aarch64_sve_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): Add a | |
8436 | "@" marker. | |
8437 | (@cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New expander. | |
8438 | (*cond_<optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): New pattern. | |
8439 | (aarch64_sve_punpk<perm_hilo>_<mode>): Add a "@" marker. | |
8440 | (@aarch64_brk<SVE_BRK_UNARY:brk_op>): New pattern. | |
8441 | (*aarch64_brk<SVE_BRK_UNARY:brk_op>_cc): Likewise. | |
8442 | (*aarch64_brk<SVE_BRK_UNARY:brk_op>_ptest): Likewise. | |
8443 | (@aarch64_brk<SVE_BRK_BINARY:brk_op>): Likewise. | |
8444 | (*aarch64_brk<SVE_BRK_BINARY:brk_op>_cc): Likewise. | |
8445 | (*aarch64_brk<SVE_BRK_BINARY:brk_op>_ptest): Likewise. | |
8446 | (@aarch64_sve_<SVE_PITER:sve_pred_op><mode>): Likewise. | |
8447 | (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_cc): Likewise. | |
8448 | (*aarch64_sve_<SVE_PITER:sve_pred_op><mode>_ptest): Likewise. | |
8449 | (aarch64_sve_cnt_pat): Likewise. | |
8450 | (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode>_pat): Likewise. | |
8451 | (*aarch64_sve_incsi_pat): Likewise. | |
8452 | (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode>_pat): Likewise. | |
8453 | (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise. | |
8454 | (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise. | |
8455 | (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander. | |
8456 | (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern. | |
8457 | (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode>_pat): Likewise. | |
8458 | (*aarch64_sve_decsi_pat): Likewise. | |
8459 | (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode>_pat): Likewise. | |
8460 | (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_pat): Likewise. | |
8461 | (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_pat): Likewise. | |
8462 | (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New expander. | |
8463 | (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_pat): New pattern. | |
8464 | (@aarch64_pred_cntp<mode>): Likewise. | |
8465 | (@aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp): | |
8466 | New expander. | |
8467 | (*aarch64_sve_<ANY_PLUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp) | |
8468 | (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns. | |
8469 | (@aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp): | |
8470 | New expander. | |
8471 | (*aarch64_sve_<SAT_PLUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp): | |
8472 | New pattern. | |
8473 | (@aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New expander. | |
8474 | (*aarch64_sve_<ANY_PLUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern. | |
8475 | (@aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New expander. | |
8476 | (*aarch64_sve_<ANY_PLUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern. | |
8477 | (@aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New expander. | |
8478 | (*aarch64_sve_<ANY_PLUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern. | |
8479 | (@aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp): | |
8480 | New expander. | |
8481 | (*aarch64_sve_<ANY_MINUS:inc_dec><DI_ONLY:mode><PRED_ALL:mode>_cntp) | |
8482 | (*aarch64_incsi<PRED_ALL:mode>_cntp): New patterns. | |
8483 | (@aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp): | |
8484 | New expander. | |
8485 | (*aarch64_sve_<SAT_MINUS:inc_dec><SI_ONLY:mode><PRED_ALL:mode>_cntp): | |
8486 | New pattern. | |
8487 | (@aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New | |
8488 | expander. | |
8489 | (*aarch64_sve_<ANY_MINUS:inc_dec><VNx2DI_ONLY:mode>_cntp): New pattern. | |
8490 | (@aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New | |
8491 | expander. | |
8492 | (*aarch64_sve_<ANY_MINUS:inc_dec><VNx4SI_ONLY:mode>_cntp): New pattern. | |
8493 | (@aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New | |
8494 | expander. | |
8495 | (*aarch64_sve_<ANY_MINUS:inc_dec><VNx8HI_ONLY:mode>_cntp): New pattern. | |
8496 | * config/aarch64/arm_sve.h: New file. | |
8497 | * config/aarch64/aarch64-sve-builtins.h: Likewise. | |
8498 | * config/aarch64/aarch64-sve-builtins.cc: Likewise. | |
8499 | * config/aarch64/aarch64-sve-builtins.def: Likewise. | |
8500 | * config/aarch64/aarch64-sve-builtins-base.h: Likewise. | |
8501 | * config/aarch64/aarch64-sve-builtins-base.cc: Likewise. | |
8502 | * config/aarch64/aarch64-sve-builtins-base.def: Likewise. | |
8503 | * config/aarch64/aarch64-sve-builtins-functions.h: Likewise. | |
8504 | * config/aarch64/aarch64-sve-builtins-shapes.h: Likewise. | |
8505 | * config/aarch64/aarch64-sve-builtins-shapes.cc: Likewise. | |
8506 | ||
8507 | 2019-10-29 Richard Sandiford <richard.sandiford@arm.com> | |
8508 | ||
8509 | * config/aarch64/aarch64-sve.md (@aarch64_sve_rev<PRED_ALL:mode>): | |
8510 | New pattern. | |
8511 | * config/aarch64/aarch64.c (aarch64_evpc_rev_global): Handle all | |
8512 | SVE modes. | |
8513 | ||
8514 | 2019-10-29 Richard Sandiford <richard.sandiford@arm.com> | |
8515 | ||
8516 | * config/aarch64/aarch64.md (FFR_REGNUM, FFRT_REGNUM): New constants. | |
8517 | * config/aarch64/aarch64.h (FIRST_PSEUDO_REGISTER): Bump to | |
8518 | FFRT_REGNUM + 1. | |
8519 | (FFR_REGS, PR_AND_FFR_REGS): New register classes. | |
8520 | (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for them. | |
8521 | * config/aarch64/aarch64.c (pr_or_ffr_regnum_p): New function. | |
8522 | (aarch64_hard_regno_nregs): Handle the new register classes. | |
8523 | (aarch64_hard_regno_mode_ok): Likewise. | |
8524 | (aarch64_regno_regclass): Likewise. | |
8525 | (aarch64_class_max_nregs): Likewise. | |
8526 | (aarch64_register_move_cost): Likewise. | |
8527 | (aarch64_conditional_register_usage): Don't treat FFR and FFRT | |
8528 | as general register_operands. | |
8529 | ||
8530 | 2019-10-29 Martin Liska <mliska@suse.cz> | |
8531 | ||
8532 | * ggc-common.c: One can't subtract unsigned types | |
8533 | in compare function. | |
8534 | ||
8535 | 2019-10-29 Martin Liska <mliska@suse.cz> | |
8536 | ||
8537 | * cgraphunit.c (symbol_table::compile): Pass | |
8538 | title as dump_memory_report argument. | |
8539 | * toplev.c (dump_memory_report): New argument. | |
8540 | (finalize): Pass new argument. | |
8541 | * toplev.h (dump_memory_report): Add argument. | |
8542 | ||
8543 | 2019-10-29 Martin Liska <mliska@suse.cz> | |
8544 | ||
8545 | * ggc-common.c: Move Leak to the first column. | |
8546 | ||
8547 | 2019-10-29 Martin Liska <mliska@suse.cz> | |
8548 | ||
8549 | * cgraphunit.c (symbol_table::compile): Remove argument | |
8550 | for dump_memory_report. | |
8551 | * ggc-common.c (dump_ggc_loc_statistics): Likewise. | |
8552 | (compare_final): Remove in order to make report | |
8553 | better readable. | |
8554 | * ggc.h (dump_ggc_loc_statistics): Remove argument. | |
8555 | * mem-stats.h (mem_alloc_description::get_list): | |
8556 | Do not pass cmp. | |
8557 | (mem_alloc_description::dump): Likewise here. | |
8558 | * toplev.c (dump_memory_report): Remove final | |
8559 | argument. | |
8560 | (finalize): Likewise. | |
8561 | * toplev.h (dump_memory_report): Remove argument. | |
8562 | ||
8563 | 2019-10-29 Richard Sandiford <richard.sandiford@arm.com> | |
8564 | ||
8565 | * config/aarch64/aarch64.c (aarch64_sve_cmp_immediate_p) | |
8566 | (aarch64_simd_shift_imm_p): Accept scalars as well as vectors. | |
8567 | * config/aarch64/predicates.md (aarch64_sve_cmp_vsc_immediate) | |
8568 | (aarch64_sve_cmp_vsd_immediate): Accept "const_int", but don't | |
8569 | accept "const". | |
8570 | ||
8571 | 2019-10-29 Richard Sandiford <richard.sandiford@arm.com> | |
8572 | ||
8573 | * coretypes.h (string_int_pair): New typedef. | |
8574 | * langhooks-def.h (LANG_HOOKS_SIMULATE_ENUM_DECL): Define. | |
8575 | (LANG_HOOKS_FOR_TYPES_INITIALIZER): Include it. | |
8576 | * langhooks.h (lang_hooks_for_types::simulate_enum_decl): New hook. | |
8577 | ||
8578 | 2019-10-29 Richard Sandiford <richard.sandiford@arm.com> | |
8579 | ||
8580 | * langhooks.h (lang_hooks::simulate_builtin_function_decl): New hook. | |
8581 | (simulate_builtin_function_decl): Declare. | |
8582 | * langhooks-def.h (LANG_HOOKS_SIMULATE_BUILTIN_FUNCTION_DECL): Define. | |
8583 | (LANG_HOOKS_INITIALIZER): Include it. | |
8584 | * langhooks.c (add_builtin_function_common): Rename to... | |
8585 | (build_builtin_function): ...this. Add a location parameter and use | |
8586 | it instead of BUILTINS_LOCATION. Remove the hook parameter and return | |
8587 | the decl instead. | |
8588 | (add_builtin_function): Update accordingly, passing the returned | |
8589 | decl to the lang hook. | |
8590 | (add_builtin_function_ext_scope): Likewise | |
8591 | (simulate_builtin_function_decl): New function. | |
8592 | ||
8593 | 2019-10-29 Jakub Jelinek <jakub@redhat.com> | |
8594 | ||
8595 | * doc/install.texi (--enable-offload-targets): Fix up a typo in the | |
8596 | example, use actual names of supported offload targets. | |
8597 | ||
8598 | PR target/92258 | |
8599 | * config/i386/sse.md (iptr): Revert 2019-10-27 change. | |
8600 | ||
8601 | 2019-10-28 Martin Sebor <msebor@redhat.com> | |
8602 | ||
8603 | * tree-ssa-strlen.c (get_addr_stridx): Add argument and use it. | |
8604 | (handle_store): Pass argument to get_addr_stridx. | |
8605 | ||
8606 | 2019-10-28 Martin Sebor <msebor@redhat.com> | |
8607 | ||
8608 | PR tree-optimization/92226 | |
8609 | * tree-ssa-strlen.c (compare_nonzero_chars): Return -1 also when | |
8610 | the offset is in the open range outlined by SI's length. | |
8611 | ||
8612 | 2019-10-28 Martin Sebor <msebor@redhat.com> | |
8613 | ||
8614 | PR c/66970 | |
8615 | * doc/cpp.texi (__has_builtin): Document. | |
8616 | * doc/extend.texi (__builtin_frob_return_addr): Correct spelling. | |
8617 | ||
8618 | 2019-10-28 Mihailo Stojanovic <mistojanovic@wavecomp.com> | |
8619 | ||
8620 | PR target/82981 | |
8621 | * config/mips/mips.md (<u>mulditi3): Generate patterns for high | |
8622 | doubleword and low doubleword result of multiplication on | |
8623 | MIPS64R6. | |
8624 | ||
8625 | * config/mips/mips.c (DIRECT_BUILTIN_PURE): New macro. Add a | |
8626 | pure qualifier to the built-in. | |
8627 | (MSA_BUILTIN_PURE): New macro. Add a pure qualifier to the MSA | |
8628 | built-ins. | |
8629 | (struct mips_builtin_description): Add is_pure flag. | |
8630 | (mips_init_builtins): Mark built-in as pure if the flag in the | |
8631 | corresponding mips_builtin_description struct is set. | |
8632 | ||
8633 | * config/mips/mips-msa.md (msa_insert_<msaftm_f>): Add an | |
8634 | alternative which covers the floating-point input value. Also | |
8635 | forbid the split of insert.d pattern for floating-point values. | |
8636 | ||
8637 | 2019-10-28 Andrew Burgess <andrew.burgess@embecosm.com> | |
8638 | ||
8639 | * config.gcc: Add riscv-sr.o to extra_objs for riscv. | |
8640 | * config/riscv/riscv-sr.c: New file. | |
8641 | * config/riscv/riscv.c (riscv_reorg): New function. | |
8642 | (TARGET_MACHINE_DEPENDENT_REORG): Define. | |
8643 | * config/riscv/riscv.h (SIBCALL_REG_P): Define. | |
8644 | (riscv_remove_unneeded_save_restore_calls): Declare. | |
8645 | * config/riscv/t-riscv (riscv-sr.o): New build rule. | |
8646 | ||
8647 | 2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
8648 | ||
8649 | PR tree-optimization/92163 | |
8650 | * tree-ssa-dse.c (delete_dead_or_redundant_assignment): New param | |
8651 | need_eh_cleanup with default value NULL. Gate on need_eh_cleanup | |
8652 | before calling bitmap_set_bit. | |
8653 | (dse_optimize_redundant_stores): Pass global need_eh_cleanup to | |
8654 | delete_dead_or_redundant_assignment. | |
8655 | (dse_dom_walker::dse_optimize_stmt): Likewise. | |
8656 | * tree-ssa-dse.h (delete_dead_or_redundant_assignment): Adjust prototype. | |
8657 | ||
8658 | 2019-10-28 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
8659 | ||
8660 | PR middle-end/91272 | |
8661 | * tree-vect-stmts.c (vectorizable_condition): Support | |
8662 | EXTRACT_LAST_REDUCTION with fully-masked loops. | |
8663 | ||
8664 | 2019-10-28 Richard Biener <rguenther@suse.de> | |
8665 | ||
8666 | PR tree-optimization/92252 | |
8667 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Adjust | |
8668 | STMT_VINFO_REDUC_IDX when swapping operands. | |
8669 | ||
8670 | 2019-10-28 Richard Biener <rguenther@suse.de> | |
8671 | ||
8672 | PR tree-optimization/92241 | |
8673 | * tree-vect-loop.c (vect_fixup_scalar_cycles_with_patterns): When | |
8674 | we failed to update the reduction index do not use the pattern | |
8675 | stmts for the reduction chain. | |
8676 | (vectorizable_reduction): When the reduction chain is corrupt, | |
8677 | fail. | |
8678 | * tree-vect-patterns.c (vect_mark_pattern_stmts): Stop when we | |
8679 | fail to update the reduction chain. | |
8680 | ||
8681 | 2019-10-28 Richard Biener <rguenther@suse.de> | |
8682 | ||
8683 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Use | |
8684 | STMT_VINFO_REDUC_IDX from the actual stmt. | |
8685 | (vect_transform_reduction): Likewise. | |
8686 | (vectorizable_reduction): Compute the reduction chain length, | |
8687 | do not recompute the reduction operand index. Remove no longer | |
8688 | necessary restriction for condition reduction chains. | |
8689 | ||
8690 | 2019-10-28 Uroš Bizjak <ubizjak@gmail.com> | |
8691 | ||
8692 | PR target/92225 | |
8693 | * config/i386/sse.md (REDUC_SSE_SMINMAX_MODE): Use TARGET_SSE4_2 | |
8694 | condition for V2DImode. | |
8695 | ||
8696 | 2019-10-28 Uroš Bizjak <ubizjak@gmail.com> | |
8697 | ||
8698 | * config/i386/sse.md (sse_cvtss2si<rex64namesuffix>_2): | |
8699 | Remove %k operand modifier. | |
8700 | (*vec_extractv2df_1_sse): Remove %q operand modifier. | |
8701 | ||
8702 | 2019-10-28 Ilya Leoshkevich <iii@linux.ibm.com> | |
8703 | ||
8704 | PR rtl-optimization/92007 | |
8705 | * cfgcleanup.c (thread_jump): Add an assertion that we don't | |
8706 | call it after reload if hot/cold partitioning has been done. | |
8707 | (class pass_postreload_jump): Rename to | |
8708 | pass_jump_after_combine. | |
8709 | (make_pass_postreload_jump): Rename to | |
8710 | make_pass_jump_after_combine. | |
8711 | * passes.def(pass_postreload_jump): Move before reload, rename | |
8712 | to pass_jump_after_combine. | |
8713 | * tree-pass.h (make_pass_postreload_jump): Rename to | |
8714 | make_pass_jump_after_combine. | |
8715 | ||
8716 | 2019-10-25 Jan Hubicka <hubicka@ucw.cz> | |
8717 | ||
8718 | PR ipa/92242 | |
8719 | * ipa-fnsummary.c (ipa_merge_fn_summary_after_inlining): Check | |
8720 | for missing EDGE_REF | |
8721 | * ipa-prop.c (update_jump_functions_after_inlining): Likewise. | |
8722 | ||
8723 | 2019-10-25 Jiufu Guo <guojiufu@linux.ibm.com> | |
8724 | ||
8725 | PR tree-optimization/88760 | |
8726 | * config/rs6000/rs6000-common.c (rs6000_option_optimization_table): | |
8727 | Enable -funroll-loops for -O2 and above. | |
8728 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Set | |
8729 | PARAM_MAX_UNROLL_TIMES to 2 and PARAM_MAX_UNROLLED_INSNS to 20, and | |
8730 | do not turn on web and rngreg implicitly, if the unroller is not | |
8731 | explicitly enabled. | |
8732 | ||
8733 | 2019-10-27 Jan Hubicka <hubicka@ucw.cz> | |
8734 | ||
8735 | * ipa-prop.c (ipa_propagate_indirect_call_infos): Do not remove | |
8736 | jump functions. | |
8737 | ||
8738 | 2019-10-27 Eric Botcazou <ebotcazou@adacore.com> | |
8739 | ||
8740 | * cgraph.c (cgraph_node::rtl_info): Fix cut&pasto in comment. | |
8741 | * cgraph.h (cgraph_node::rtl_info): Likewise. | |
8742 | ||
8743 | 2019-10-27 Jan Hubicka <hubicka@ucw.cz> | |
8744 | ||
8745 | * ipa-cp.c (propagate_constants_across_call): If args are not available | |
8746 | just drop everything to varying. | |
8747 | (find_aggregate_values_for_callers_subset): Watch for missing | |
8748 | edge summary. | |
8749 | (find_more_scalar_values_for_callers_subs): Likewise. | |
8750 | * ipa-prop.c (ipa_compute_jump_functions_for_edge, | |
8751 | update_jump_functions_after_inlining, propagate_controlled_uses): | |
8752 | Watch for missing summaries. | |
8753 | (ipa_propagate_indirect_call_infos): Remove summary after propagation | |
8754 | is finished. | |
8755 | (ipa_write_node_info): Watch for missing summaries. | |
8756 | (ipa_read_edge_info): Create new ref. | |
8757 | (ipa_edge_args_sum_t): Add remove. | |
8758 | (IPA_EDGE_REF_GET_CREATE): New macro. | |
8759 | * ipa-fnsummary.c (evaluate_properties_for_edge): Watch for missing | |
8760 | edge summary. | |
8761 | (remap_edge_change_prob): Likewise. | |
8762 | ||
8763 | 2019-10-27 Jan Hubicka <hubicka@ucw.cz> | |
8764 | ||
8765 | * ipa-inline-transform.c (inline_call): update function summaries | |
8766 | after expanidng thunk. | |
8767 | ||
8768 | 2019-10-27 Jan Hubicka <hubicka@ucw.cz> | |
8769 | ||
8770 | * ipa-icf.c (sem_function::merge): Update function summaries. | |
8771 | * ipa-prop.h (ipa_get_param): Do not sanity check for WPA. | |
8772 | ||
8773 | 2019-10-27 Hongtao Liu <hongtao.liu@intel.com> | |
8774 | ||
8775 | * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3, | |
8776 | <sse>_vm<multdiv_mnemonic><mode>3): Remove <iptr> since | |
8777 | operand already has scalar mode. | |
8778 | (iptr): Remove SF/DF. | |
8779 | ||
8780 | 2019-10-26 Segher Boessenkool <segher@kernel.crashing.org> | |
8781 | ||
8782 | PR target/91289 | |
8783 | * config/rs6000/rs6000-logue.c (rs6000_emit_allocate_stack): Don't add | |
8784 | an immediate to r0; use r11 instead. Save and restore r11 to r0 around | |
8785 | this. | |
8786 | ||
8787 | 2019-10-26 Hongtao Liu <hongtao.liu@intel.com> | |
8788 | ||
8789 | * config/i386/sse.md | |
8790 | (<sse>_vm<plusminus_insn><mode>3<mask_scalar_name><round_scalar_name>, | |
8791 | <sse>_vm<multdiv_mnemonic><mode>3<mask_scalar_name><round_scalar_name>, | |
8792 | <sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>, | |
8793 | <sse>_vm<code><mode>3<mask_scalar_name><round_saeonly_scalar_name>, | |
8794 | <sse>_vmmaskcmp<mode>3): | |
8795 | Change predicates from vector_operand to nonimmediate_operand, | |
8796 | constraints xBm to xm, since scalar operations don't need | |
8797 | memory address alignment. | |
8798 | (avx512f_vmcmp<mode>3<round_saeonly_name>, | |
8799 | avx512f_vmcmp<mode>3_mask<round_saeonly_name>): Replace | |
8800 | round_saeonly_nimm_predicate with | |
8801 | round_saeonly_nimm_scalar_predicate. | |
8802 | (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>, | |
8803 | fmai_vmfnmadd_<mode><round_name>,fmai_vmfnmsub_<mode><round_name>, | |
8804 | *fmai_fmadd_<mode>, *fmai_fmsub_<mode>, | |
8805 | *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>, | |
8806 | avx512f_vmfmadd_<mode>_mask3<round_name>, | |
8807 | avx512f_vmfmadd_<mode>_maskz_1<round_name>, | |
8808 | *avx512f_vmfmsub_<mode>_mask<round_name>, | |
8809 | avx512f_vmfmsub_<mode>_mask3<round_name>, | |
8810 | *avx512f_vmfmsub_<mode>_maskz_1<round_name>, | |
8811 | *avx512f_vmfnmadd_<mode>_mask<round_name>, | |
8812 | *avx512f_vmfnmadd_<mode>_mask3<round_name>, | |
8813 | *avx512f_vmfnmadd_<mode>_maskz_1<round_name>, | |
8814 | *avx512f_vmfnmsub_<mode>_mask<round_name>, | |
8815 | *avx512f_vmfnmsub_<mode>_mask3<round_name>, | |
8816 | *avx512f_vmfnmsub_<mode>_maskz_1<round_name>, | |
8817 | cvtusi2<ssescalarmodesuffix>32<round_name>, | |
8818 | cvtusi2<ssescalarmodesuffix>64<round_name>, ): Replace | |
8819 | round_nimm_predicate with round_nimm_scalr_predicate. | |
8820 | (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>, | |
8821 | avx512f_sfixupimm<mode>_mask<round_saeonly_name>, | |
8822 | avx512er_vmrcp28<mode><round_saeonly_name>, | |
8823 | avx512er_vmrsqrt28<mode><round_saeonly_name>, | |
8824 | ): Replace round_saeonly_nimm_predicate with | |
8825 | round_saeonly_nimm_scalar_predicate. | |
8826 | (avx512dq_vmfpclass<mode><mask_scalar_merge_name>): Replace | |
8827 | vector_operand with nonimmediate_operand. | |
8828 | * config/i386/subst.md (round_scalar_nimm_predicate, | |
8829 | round_saeonly_scalar_nimm_predicate): Replace | |
8830 | vector_operand with nonimmediate_operand. | |
8831 | ||
8832 | 2019-10-26 Hongtao Liu <hongtao.liu@intel.com> | |
8833 | ||
8834 | PR target/89071 | |
8835 | * config/i386/i386.md (*rcpsf2_sse): Add | |
8836 | avx_partial_xmm_update, prefer m constraint for TARGET_AVX. | |
8837 | (*rsqrtsf2_sse): Ditto. | |
8838 | (*sqrt<mode>2_sse): Ditto. | |
8839 | (sse4_1_round<mode>2): separate constraint vm, add | |
8840 | avx_partail_xmm_update, prefer m constraint for TARGET_AVX. | |
8841 | * config/i386/sse.md (*sse_vmrcpv4sf2"): New define_insn used | |
8842 | by pass rpad. | |
8843 | (*<sse>_vmsqrt<mode>2<mask_scalar_name><round_scalar_name>*): | |
8844 | Ditto. | |
8845 | (*sse_vmrsqrtv4sf2): Ditto. | |
8846 | (*avx512f_rndscale<mode><round_saeonly_name>): Ditto. | |
8847 | (*sse4_1_round<ssescalarmodesuffix>): Ditto. | |
8848 | (sse4_1_round<ssescalarmodesuffix>): Add m constraint and | |
8849 | <iptr> pointer size modifier since vround support memory operand. | |
8850 | ||
8851 | 2019-10-18 Georg-Johann Lay <avr@gjlay.de> | |
8852 | ||
8853 | PR target/85969 | |
8854 | * config/avr/gen-avr-mmcu-specs.c (str_prefix_p): Remove unused | |
8855 | static function. | |
8856 | ||
8857 | 2019-10-25 Cesar Philippidis <cesar@codesourcery.com> | |
8858 | Tobias Burnus <tobias@codesourcery.com> | |
8859 | ||
8860 | * gimplify.c (oacc_default_clause): Privatize fortran common blocks. | |
8861 | (omp_notice_variable): Defer the expansion of DECL_VALUE_EXPR for | |
8862 | common block decls. | |
8863 | ||
8864 | 2019-10-25 Richard Biener <rguenther@suse.de> | |
8865 | ||
8866 | PR tree-optimization/92222 | |
8867 | * tree-vect-slp.c (_slp_oprnd_info::first_pattern): Remove. | |
8868 | (_slp_oprnd_info::second_pattern): Likewise. | |
8869 | (_slp_oprnd_info::any_pattern): New. | |
8870 | (vect_create_oprnd_info): Adjust. | |
8871 | (vect_get_and_check_slp_defs): Compute whether any stmt is | |
8872 | in a pattern. | |
8873 | (vect_build_slp_tree_2): Avoid building up a node from scalars | |
8874 | if any of the operand defs, not just the first, is in a pattern. | |
8875 | ||
8876 | 2019-10-25 Richard Biener <rguenther@suse.de> | |
8877 | ||
8878 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Only fail | |
8879 | swapping if we actually have to modify the IL on a shared stmt. | |
8880 | (vect_build_slp_tree_2): Never fail swapping on shared stmts | |
8881 | because we no longer modify the IL. | |
8882 | ||
8883 | 2019-10-25 Martin Liska <mliska@suse.cz> | |
8884 | ||
8885 | * tree.c (dump_tree_statistics): Use sorted index 'j' and not 'i'. | |
8886 | ||
8887 | 2019-10-25 Richard Sandiford <richard.sandiford@arm.com> | |
8888 | ||
8889 | * tree-vect-loop.c (vectorizable_reduction): Restrict the | |
8890 | LOOP_VINFO_CAN_FULLY_MASK_P handling to cases that will be | |
8891 | handled by vect_transform_reduction. Allow fully-masked loops | |
8892 | to be used with reduction chains. | |
8893 | * tree-vect-stmts.c (vectorizable_operation): Handle reduction | |
8894 | operations in fully-masked loops. | |
8895 | (vectorizable_condition): Reject EXTRACT_LAST_REDUCTION | |
8896 | operations in fully-masked loops. | |
8897 | ||
8898 | 2019-10-25 Richard Biener <rguenther@suse.de> | |
8899 | ||
8900 | * tree-vect-loop.c (vectorizable_reduction): Verify | |
8901 | STMT_VINFO_REDUC_IDX on the to be vectorized stmts is set up | |
8902 | correctly. | |
8903 | * tree-vect-patterns.c (vect_mark_pattern_stmts): Transfer | |
8904 | STMT_VINFO_REDUC_IDX from the original stmts to the pattern | |
8905 | stmts. | |
8906 | ||
8907 | 2019-10-24 Jakub Jelinek <jakub@redhat.com> | |
8908 | ||
8909 | * gimplify.h (omp_construct_selector_matches): Declare. | |
8910 | * gimplify.c (struct gimplify_omp_ctx): Add code member. | |
8911 | (gimplify_call_expr): Call omp_resolve_declare_variant and remap | |
8912 | called function if needed for flag_openmp. | |
8913 | (gimplify_scan_omp_clauses): Set ctx->code. | |
8914 | (omp_construct_selector_matches): New function. | |
8915 | * omp-general.h (omp_constructor_traits_to_codes, | |
8916 | omp_context_selector_matches, omp_resolve_declare_variant): Declare. | |
8917 | * omp-general.c (omp_constructor_traits_to_codes, | |
8918 | omp_context_selector_matches, omp_resolve_declare_variant): New | |
8919 | functions. | |
8920 | ||
8921 | * config/arc/arc.c (hwloop_optimize): Add missing space in string | |
8922 | literal. | |
8923 | * config/rx/rx.c (rx_print_operand): Likewise. | |
8924 | * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. | |
8925 | * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise. | |
8926 | * ipa-sra.c (create_parameter_descriptors, process_scan_results): | |
8927 | Likewise. | |
8928 | * genemit.c (emit_c_code): Likewise. | |
8929 | * plugin.c (try_init_one_plugin): Likewise. Formatting fix. | |
8930 | ||
8931 | 2019-10-24 Jan Hubicka <hubicka@ucw.cz> | |
8932 | ||
8933 | * symbols-summary.h (fast_function_summary<T *, V>::release, | |
8934 | fast_call_summary<T *, V>::release): Free m_vector. | |
8935 | ||
8936 | 2019-10-24 Jan Hubicka <hubicka@ucw.cz> | |
8937 | ||
8938 | * cgraphunit.c (symbol_table::process_new_functions): Call | |
8939 | ipa_free_size_summary. | |
8940 | * ipa-cp.c (ipcp_cloning_candidate_p): Update. | |
8941 | (devirtualization_time_bonus): Update. | |
8942 | (ipcp_propagate_stage): Update. | |
8943 | * ipa-fnsummary.c (ipa_size_summaries): New. | |
8944 | (ipa_fn_summary_alloc): Alloc size summary. | |
8945 | (dump_ipa_call_summary): Update. | |
8946 | (ipa_dump_fn_summary): Update. | |
8947 | (analyze_function_body): Update. | |
8948 | (compute_fn_summary): Likewise. | |
8949 | (ipa_get_stack_frame_offset): New function. | |
8950 | (inline_update_callee_summaries): Do not update frame offsets. | |
8951 | (ipa_merge_fn_summary_after_inlining): Update frame offsets here; | |
8952 | remove call and function summary. | |
8953 | (ipa_update_overall_fn_summary): Update. | |
8954 | (inline_read_section): Update. | |
8955 | (ipa_fn_summary_write): Update. | |
8956 | (ipa_free_fn_summary): Do not remove summaries. | |
8957 | (ipa_free_size_summary): New. | |
8958 | (release summary pass): Also run at WPA. | |
8959 | * ipa-fnsummary.h (ipa_size_summary): Declare. | |
8960 | (ipa_fn_summary): Remove size, self_size, stack_frame_offset, | |
8961 | estimated_self_stack_size. | |
8962 | (ipa_size_summary_t): New type. | |
8963 | (ipa_size_summaries): Declare. | |
8964 | (ipa_free_size_summary): Declare. | |
8965 | (ipa_get_stack_frame_offset): Declare. | |
8966 | * ipa-icf.c (sem_function::merge): Update. | |
8967 | * ipa-inline-analysis.c (estimate_size_after_inlining): Update. | |
8968 | (estimate_growth): Update. | |
8969 | (growth_likely_positive): Update. | |
8970 | (clone_inlined_nodes): Update. | |
8971 | (inline_call): Update. | |
8972 | * ipa-inline.c (caller_growth_limits): Update. | |
8973 | (edge_badness): Update. | |
8974 | (recursive_inlining): Update. | |
8975 | (inline_small_functions): Update. | |
8976 | (inline_to_all_callers_1): Update. | |
8977 | * ipa-prop.h (ipa_edge_args_sum_t): Update comment. | |
8978 | ||
8979 | 2019-10-24 Segher Boessenkool <segher@kernel.crashing.org> | |
8980 | ||
8981 | * config/rs6000/altivec.md (altivec_vavgu<VI_char>): Rename to... | |
8982 | (uavg<mode>3_ceil): ... This. | |
8983 | (altivec_vavgs<VI_char>): Rename to... | |
8984 | (avg<mode>3_ceil): ... This. | |
8985 | * config/rs6000/rs6000-builtin.def (VAVGUB, VAVGSB, VAVGUH, VAVGSH, | |
8986 | VAVGUW, VAVGSW): Adjust. | |
8987 | ||
8988 | 2019-10-24 Nathan Sidwell <nathan@acm.org> | |
8989 | ||
8990 | * dumpfile.c (dump_begin): Reorder decls to use RAII. | |
8991 | ||
8992 | 2019-10-24 Martin Liska <mliska@suse.cz> | |
8993 | ||
8994 | * symbol-summary.h (gt_pch_nx): Mark all functions | |
8995 | with gcc_unreachable as we do not expect to be called. | |
8996 | ||
8997 | 2019-10-24 Richard Biener <rguenther@suse.de> | |
8998 | ||
8999 | * tree-vect-slp.c (vect_get_and_check_slp_defs): For reduction | |
9000 | chains try harder with operand swapping and instead of | |
9001 | putting a shifted chain into the reduction operands put | |
9002 | a repetition of the final reduction op there as if we'd | |
9003 | reassociate the expression. | |
9004 | ||
9005 | 2019-10-24 Jan Hubicka <hubicka@ucw.cz> | |
9006 | ||
9007 | * ipa-reference.c (ipa_reference_optimization_summary_d): Rename | |
9008 | statics_not_read and statics_not_written to statics_read and | |
9009 | statics_written respectively. | |
9010 | (no_module_statics): New static var. | |
9011 | (ipa_reference_get_not_read_global): Rename to ... | |
9012 | (ipa_reference_get_read_global): ... this. | |
9013 | (ipa_reference_get_not_written_global): Rename to ... | |
9014 | (ipa_reference_get_written_global): ... this. | |
9015 | (dump_static_vars_set_to_file): Dump no_module_statics. | |
9016 | (copy_static_var_set): Add for propagation parameter. | |
9017 | (ipa_init): Initialize no_module_statics. | |
9018 | (ipa_ref_opt_summary_t::duplicate): Update. | |
9019 | (ipa_ref_opt_summary_t::remove): Update. | |
9020 | (propagate): Update. | |
9021 | (write_node_summary_p): Look correctly for bitmap differences. | |
9022 | (ipa_reference_write_optimization_summary): Update. | |
9023 | (ipa_reference_read_optimization_summary): Update. | |
9024 | * ipa-reference.h | |
9025 | (ipa_reference_get_not_read_global): Rename to ... | |
9026 | (ipa_reference_get_read_global): ... this. | |
9027 | (ipa_reference_get_not_written_global): Rename to ... | |
9028 | (ipa_reference_get_written_global): ... this. | |
9029 | * tree-ssa-alias.c (ref_maybe_used_by_call_p_1): Update. | |
9030 | (call_may_clobber_ref_p_1): Update. | |
9031 | ||
9032 | 2019-10-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
9033 | ||
9034 | * config/msp430/msp430.c (msp430_hard_regno_nregs_has_padding): Remove | |
9035 | and add comment. | |
9036 | (msp430_hard_regno_nregs_with_padding): Remove. | |
9037 | ||
9038 | 2019-10-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
9039 | ||
9040 | * config/msp430/constraints.md: Allow post_inc for "Ya" constraint. | |
9041 | * config/msp430/msp430.md (430x_shift_left): Use RLAM when the constant | |
9042 | shift amount is between 1 and 4. | |
9043 | (430x_arithmetic_shift_right): Use RRAM when the constant shift amount | |
9044 | is between 1 and 4. | |
9045 | ||
9046 | 2019-10-24 Richard Biener <rguenther@suse.de> | |
9047 | ||
9048 | PR tree-optimization/92205 | |
9049 | * tree-vect-loop.c (vectorizable_reduction): Restrict | |
9050 | search for alternate vectype_in to lane-reducing patterns | |
9051 | we support. | |
9052 | ||
9053 | 2019-10-24 Richard Biener <rguenther@suse.de> | |
9054 | ||
9055 | PR tree-optimization/92203 | |
9056 | * treee-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): | |
9057 | Skip eliminating conversion stmts inserted by insertion. | |
9058 | ||
9059 | 2019-10-24 Ilya Leoshkevich <iii@linux.ibm.com> | |
9060 | ||
9061 | * config/s390/s390.c (s390_get_thread_pointer): Use | |
9062 | gen_get_thread_pointer. | |
9063 | (s390_expand_split_stack_prologue): Likewise. | |
9064 | * config/s390/s390.md (UNSPEC_GET_TP): New UNSPEC. | |
9065 | (*get_tp_31): New 31-bit splitter for UNSPEC_GET_TP. | |
9066 | (*get_tp_64): New 64-bit splitter for UNSPEC_GET_TP. | |
9067 | (get_thread_pointer<mode>): Use UNSPEC_GET_TP, use | |
9068 | parameterized name. | |
9069 | ||
9070 | 2019-10-24 Richard Biener <rguenther@suse.de> | |
9071 | ||
9072 | * tree-vect-slp.c (vect_analyze_slp): When reduction group | |
9073 | SLP discovery fails try to handle the reduction as part | |
9074 | of SLP reduction discovery. | |
9075 | ||
9076 | 2019-10-23 Michael Meissner <meissner@linux.ibm.com> | |
9077 | ||
9078 | * config/rs6000/rs6000-protos.h (rs6000_adjust_insn_length): New | |
9079 | declaration. | |
9080 | * config/rs6000/rs6000.c (rs6000_insn_cost): Use num_insns insn | |
9081 | attribute if it exists, rather than the insn size. If we use the | |
9082 | insn size, adjust the size to remove the extra size that prefixed | |
9083 | instructions take. | |
9084 | (rs6000_adjust_insn_length): New function. | |
9085 | * config/rs6000/rs6000.h (ADJUST_INSN_LENGTH): New target hook to | |
9086 | update the instruction sized if prefixed instructions are used. | |
9087 | * config/rs6000/rs6000.md (prefixed_length attribute): Delete. | |
9088 | (non_prefixed_length attribute): Delete. | |
9089 | (num_insns attribute): New insn attribute to return the number of | |
9090 | instructions. | |
9091 | (max_prefixed_insns attribute): New insn attribute to return the | |
9092 | maximum number of prefixed instructions in an insn. | |
9093 | (length attribute): Do not adjust for prefix instructions here, | |
9094 | punt to ADJUST_INSN_LENGTH. | |
9095 | (mov<mode>_64bit): Set max_prefixed_insns and num_insns. | |
9096 | (movtd_64bit_nodm): Set max_prefixed_insns and num_insns. | |
9097 | (mov<mode>_ppc64): Set max_prefixed_insns and num_insns. | |
9098 | * config/rs6000/vsx.md: (vsx_mov<mode>_64bit): Set | |
9099 | max_prefixed_insns and num_insns. | |
9100 | ||
9101 | * config/rs6000/rs6000.md (mov<mode>_64bit_dm): Reformat. | |
9102 | (movtd_64bit_nodm): Reformat. | |
9103 | (mov<mode>_32bit): Reformat. | |
9104 | (mov<mode>_softfloat): Reformat. | |
9105 | (FMOVE128_GPR splitter): Reformat. | |
9106 | (DIFD splitter): Reformat. | |
9107 | (TI2 splitter): Reformat. | |
9108 | * config/rs6000/predicates.md (lwa_operand): If the bottom two | |
9109 | bits of the offset for the memory address are non-zero, use PLWA | |
9110 | if prefixed instructions are available. | |
9111 | ||
9112 | 2019-10-23 Jan Hubicka <hubicka@ucw.cz> | |
9113 | ||
9114 | * lto-streamer-out.c (cmp_symbol_files): Watch for overflow. | |
9115 | ||
9116 | 2019-10-23 Jan Hubicka <hubicka@ucw.cz> | |
9117 | ||
9118 | * ipa-reference.c (varpool_removal_hook, ipa_reference_c_finalize): Fix | |
9119 | previous patch. | |
9120 | ||
9121 | 2019-10-23 Jan Hubicka <hubicka@ucw.cz> | |
9122 | ||
9123 | * lto-streamer-out.c (output_constructor): Push CTORS_OUT timevar. | |
9124 | (cmp_symbol_files): New. | |
9125 | (lto_output): Copy sections in file order. | |
9126 | * lto-streamer.h (lto_file_decl_data): Add field order. | |
9127 | ||
9128 | 2019-10-23 Jan Hubicka <hubicka@ucw.cz> | |
9129 | ||
9130 | * ipa-reference.h (ipa_reference_var_uid): Move offline. | |
9131 | * ipa-reference.c (reference_vars_map_t): new type. | |
9132 | (ipa_reference_vars_map, ipa_reference_vars_uids): New static vars. | |
9133 | (ipa_reference_var_uid): Implement. | |
9134 | (varpool_node_hooks): New static var. | |
9135 | (varpool_removal_hook): New function. | |
9136 | (is_improper): Do not check bitmap for id==-1 | |
9137 | (get_static_name): Update. | |
9138 | (ipa_init): Initialize new datastructures. | |
9139 | (analyze_function): Do not recompute ids. | |
9140 | (propagate): Free reference_vars_to_consider. | |
9141 | (stream_out_bitmap): Update. | |
9142 | (ipa_reference_read_optimization_summary): Update. | |
9143 | ||
9144 | 2019-10-23 qing zhao <qing.zhao@oracle.com> | |
9145 | ||
9146 | PR gcov-profile/91971 | |
9147 | * coverage.c (coverage_init): Mangle the full path of filename when | |
9148 | filename is a absolute path. | |
9149 | ||
9150 | 2019-10-23 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
9151 | ||
9152 | * config/msp430/msp430-protos.h (msp430_has_hwmult): New. | |
9153 | * config/msp430/msp430.c (msp430_no_hwmult): Remove. | |
9154 | (msp430_has_hwmult): New. | |
9155 | (msp430_output_labelref): | |
9156 | s/msp430_hwmult_type != MSP430_HWMULT_NONE/msp430_has_hwmult ()/ | |
9157 | * config/msp430/msp430.md (mulhisi3): Likewise. | |
9158 | (umulhisi3): Likewise. | |
9159 | (mulsidi3): Likewise. | |
9160 | (umulsidi3): Likewise. | |
9161 | ||
9162 | 2019-10-23 Jan Hubicka <hubicka@ucw.cz> | |
9163 | ||
9164 | PR ipa/92074 | |
9165 | * params.def (inline-heuristics-hint-percent): Set to 600. | |
9166 | ||
9167 | 2019-10-23 Richard Biener <rguenther@suse.de> | |
9168 | ||
9169 | PR tree-optimization/65930 | |
9170 | * tree-vect-loop.c (check_reduction_path): Allow conversions | |
9171 | that only change the sign. | |
9172 | (vectorizable_reduction): Relax latch def stmts we handle further. | |
9173 | ||
9174 | 2019-10-23 Jakub Jelinek <jakub@redhat.com> | |
9175 | ||
9176 | PR debug/90231 | |
9177 | * tree-ssa-loop-ivopts.c (get_debug_computation_at): New function. | |
9178 | (remove_unused_ivs): Use it instead of get_computation_at. When | |
9179 | choosing best candidate, only consider candidates where | |
9180 | get_debug_computation_at actually returns non-NULL. | |
9181 | ||
9182 | 2019-10-23 Eric Botcazou <ebotcazou@adacore.com> | |
9183 | ||
9184 | PR tree-optimization/92131 | |
9185 | * tree-vrp.c (extract_range_from_plus_minus_expr): If the resulting | |
9186 | range would be symbolic, drop to varying for any explicit overflow | |
9187 | in the constant part or if neither range is a singleton. | |
9188 | ||
9189 | 2019-10-23 Martin Liska <mliska@suse.cz> | |
9190 | ||
9191 | PR middle-end/81669 | |
9192 | * fibonacci_heap.h (fibonacci_node::fibonacci_node): | |
9193 | Initialize m_data. | |
9194 | ||
9195 | 2019-10-23 Richard Sandiford <richard.sandiford@arm.com> | |
9196 | ||
9197 | * config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Use | |
9198 | int_mode_for_mode rather than mode_for_int_vector for scalars. | |
9199 | ||
9200 | 2019-10-23 Richard Biener <rguenther@suse.de> | |
9201 | ||
9202 | PR tree-optimization/92179 | |
9203 | * tree-vect-stmts.c (vectorizable_shift): For shift args | |
9204 | that are all the same remove type restriction in the SLP case. | |
9205 | Adjust SLP code to handle converting of the shift arg to | |
9206 | only apply in case the modes are different. | |
9207 | ||
9208 | 2019-10-23 Martin Liska <mliska@suse.cz> | |
9209 | ||
9210 | PR ipa/91969 | |
9211 | * ipa-inline.c (recursive_inlining): Do not print | |
9212 | when curr->count is not initialized. | |
9213 | ||
9214 | 2019-10-23 Richard Biener <rguenther@suse.de> | |
9215 | ||
9216 | * tree-vect-slp.c (vect_build_slp_tree_2): Do not build | |
9217 | op from scalars in case there's a constant operand in its | |
9218 | definition. | |
9219 | ||
9220 | 2019-10-23 Iain Sandoe <iain@sandoe.co.uk> | |
9221 | ||
9222 | * config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard | |
9223 | against out of range max skip or log values. | |
9224 | ||
9225 | 2019-10-22 Giuliano Belinassi <giuliano.belinassi@usp.br> | |
9226 | ||
9227 | * cgraph.c (dump_graphviz): Change name to dump_name | |
9228 | ||
9229 | 2019-10-22 Richard Earnshaw <rearnsha@arm.com> | |
9230 | ||
9231 | * config/arm/arm.md (rsbsi_carryin_reg): New pattern. | |
9232 | * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle | |
9233 | subtraction from a carry operation. | |
9234 | ||
9235 | 2019-10-22 Richard Earnshaw <rearnsha@arm.com> | |
9236 | ||
9237 | * config/arm/predicates.md (arm_borrow_operation): Handle CC_ADCmode. | |
9238 | ||
9239 | 2019-10-22 Richard Biener <rguenther@suse.de> | |
9240 | ||
9241 | PR tree-optimization/92173 | |
9242 | * tree-vect-loop.c (vectorizable_reduction): If | |
9243 | vect_transform_reduction cannot handle code-generation try without | |
9244 | the single-def-use-cycle optimization. Pass optab_vector to | |
9245 | optab_for_tree_code to get vector shifts as that's what we'd | |
9246 | generate. | |
9247 | ||
9248 | 2019-10-22 Michael Matz <matz@suse.de> | |
9249 | ||
9250 | PR middle-end/90796 | |
9251 | * gimple-loop-jam.c (any_access_function_variant_p): New function. | |
9252 | (adjust_unroll_factor): Use it to constrain safety, new parameter. | |
9253 | (tree_loop_unroll_and_jam): Adjust call and profitable unroll factor. | |
9254 | ||
9255 | 2019-10-22 Richard Biener <rguenther@suse.de> | |
9256 | ||
9257 | PR tree-optimization/92173 | |
9258 | * tree-vect-loop.c (vectorizable_reduction): If | |
9259 | vect_transform_reduction cannot handle code-generation try without | |
9260 | the single-def-use-cycle optimization. Pass optab_vector to | |
9261 | optab_for_tree_code to get vector shifts as that's what we'd | |
9262 | generate. | |
9263 | ||
9264 | 2019-10-22 Martin Liska <mliska@suse.cz> | |
9265 | ||
9266 | * diagnostic-format-json.cc (json_from_expanded_location): | |
9267 | Use json::integer_number. | |
9268 | * gcov.c (output_intermediate_json_line): Use new | |
9269 | json::integer_number. | |
9270 | (output_json_intermediate_file): Likewise. | |
9271 | * json.cc (number::print): Move to ... | |
9272 | (float_number::print): ... this. | |
9273 | (integer_number::print): New. | |
9274 | (test_writing_numbers): Move to ... | |
9275 | (test_writing_float_numbers): ... this. | |
9276 | (test_writing_integer_numbers): New. | |
9277 | (json_cc_tests): Register test_writing_integer_numbers. | |
9278 | * json.h (class value): Add forward declaration | |
9279 | for float_number and integer_number. | |
9280 | (enum kind): Add JSON_INTEGER and JSON_FLOAT. | |
9281 | (class number): Move to ... | |
9282 | (class float_number): ... this. | |
9283 | (class integer_number): New. | |
9284 | * optinfo-emit-json.cc (optrecord_json_writer::impl_location_to_json): | |
9285 | Use json::integer_number. | |
9286 | (optrecord_json_writer::location_to_json): Likewise. | |
9287 | (optrecord_json_writer::profile_count_to_json): Likewise. | |
9288 | (optrecord_json_writer::pass_to_json): Likewise. | |
9289 | ||
9290 | 2019-10-22 Richard Sandiford <richard.sandiford@arm.com> | |
9291 | ||
9292 | * tree-vect-slp.c (vect_slp_bb_region): Check whether | |
9293 | autodetected_vector_size rather than vector_size is zero. | |
9294 | * tree-vect-loop.c (vect_analyze_loop): Likewise. | |
9295 | Set autodetected_vector_size immediately after calling | |
9296 | vect_analyze_loop_2. Check for a fatal error before advancing | |
9297 | next_size. | |
9298 | ||
9299 | 2019-10-21 Jason Merrill <jason@redhat.com> | |
9300 | ||
9301 | * lock-and-run.sh: Check for process existence rather than timeout. | |
9302 | ||
9303 | 2019-10-21 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
9304 | ||
9305 | * expr.c (expand_expr_real_2): Don't widen constant op1 when expanding | |
9306 | widening multiplication. | |
9307 | ||
9308 | 2019-10-21 Richard Earnshaw <rearnsha@arm.com> | |
9309 | ||
9310 | * config/arm/iterators.md (t2_binop0): Fix typo in comment. | |
9311 | * config/arm/arm.md (addsi3_carryin_shift): Simplify selection of the | |
9312 | type attribute. | |
9313 | (subsi3_carryin_shift): Separate into register and constant controlled | |
9314 | alternatives. Use shift_amount_operand for operand 4. Set shift | |
9315 | attribute and simplify type attribute. | |
9316 | (subsi3_carryin_shift_alt): Likewise. | |
9317 | (rsbsi3_carryin_shift): Likewise. | |
9318 | (rsbsi3_carryin_shift_alt): Likewise. | |
9319 | (andsi_not_shiftsi_si): Enable for TARGET_32BIT. Separate constant | |
9320 | and register controlled shifts into distinct alternatives. | |
9321 | (andsi_not_shiftsi_si_scc_no_reuse): Likewise. | |
9322 | (andsi_not_shiftsi_si_scc): Likewise. | |
9323 | (arm_cmpsi_negshiftsi_si): Likewise. | |
9324 | (not_shiftsi): Remove redundant M constraint from alternative 1. | |
9325 | (not_shiftsi_compare0): Likewise. | |
9326 | (arm_cmpsi_insn): Remove redundant alternative 2. | |
9327 | (cmpsi_shift_swp): Likewise. | |
9328 | (sub_shiftsi): Likewise. | |
9329 | (sub_shiftsi_compare0_scratch): Likewise. | |
9330 | * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Delete pattern. | |
9331 | (thumb2_cmpsi_neg_shiftsi): Likewise. | |
9332 | ||
9333 | 2019-10-21 Richard Biener <rguenther@suse.de> | |
9334 | ||
9335 | PR tree-optimization/92162 | |
9336 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Lookup | |
9337 | STMT_VINFO_REDUC_IDX in reduc_info. | |
9338 | * tree-vect-stmts.c (vectorizable_condition): Likewise. | |
9339 | ||
9340 | 2019-10-21 Richard Biener <rguenther@suse.de> | |
9341 | ||
9342 | * tree-vectorizer.h (_slp_tree::ops): New member. | |
9343 | (SLP_TREE_SCALAR_OPS): New. | |
9344 | (vect_get_slp_defs): Adjust prototype. | |
9345 | * tree-vect-slp.c (vect_free_slp_tree): Release | |
9346 | SLP_TREE_SCALAR_OPS. | |
9347 | (vect_create_new_slp_node): Initialize it. New overload for | |
9348 | initializing by an operands array. | |
9349 | (_slp_oprnd_info::ops): New member. | |
9350 | (vect_create_oprnd_info): Initialize it. | |
9351 | (vect_free_oprnd_info): Release it. | |
9352 | (vect_get_and_check_slp_defs): Populate the operands array. | |
9353 | Do not swap operands in the IL when not necessary. | |
9354 | (vect_build_slp_tree_2): Build SLP nodes for invariant operands. | |
9355 | Record SLP_TREE_SCALAR_OPS for all invariant nodes. Also | |
9356 | swap operands in the operands array. Do not swap operands in | |
9357 | the IL. | |
9358 | (vect_slp_rearrange_stmts): Re-arrange SLP_TREE_SCALAR_OPS as well. | |
9359 | (vect_gather_slp_loads): Fix. | |
9360 | (vect_detect_hybrid_slp_stmts): Likewise. | |
9361 | (vect_slp_analyze_node_operations_1): Search for a internal | |
9362 | def child for computing reduction SLP_TREE_NUMBER_OF_VEC_STMTS. | |
9363 | (vect_slp_analyze_node_operations): Skip ops-only stmts for | |
9364 | the def-type push/pop dance. | |
9365 | (vect_get_constant_vectors): Compute number_of_vectors here. | |
9366 | Use SLP_TREE_SCALAR_OPS and simplify greatly. | |
9367 | (vect_get_slp_vect_defs): Use gimple_get_lhs also for PHIs. | |
9368 | (vect_get_slp_defs): Simplify greatly. | |
9369 | * tree-vect-loop.c (vectorize_fold_left_reduction): Simplify. | |
9370 | (vect_transform_reduction): Likewise. | |
9371 | * tree-vect-stmts.c (vect_get_vec_defs): Simplify. | |
9372 | (vectorizable_call): Likewise. | |
9373 | (vectorizable_operation): Likewise. | |
9374 | (vectorizable_load): Likewise. | |
9375 | (vectorizable_condition): Likewise. | |
9376 | (vectorizable_comparison): Likewise. | |
9377 | ||
9378 | 2019-10-21 Richard Biener <rguenther@suse.de> | |
9379 | ||
9380 | PR tree-optimization/92161 | |
9381 | * tree-vect-loop.c (vect_analyze_loop_2): Reset stmts def-type | |
9382 | for reductions. | |
9383 | ||
9384 | 2019-10-21 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
9385 | ||
9386 | * config/aarch64/aarch64.md (UNSPEC_RNDR, UNSPEC_RNDRRS): Define. | |
9387 | (aarch64_rndr): New define_insn. | |
9388 | (aarch64_rndrrs): Likewise. | |
9389 | * config/aarch64/aarch64.h (AARCH64_ISA_RNG): Define. | |
9390 | (TARGET_RNG): Likewise. | |
9391 | * config/aarch64/aarch64.c (aarch64_expand_builtin): Use IGNORE | |
9392 | argument. | |
9393 | * config/aarch64/aarch64-protos.h (aarch64_general_expand_builtin): | |
9394 | Add fourth argument in prototype. | |
9395 | * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): | |
9396 | Add AARCH64_BUILTIN_RNG_RNDR, AARCH64_BUILTIN_RNG_RNDRRS. | |
9397 | (aarch64_init_rng_builtins): Define. | |
9398 | (aarch64_general_init_builtins): Call aarch64_init_rng_builtins. | |
9399 | (aarch64_expand_rng_builtin): Define. | |
9400 | (aarch64_general_expand_builtin): Use IGNORE argument, handle | |
9401 | RNG builtins. | |
9402 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define | |
9403 | __ARM_FEATURE_RNG when TARGET_RNG. | |
9404 | * config/aarch64/arm_acle.h (__rndr, __rndrrs): Define. | |
9405 | ||
9406 | 2019-10-21 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
9407 | ||
9408 | * tree-vect-stmts (ensure_base_align): Only change alignment if new | |
9409 | alignment is more restrictive. | |
9410 | ||
9411 | 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> | |
9412 | ||
9413 | * tree-vectorizer.h (vec_info::vector_size): New member variable. | |
9414 | (vect_update_max_nunits): Update comment. | |
9415 | (current_vector_size): Delete. | |
9416 | * tree-vect-stmts.c (current_vector_size): Likewise. | |
9417 | (get_vectype_for_scalar_type): Use vec_info::vector_size instead | |
9418 | of current_vector_size. | |
9419 | (get_mask_type_for_scalar_type): Likewise. | |
9420 | * tree-vectorizer.c (try_vectorize_loop_1): Likewise. | |
9421 | * tree-vect-loop.c (vect_update_vf_for_slp): Likewise. | |
9422 | (vect_analyze_loop, vect_halve_mask_nunits): Likewise. | |
9423 | (vect_double_mask_nunits, vect_transform_loop): Likewise. | |
9424 | * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise. | |
9425 | (vect_make_slp_decision, vect_slp_bb_region): Likewise. | |
9426 | ||
9427 | 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> | |
9428 | ||
9429 | * tree-vectorizer.h (vect_double_mask_nunits): Take a vec_info. | |
9430 | * tree-vect-loop.c (vect_double_mask_nunits): Likewise. | |
9431 | * tree-vect-stmts.c (supportable_narrowing_operation): Update call | |
9432 | accordingly. | |
9433 | ||
9434 | 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> | |
9435 | ||
9436 | * tree-vectorizer.h (vect_halve_mask_nunits): Take a vec_info. | |
9437 | * tree-vect-loop.c (vect_halve_mask_nunits): Likewise. | |
9438 | * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Update | |
9439 | call accordingly. | |
9440 | * tree-vect-stmts.c (supportable_widening_operation): Likewise. | |
9441 | ||
9442 | 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> | |
9443 | ||
9444 | * tree-vect-loop-manip.c (vect_maybe_permute_loop_masks): Take | |
9445 | a loop_vec_info. | |
9446 | (vect_set_loop_condition_masked): Update call accordingly. | |
9447 | ||
9448 | 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> | |
9449 | ||
9450 | * tree-vectorizer.h (supportable_narrowing_operation): Take a vec_info. | |
9451 | * tree-vect-stmts.c (supportable_narrowing_operation): Likewise. | |
9452 | (simple_integer_narrowing): Update call accordingly. | |
9453 | (vectorizable_conversion): Likewise. | |
9454 | ||
9455 | 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> | |
9456 | ||
9457 | * tree-vect-stmts.c (simple_integer_narrowing): Take a vec_info. | |
9458 | (vectorizable_call): Update call accordingly. | |
9459 | ||
9460 | 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> | |
9461 | ||
9462 | * tree-vectorizer.h (can_duplicate_and_interleave_p): Take a vec_info. | |
9463 | * tree-vect-slp.c (can_duplicate_and_interleave_p): Likewise. | |
9464 | (duplicate_and_interleave): Update call accordingly. | |
9465 | * tree-vect-loop.c (vectorizable_reduction): Likewise. | |
9466 | ||
9467 | 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> | |
9468 | ||
9469 | * tree-vectorizer.h (duplicate_and_interleave): Take a vec_info. | |
9470 | * tree-vect-slp.c (duplicate_and_interleave): Likewise. | |
9471 | (vect_get_constant_vectors): Update call accordingly. | |
9472 | * tree-vect-loop.c (get_initial_defs_for_reduction): Likewise. | |
9473 | ||
9474 | 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> | |
9475 | ||
9476 | * tree-vectorizer.h (get_vectype_for_scalar_type): Take a vec_info. | |
9477 | * tree-vect-stmts.c (get_vectype_for_scalar_type): Likewise. | |
9478 | (vect_prologue_cost_for_slp_op): Update call accordingly. | |
9479 | (vect_get_vec_def_for_operand, vect_get_gather_scatter_ops) | |
9480 | (vect_get_strided_load_store_ops, vectorizable_simd_clone_call) | |
9481 | (vect_supportable_shift, vect_is_simple_cond, vectorizable_comparison) | |
9482 | (get_mask_type_for_scalar_type): Likewise. | |
9483 | (vect_get_vector_types_for_stmt): Likewise. | |
9484 | * tree-vect-data-refs.c (vect_analyze_data_refs): Likewise. | |
9485 | * tree-vect-loop.c (vect_determine_vectorization_factor): Likewise. | |
9486 | (get_initial_def_for_reduction, build_vect_cond_expr): Likewise. | |
9487 | * tree-vect-patterns.c (vect_supportable_direct_optab_p): Likewise. | |
9488 | (vect_split_statement, vect_convert_input): Likewise. | |
9489 | (vect_recog_widen_op_pattern, vect_recog_pow_pattern): Likewise. | |
9490 | (vect_recog_over_widening_pattern, vect_recog_mulhs_pattern): Likewise. | |
9491 | (vect_recog_average_pattern, vect_recog_cast_forwprop_pattern) | |
9492 | (vect_recog_rotate_pattern, vect_recog_vector_vector_shift_pattern) | |
9493 | (vect_synth_mult_by_constant, vect_recog_mult_pattern): Likewise. | |
9494 | (vect_recog_divmod_pattern, vect_recog_mixed_size_cond_pattern) | |
9495 | (check_bool_pattern, adjust_bool_pattern_cast, adjust_bool_pattern) | |
9496 | (search_type_for_mask_1, vect_recog_bool_pattern): Likewise. | |
9497 | (vect_recog_mask_conversion_pattern): Likewise. | |
9498 | (vect_add_conversion_to_pattern): Likewise. | |
9499 | (vect_recog_gather_scatter_pattern): Likewise. | |
9500 | * tree-vect-slp.c (vect_build_slp_tree_2): Likewise. | |
9501 | (vect_analyze_slp_instance, vect_get_constant_vectors): Likewise. | |
9502 | ||
9503 | 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> | |
9504 | ||
9505 | * tree-vectorizer.h (get_mask_type_for_scalar_type): Take a vec_info. | |
9506 | * tree-vect-stmts.c (get_mask_type_for_scalar_type): Likewise. | |
9507 | (vect_check_load_store_mask): Update call accordingly. | |
9508 | (vect_get_mask_type_for_stmt): Likewise. | |
9509 | * tree-vect-patterns.c (check_bool_pattern): Likewise. | |
9510 | (search_type_for_mask_1, vect_recog_mask_conversion_pattern): Likewise. | |
9511 | (vect_convert_mask_for_vectype): Likewise. | |
9512 | ||
9513 | 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> | |
9514 | ||
9515 | * tree-vect-patterns.c (vect_supportable_direct_optab_p): Take | |
9516 | a vec_info. | |
9517 | (vect_recog_dot_prod_pattern): Update call accordingly. | |
9518 | (vect_recog_sad_pattern, vect_recog_pow_pattern): Likewise. | |
9519 | (vect_recog_widen_sum_pattern): Likewise. | |
9520 | ||
9521 | 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> | |
9522 | ||
9523 | * tree-vectorizer.h (vect_supportable_shift): Take a vec_info. | |
9524 | * tree-vect-stmts.c (vect_supportable_shift): Likewise. | |
9525 | * tree-vect-patterns.c (vect_synth_mult_by_constant): Update call | |
9526 | accordingly. | |
9527 | ||
9528 | 2019-10-21 Richard Sandiford <richard.sandiford@arm.com> | |
9529 | ||
9530 | * tree-vectorizer.c (get_vec_alignment_for_array_type): Use | |
9531 | get_vectype_for_scalar_type_and_size instead of | |
9532 | get_vectype_for_scalar_type. | |
9533 | ||
9534 | 2019-10-20 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
9535 | ||
9536 | * common.opt (-fcommon): Fix description. | |
9537 | ||
9538 | 2019-10-20 Jakub Jelinek <jakub@redhat.com> | |
9539 | ||
9540 | * config/i386/i386-protos.h (ix86_pre_reload_split): Declare. | |
9541 | * config/i386/i386.c (ix86_pre_reload_split): New function. | |
9542 | * config/i386/i386.md (*fix_trunc<mode>_i387_1, *add<mode>3_eq, | |
9543 | *add<mode>3_ne, *add<mode>3_eq_0, *add<mode>3_ne_0, *add<mode>3_eq, | |
9544 | *add<mode>3_ne, *add<mode>3_eq_1, *add<mode>3_eq_0, *add<mode>3_ne_0, | |
9545 | *anddi3_doubleword, *andndi3_doubleword, *<code>di3_doubleword, | |
9546 | *one_cmpldi2_doubleword, *ashl<dwi>3_doubleword_mask, | |
9547 | *ashl<dwi>3_doubleword_mask_1, *ashl<mode>3_mask, *ashl<mode>3_mask_1, | |
9548 | *<shift_insn><mode>3_mask, *<shift_insn><mode>3_mask_1, | |
9549 | *<shift_insn><dwi>3_doubleword_mask, | |
9550 | *<shift_insn><dwi>3_doubleword_mask_1, *<rotate_insn><mode>3_mask, | |
9551 | *<rotate_insn><mode>3_mask_1, *<btsc><mode>_mask, *<btsc><mode>_mask_1, | |
9552 | *btr<mode>_mask, *btr<mode>_mask_1, *jcc_bt<mode>, *jcc_bt<mode>_1, | |
9553 | *jcc_bt<mode>_mask, *popcounthi2_1, frndintxf2_<rounding>, | |
9554 | *fist<mode>2_<rounding>_1, *<code><mode>3_1, *<code>di3_doubleword): | |
9555 | Use ix86_pre_reload_split instead of can_create_pseudo_p in condition. | |
9556 | * config/i386/sse.md (*sse4_1_<code>v8qiv8hi2<mask_name>_2, | |
9557 | *avx2_<code>v8qiv8si2<mask_name>_2, | |
9558 | *sse4_1_<code>v4qiv4si2<mask_name>_2, | |
9559 | *sse4_1_<code>v4hiv4si2<mask_name>_2, | |
9560 | *avx512f_<code>v8qiv8di2<mask_name>_2, | |
9561 | *avx2_<code>v4qiv4di2<mask_name>_2, *avx2_<code>v4hiv4di2<mask_name>_2, | |
9562 | *sse4_1_<code>v2hiv2di2<mask_name>_2, | |
9563 | *sse4_1_<code>v2siv2di2<mask_name>_2, sse4_2_pcmpestr, | |
9564 | sse4_2_pcmpistr): Likewise. | |
9565 | ||
9566 | 2019-10-20 Gerald Pfeifer <gerald@pfeifer.com> | |
9567 | ||
9568 | * doc/install.texi (Configuration, --enable-objc-gc): hboehm.info | |
9569 | now defaults to https. | |
9570 | ||
9571 | 2019-10-20 Jan Hubicka <hubicka@ucw.cz> | |
9572 | ||
9573 | * tree-ssa-alias.c (nonoverlapping_refs_since_match_p): Do not | |
9574 | skip non-zero array accesses. | |
9575 | ||
9576 | 2019-10-20 Richard Sandiford <richard.sandiford@arm.com> | |
9577 | ||
9578 | * tree-vect-slp.c (vect_slp_analyze_bb_1): Take a bb_vec_info | |
9579 | and return a boolean success value. Move the allocation and | |
9580 | initialization of the bb_vec_info to... | |
9581 | (vect_slp_bb_region): ...here. Update call accordingly. | |
9582 | (vect_slp_bb): Apply PARAM_SLP_MAX_INSNS_IN_BB here rather | |
9583 | than in vect_slp_analyze_bb_1. | |
9584 | ||
9585 | 2019-10-20 Richard Sandiford <richard.sandiford@arm.com> | |
9586 | ||
9587 | * tree-vect-slp.c (vect_slp_analyze_bb_1): Call save_datarefs | |
9588 | when processing the given datarefs for the first time and | |
9589 | check_datarefs subsequently. | |
9590 | (vect_slp_bb_region): New function, split out of... | |
9591 | (vect_slp_bb): ...here. Don't recompute the region bounds and | |
9592 | dataref sets when retrying with a different vector size. | |
9593 | ||
9594 | 2019-10-19 Jakub Jelinek <jakub@redhat.com> | |
9595 | Uroš Bizjak <ubizjak@gmail.com> | |
9596 | ||
9597 | PR target/92140 | |
9598 | * config/i386/predicates.md (int_nonimmediate_operand): New special | |
9599 | predicate. | |
9600 | * config/i386/i386.md (*add<mode>3_eq, *add<mode>3_ne, | |
9601 | *add<mode>3_eq_0, *add<mode>3_ne_0, *sub<mode>3_eq, *sub<mode>3_ne, | |
9602 | *sub<mode>3_eq_1, *sub<mode>3_eq_0, *sub<mode>3_ne_0): New | |
9603 | define_insn_and_split patterns. | |
9604 | ||
9605 | 2019-10-19 Iain Sandoe <iain@sandoe.co.uk> | |
9606 | ||
9607 | * config/rs6000/rs6000.md: Delete out--of-date comment about | |
9608 | special-casing integer loads. | |
9609 | ||
9610 | 2019-10-19 JeanHeyd Meneide <phdofthehouse@gmail.com> | |
9611 | ||
9612 | * escaped_string.h (escaped_string): New header. | |
9613 | * tree.c (escaped_string): Remove escaped_string class. | |
9614 | ||
9615 | 2019-10-18 Martin Sebor <msebor@redhat.com> | |
9616 | ||
9617 | PR tree-optimization/92157 | |
9618 | * tree-ssa-strlen.c (handle_builtin_string_cmp): Be prepared for | |
9619 | compute_string_length to return a negative result. | |
9620 | ||
9621 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9622 | ||
9623 | * config/arm/arm.md (negv<SIDI:mode>3): New expansion rule. | |
9624 | (negvsi3, negvdi3): Delete. | |
9625 | (negdi2_compare): Delete. | |
9626 | ||
9627 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9628 | ||
9629 | * config/arm/arm.md (subvdi4): Decompose calculation into 32-bit | |
9630 | operations. | |
9631 | (subdi3_compare1): Delete pattern. | |
9632 | (subvsi3_borrow): New insn pattern. | |
9633 | (subvsi3_borrow_imm): Likewise. | |
9634 | ||
9635 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9636 | ||
9637 | * config/arm/arm.md (subv<mode>4): Delete. | |
9638 | (subvdi4): New expander pattern. | |
9639 | (subvsi4): Likewise. Handle some immediate values. | |
9640 | (subvsi3_intmin): New insn pattern. | |
9641 | (subvsi3): Likewise. | |
9642 | (subvsi3_imm1): Likewise. | |
9643 | * config/arm/arm.c (select_cc_mode): Also allow minus for CC_V | |
9644 | idioms. | |
9645 | ||
9646 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9647 | ||
9648 | * config/arm/arm.md (usubvdi4): Allow registers or integers for | |
9649 | incoming operands. Early split the calculation into SImode | |
9650 | operations. | |
9651 | (usubvsi3_borrow): New insn pattern. | |
9652 | (usubvsi3_borrow_imm): Likewise. | |
9653 | ||
9654 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9655 | ||
9656 | * config/arm/arm.md (usubv<mode>4): Delete expansion. | |
9657 | (usubvsi4): New pattern. Allow some immediate values for inputs. | |
9658 | (usubvdi4): New pattern. | |
9659 | ||
9660 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9661 | ||
9662 | * config/arm/arm.c (arm_select_cc_mode): Allow either the first | |
9663 | or second operand of the PLUS inside a DImode equality test to be | |
9664 | sign-extend when selecting CC_Vmode. | |
9665 | * config/arm/arm.md (addvdi4): Early-split the operation into SImode | |
9666 | instructions. | |
9667 | (addsi3_cin_vout_reg, addsi3_cin_vout_imm, addsi3_cin_vout_0): New | |
9668 | expand patterns. | |
9669 | (addsi3_cin_vout_reg_insn, addsi3_cin_vout_imm_insn): New patterns. | |
9670 | (addsi3_cin_vout_0): Likewise. | |
9671 | (adddi3_compareV): Delete. | |
9672 | ||
9673 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9674 | ||
9675 | * config/arm/arm.md (addsi3_compareV_reg_nosum): New insn. | |
9676 | (addsi3_compareV_imm_nosum): New insn. Also add peephole2 patterns | |
9677 | to transform this back into the summation version when that leads | |
9678 | to smaller code. | |
9679 | ||
9680 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9681 | ||
9682 | * config/arm/arm.md (addv<mode>4): Delete. | |
9683 | (addvsi4): New pattern. Handle immediate values that the architecture | |
9684 | supports. | |
9685 | (addvdi4): New pattern. | |
9686 | (addsi3_compareV): Rename to ... | |
9687 | (addsi3_compareV_reg): ... this. Add constraints for thumb2 variants | |
9688 | and use COMPARE rather than NE. | |
9689 | (addsi3_compareV_imm): New pattern. | |
9690 | * config/arm/arm.c (arm_select_cc_mode): Return CC_Vmode for | |
9691 | a signed-overflow check. | |
9692 | ||
9693 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9694 | ||
9695 | * config/arm/arm-modes.def (CC_ADC): New CC mode. | |
9696 | * config/arm/arm.c (arm_select_cc_mode): Detect selection of | |
9697 | CC_ADCmode. | |
9698 | (maybe_get_arm_condition_code): Handle CC_ADCmode. | |
9699 | * config/arm/arm.md (uaddvdi4): Early expansion of unsigned addition | |
9700 | with overflow. | |
9701 | (addsi3_cin_cout_reg, addsi3_cin_cout_imm, addsi3_cin_cout_0): New | |
9702 | expand patterns. | |
9703 | (addsi3_cin_cout_reg_insn, addsi3_cin_cout_0_insn): New insn patterns | |
9704 | (addsi3_cin_cout_imm_insn): Likewise. | |
9705 | (adddi3_compareC): Delete insn. | |
9706 | * config/arm/predicates.md (arm_carry_operation): Handle CC_ADCmode. | |
9707 | ||
9708 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9709 | ||
9710 | * config/arm/arm.md (adddi3): Call gen_addsi3_compare_op1. | |
9711 | * (uaddv<mode>4): Delete expansion pattern. | |
9712 | (uaddvsi4): New pattern. | |
9713 | (uaddvdi4): Likewise. | |
9714 | (addsi3_compareC): Delete pattern, change callers to use | |
9715 | addsi3_compare_op1. | |
9716 | (addsi3_compare_op1): No-longer anonymous. Clean up constraints to | |
9717 | reduce the number of alternatives and re-work type attribute handling. | |
9718 | (addsi3_compare_op2): Clean up constraints to reduce the number of | |
9719 | alternatives and re-work type attribute handling. | |
9720 | (compare_addsi2_op0): Likewise. | |
9721 | (compare_addsi2_op1): Likewise. | |
9722 | ||
9723 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9724 | ||
9725 | * config/arm/arm-modes.def (CC_NCV, CC_CZ): Delete CC modes. | |
9726 | * config/arm/arm.c (arm_select_cc_mode): Remove old selection code | |
9727 | for DImode operands. | |
9728 | (arm_gen_dicompare_reg): Remove unreachable expansion code. | |
9729 | (maybe_get_arm_condition_code): Remove support for CC_CZmode and | |
9730 | CC_NCVmode. | |
9731 | * config/arm/arm.md (arm_cmpdi_insn): Delete. | |
9732 | (arm_cmpdi_unsigned): Delete. | |
9733 | ||
9734 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9735 | ||
9736 | * config/arm/arm.c (arm_const_double_prefer_rsbs_rsc): New function. | |
9737 | (arm_canonicalize_comparison): For GT/LE/GTU/GEU, use the constant | |
9738 | unchanged only if that will be cheaper. | |
9739 | (arm_select_cc_mode): Recognize a swapped comparison that will | |
9740 | be regenerated using RSBS or RSCS. Relax restriction on selecting | |
9741 | CC_RSBmode. | |
9742 | (arm_gen_dicompare_reg): Handle LE/GT/LEU/GEU comparisons against | |
9743 | a constant. | |
9744 | (arm_gen_compare_reg): Handle compare (CONST, X) when the mode | |
9745 | is CC_RSBmode. | |
9746 | (maybe_get_arm_condition_code): CC_RSBmode now returns the same codes | |
9747 | as CCmode. | |
9748 | * config/arm/arm.md (rsb_imm_compare_scratch): New pattern. | |
9749 | (rscsi3_<CC_EXTEND>out_scratch): New pattern. | |
9750 | ||
9751 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9752 | ||
9753 | * config/arm/arm-modes.def (CC_NV, CC_B): New CC modes. | |
9754 | * config/arm/arm.c (arm_select_cc_mode): Recognize constructs that | |
9755 | need these modes. | |
9756 | (arm_gen_dicompare_reg): New code to early expand the sub-operations | |
9757 | of EQ, NE, LT, GE, LTU and GEU. | |
9758 | * config/arm/iterators.md (CC_EXTEND): New code attribute. | |
9759 | * config/arm/predicates.md (arm_adcimm_operand): New predicate.. | |
9760 | * config/arm/arm.md (cmpsi3_carryin_<CC_EXTEND>out): New pattern. | |
9761 | (cmpsi3_imm_carryin_<CC_EXTEND>out): Likewise. | |
9762 | (cmpsi3_0_carryin_<CC_EXTEND>out): Likewise. | |
9763 | ||
9764 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9765 | ||
9766 | * config/arm/arm.md (cbranchdi4): Accept reg_or_int_operand for | |
9767 | operand 2. | |
9768 | (cstoredi4): Similarly, but for operand 3. | |
9769 | * config/arm/arm.c (arm_canoncialize_comparison): Allow | |
9770 | canonicalization of unsigned compares with a constant on Arm. | |
9771 | Prefer using const+1 and adjusting the comparison over swapping the | |
9772 | operands whenever the original constant was not valid. | |
9773 | (arm_gen_dicompare_reg): If Y is not a valid operand, force it to a | |
9774 | register here. | |
9775 | (arm_validize_comparison): Do not force invalid DImode operands to | |
9776 | registers here. | |
9777 | ||
9778 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9779 | ||
9780 | * config/arm/arm.c (arm_select_cc_mode): For DImode equality tests | |
9781 | return CC_Zmode if comparing against a constant where one word is | |
9782 | zero. | |
9783 | (arm_gen_compare_reg): Split DImode handling to ... | |
9784 | (arm_gen_dicompare_reg): ... here. Handle equality comparisons | |
9785 | against simple constants. | |
9786 | * config/arm/arm.md (arm_cmpdi_zero): Delete pattern. | |
9787 | ||
9788 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9789 | ||
9790 | * config/arm/arm.md (subsi3_carryin_shift_alt): New pattern. | |
9791 | (rsbsi3_carryin_shift_alt): Likewise. | |
9792 | ||
9793 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9794 | ||
9795 | * config/arm/arm.md (negscc_borrow): New pattern. | |
9796 | (mov_negscc): Don't split if the insn would match negscc_borrow. | |
9797 | * config/arm/thumb2.md (thumb2_mov_negscc): Likewise. | |
9798 | (thumb2_mov_negscc_strict_it): Likewise. | |
9799 | ||
9800 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9801 | ||
9802 | * config/arm/arm.c (arm_insn_cost): New function. | |
9803 | (TARGET_INSN_COST): Override default definition. | |
9804 | ||
9805 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9806 | ||
9807 | * config/arm/arm.c (arm_rtx_costs_internal, case MINUS): Handle | |
9808 | borrow operations. | |
9809 | ||
9810 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9811 | ||
9812 | * config/arm/arm.c (strip_carry_operation): New function. | |
9813 | (arm_rtx_costs_internal, case PLUS): Handle addtion with carry-in | |
9814 | for SImode. | |
9815 | ||
9816 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9817 | ||
9818 | * config/arm/predicates.md (arm_carry_operation): New special | |
9819 | predicate. | |
9820 | * config/arm/iterators.md (LTUGEU): Delete iterator. | |
9821 | (cnb): Delete code attribute. | |
9822 | (optab): Delete ltu and geu elements. | |
9823 | * config/arm/arm.md (addsi3_carryin): Renamed from | |
9824 | addsi3_carryin_<optab>. Remove iterator and use arm_carry_operand. | |
9825 | (add0si3_carryin): Similarly, but from add0si3_carryin_<optab>. | |
9826 | (addsi3_carryin_alt2): Similarly, but from addsi3_carryin_alt2_<optab>. | |
9827 | (addsi3_carryin_clobercc): Similarly. | |
9828 | (addsi3_carryin_shift): Similarly. Do not allow register shifts in | |
9829 | Thumb2 state. | |
9830 | ||
9831 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9832 | ||
9833 | * config/arm/arm.md (arm_subdi3): Delete insn. | |
9834 | (zextendsidi_negsi, negdi_extendsidi): Delete insn_and_split. | |
9835 | ||
9836 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9837 | ||
9838 | * config/arm/arm-modes.def (CC_RSB): New CC mode. | |
9839 | * config/arm/predicates.md (arm_borrow_operation): Handle CC_RSBmode. | |
9840 | * config/arm/arm.c (arm_select_cc_mode): Detect when we should | |
9841 | return CC_RSBmode. | |
9842 | (maybe_get_arm_condition_code): Handle CC_RSBmode. | |
9843 | * config/arm/arm.md (subsi3_carryin): Make this pattern available to | |
9844 | expand. | |
9845 | (subdi3): Rewrite to early-expand the sub-operations. | |
9846 | (rsb_im_compare): New pattern. | |
9847 | (negdi2): Delete. | |
9848 | (negdi2_insn): Delete. | |
9849 | (arm_negsi2): Correct type attribute to alu_imm. | |
9850 | (negsi2_0compare): New insn pattern. | |
9851 | (negsi2_carryin): New insn pattern. | |
9852 | ||
9853 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9854 | ||
9855 | * config/arm/arm.md (addsi3_carryin_alt2): Use arm_not_operand for | |
9856 | operand 2. | |
9857 | ||
9858 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9859 | ||
9860 | * config/arm/arm.md (addsi3_carryin_shift_<optab>): Reorder operands | |
9861 | to match canonical form. | |
9862 | ||
9863 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9864 | ||
9865 | * config/arm/arm.md (zero_extend<mode>di2): Convert to define_expand. | |
9866 | (extend<mode>di2): Likewise. | |
9867 | ||
9868 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9869 | ||
9870 | * config/arm/arm-protos.h (arm_decompose_di_binop): New prototype. | |
9871 | * config/arm/arm.c (arm_decompose_di_binop): New function. | |
9872 | * config/arm/arm.md (adddi3): Also accept any const_int for op2. | |
9873 | If not generating Thumb-1 code, decompose the operation into 32-bit | |
9874 | pieces. | |
9875 | * add0si_carryin_<optab>: New pattern. | |
9876 | ||
9877 | 2019-10-18 Richard Earnshaw <rearnsha@arm.com> | |
9878 | ||
9879 | * arm.md (adddi3): Only accept register operands. | |
9880 | (arm_adddi3): Convert to simple insn with no split. Do not accept | |
9881 | constants. | |
9882 | (adddi_sesidi_di): Delete patern. | |
9883 | (adddi_zesidi_di): Likewise. | |
9884 | (uaddv<mode>4): Use LTU as condition for branch. | |
9885 | (adddi3_compareV): Convert to simple insn with no split. | |
9886 | (addsi3_compareV_upper): Delete pattern. | |
9887 | (adddi3_compareC): Convert to simple insn with no split. Correct | |
9888 | flags setting expression. | |
9889 | (addsi3_compareC_upper): Delete pattern. | |
9890 | (addsi3_compareC): Correct flags setting expression. | |
9891 | (subdi3_compare1): Convert to simple insn with no split. | |
9892 | (subsi3_carryin_compare): Delete pattern. | |
9893 | (arm_subdi3): Convert to simple insn with no split. | |
9894 | (subdi_zesidi): Delete pattern. | |
9895 | (subdi_di_sesidi): Delete pattern. | |
9896 | (subdi_zesidi_di): Delete pattern. | |
9897 | (subdi_sesidi_di): Delete pattern. | |
9898 | (subdi_zesidi_zesidi): Delete pattern. | |
9899 | (negvdi3): Use s_register_operand. | |
9900 | (negdi2_compare): Convert to simple insn with no split. | |
9901 | (negdi2_insn): Likewise. | |
9902 | (negsi2_carryin_compare): Delete pattern. | |
9903 | (negdi_zero_extendsidi): Delete pattern. | |
9904 | (arm_cmpdi_insn): Convert to simple insn with no split. | |
9905 | (negdi2): Don't call gen_negdi2_neon. | |
9906 | * config/arm/neon.md (adddi3_neon): Delete pattern. | |
9907 | (subdi3_neon): Delete pattern. | |
9908 | (negdi2_neon): Delete pattern. | |
9909 | (splits for negdi2_neon): Delete splits. | |
9910 | ||
9911 | 2019-10-18 Jakub Jelinek <jakub@redhat.com> | |
9912 | ||
9913 | PR middle-end/92153 | |
9914 | * ggc-page.c (release_pages): Read g->alloc_size before free rather | |
9915 | than after it. | |
9916 | ||
9917 | 2019-10-18 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
9918 | ||
9919 | * config/arm/t-multilib: Add rule to regenerate mutlilib header file | |
9920 | with any change to t-multilib, t-aprofile and t-rmprofile. Also add | |
9921 | new multilib variants and new mappings. | |
9922 | ||
9923 | 2019-10-18 Georg-Johann Lay <avr@gjlay.de> | |
9924 | ||
9925 | PR target/86040 | |
9926 | * config/avr/avr.c (avr_out_lpm): Do not shortcut-return. | |
9927 | ||
9928 | 2019-10-18 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
9929 | Richard Sandiford <richard.sandiford@arm.com> | |
9930 | ||
9931 | PR target/86753 | |
9932 | * tree-vectorizer.h (scalar_cond_masked_key): New struct, | |
9933 | and define hashmap traits for it. | |
9934 | (loop_vec_info::scalar_cond_masked_set): New member. | |
9935 | (vect_record_loop_mask): Adjust prototype. | |
9936 | * tree-vectorizer.c (scalar_cond_masked_key::get_cond_ops_from_tree): | |
9937 | Implement method. | |
9938 | * tree-vect-loop.c (vectorizable_reduction): Pass NULL as last arg to | |
9939 | vect_record_loop_mask. | |
9940 | (vectorizable_live_operation): Likewise. | |
9941 | (vect_record_loop_mask): New param scalar_mask. Add entry | |
9942 | cond, loop_mask to scalar_cond_masked_set if scalar_mask is non NULL. | |
9943 | * tree-vect-stmts.c (check_load_store_masking): New param scalar_mask. | |
9944 | Pass it as last arg to vect_record_loop_mask. | |
9945 | (vectorizable_call): Pass scalar_mask as last arg to | |
9946 | vect_record_loop_mask. | |
9947 | (vectorizable_store): Likewise. | |
9948 | (vectorizable_load): Likewise. | |
9949 | (vectorizable_condition): Check if another part of vectorized code | |
9950 | applies loop_mask to condition or to it's inverse, and if yes, | |
9951 | apply loop_mask to result of vector comparison. | |
9952 | ||
9953 | 2019-10-17 John David Anglin <danglin@gcc.gnu.org> | |
9954 | ||
9955 | * config/pa/pa.c (pa_output_indirect_call): Fix typos in last change. | |
9956 | ||
9957 | 2019-10-18 Jakub Jelinek <jakub@redhat.com> | |
9958 | ||
9959 | PR tree-optimization/92056 | |
9960 | * tree-ssa-strlen.c (determine_min_objsize): Call init_object_sizes | |
9961 | before calling compute_builtin_object_size. | |
9962 | ||
9963 | 2019-10-17 Iain Sandoe <iain@sandoe.co.uk> | |
9964 | ||
9965 | PR target/65342 | |
9966 | * config/rs6000/darwin.md (movdi_low, movsi_low_st): Delete. | |
9967 | (movdi_low_st): Delete. | |
9968 | * config/rs6000/rs6000.c | |
9969 | (darwin_rs6000_legitimate_lo_sum_const_p): New. | |
9970 | (mem_operand_gpr): Validate Mach-O LO_SUM cases separately. | |
9971 | * config/rs6000/rs6000.md (movsi_low): Delete. | |
9972 | ||
9973 | 2019-10-17 Jason Merrill <jason@redhat.com> | |
9974 | ||
9975 | * gimplify.h (get_initialized_tmp_var): Add default argument to | |
9976 | post_p. | |
9977 | * gimplify.c (gimplify_self_mod_expr, gimplify_omp_atomic): Remove | |
9978 | NULL post_p argument. | |
9979 | * targhooks (std_gimplify_va_arg_expr): Likewise. | |
9980 | ||
9981 | 2019-10-17 Richard Biener <rguenther@suse.de> | |
9982 | ||
9983 | * tree-vectorizer.h (_stmt_vec_info::cond_reduc_code): Remove. | |
9984 | (STMT_VINFO_VEC_COND_REDUC_CODE): Likewise. | |
9985 | * tree-vectorizer.c (vec_info::new_stmt_vec_info): Do not | |
9986 | initialize STMT_VINFO_VEC_COND_REDUC_CODE. | |
9987 | * tree-vect-loop.c (vect_is_simple_reduction): Set | |
9988 | STMT_VINFO_REDUC_CODE. | |
9989 | (vectorizable_reduction): Remove dead and redundant code, use | |
9990 | STMT_VINFO_REDUC_CODE instead of STMT_VINFO_VEC_COND_REDUC_CODE. | |
9991 | ||
9992 | 2019-10-17 Georg-Johann Lay <avr@gjlay.de> | |
9993 | ||
9994 | Fix breakage introduced by r276985. | |
9995 | ||
9996 | * config/avr/avr.c (avr_option_override): Remove set of | |
9997 | PARAM_ALLOW_STORE_DATA_RACES. | |
9998 | * common/config/avr/avr-common.c (avr_option_optimization_table) | |
9999 | [OPT_LEVELS_ALL]: Turn on -fallow-store-data-races. | |
10000 | ||
10001 | 2019-10-17 H.J. Lu <hongjiu.lu@intel.com> | |
10002 | ||
10003 | * config/i386/i386.h (processor_costs): Add clear_ratio. | |
10004 | (CLEAR_RATIO): Remove MIN and use ix86_cost->clear_ratio. | |
10005 | * config/i386/x86-tune-costs.h: Set clear_ratio to the minimum | |
10006 | of 6 and move_ratio in all cost models. | |
10007 | ||
10008 | 2019-10-17 Richard Biener <rguenther@suse.de> | |
10009 | ||
10010 | * tree-vect-loop.c (check_reduction_path): Compute reduction | |
10011 | operation here. | |
10012 | (vect_is_simple_reduction): Remove special-case of single-stmt | |
10013 | reduction path detection. | |
10014 | ||
10015 | 2019-10-17 Richard Earnshaw <rearnsha@arm.com> | |
10016 | ||
10017 | * config/arm/arm-cpus.in (marvel-pj4): Add +fp to the architecture. | |
10018 | ||
10019 | 2019-10-17 Yuliang Wang <yuliang.wang@arm.com> | |
10020 | ||
10021 | * config/aarch64/aarch64-sve2.md (aarch64_sve2_eor3<mode>) | |
10022 | (aarch64_sve2_nor<mode>, aarch64_sve2_nand<mode>) | |
10023 | (aarch64_sve2_bsl<mode>, aarch64_sve2_nbsl<mode>) | |
10024 | (aarch64_sve2_bsl1n<mode>, aarch64_sve2_bsl2n<mode>): | |
10025 | New combine patterns. | |
10026 | * config/aarch64/iterators.md (BSL_DUP): New int iterator for the | |
10027 | above. | |
10028 | (bsl_1st, bsl_2nd, bsl_dup, bsl_mov): Attributes for the above. | |
10029 | ||
10030 | 2019-10-17 Aldy Hernandez <aldyh@redhat.com> | |
10031 | ||
10032 | * tree-vrp.c (value_range_base::dump): Display +INF for both | |
10033 | pointers and integers when appropriate. | |
10034 | ||
10035 | 2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
10036 | ||
10037 | * tree-vect-loop.c (vect_analyze_loop_2): Use same condition to decide | |
10038 | when to use versioning threshold. | |
10039 | ||
10040 | 2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
10041 | ||
10042 | * tree-vect-loop.c (determine_peel_for_niter): New function contained | |
10043 | outlined code from ... | |
10044 | (vect_analyze_loop_2): ... here. | |
10045 | ||
10046 | 2019-10-17 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
10047 | ||
10048 | * tree-vect-loop.c (vect_transform_loop): Move code from here... | |
10049 | * tree-vect-loop-manip.c (vect_loop_versioning): ... to here. | |
10050 | * tree-vectorizer.h (vect_loop_versioning): Remove unused parameters. | |
10051 | ||
10052 | 2019-10-17 Richard Biener <rguenther@suse.de> | |
10053 | ||
10054 | * tree-vect-loop.c (needs_fold_left_reduction_p): Export. | |
10055 | (vect_is_simple_reduction): Move all validity checks ... | |
10056 | (vectorizable_reduction): ... here. Compute whether we | |
10057 | need a fold-left reduction here. | |
10058 | * tree-vect-patterns.c (vect_reassociating_reduction_p): Merge | |
10059 | both overloads, check needs_fold_left_reduction_p directly. | |
10060 | * tree-vectorizer.h (needs_fold_left_reduction_p): Declare. | |
10061 | ||
10062 | 2019-10-17 Richard Biener <rguenther@suse.de> | |
10063 | ||
10064 | * tree-ssa-pre.c (create_component_ref_by_pieces_1): Fix | |
10065 | TARGET_MEM_REF creation. | |
10066 | ||
10067 | 2019-10-17 Richard Biener <rguenther@suse.de> | |
10068 | ||
10069 | PR tree-optimization/92129 | |
10070 | * tree-vect-loop.c (vectorizable_reduction): Also fail | |
10071 | on GIMPLE_SINGLE_RHS. | |
10072 | ||
10073 | 2019-10-17 Jakub Jelinek <jakub@redhat.com> | |
10074 | ||
10075 | PR tree-optimization/92056 | |
10076 | * tree-object-size.c (cond_expr_object_size): Return early if then_ | |
10077 | processing resulted in unknown size. | |
10078 | ||
10079 | PR tree-optimization/92115 | |
10080 | * tree-ssa-ifcombine.c (ifcombine_ifandif): Force condition into | |
10081 | temporary if it could trap. | |
10082 | ||
10083 | 2019-10-17 Richard Biener <rguenther@suse.de> | |
10084 | ||
10085 | PR debug/91887 | |
10086 | * dwarf2out.c (gen_formal_parameter_die): Also try to match | |
10087 | context_die against a DW_TAG_GNU_formal_parameter_pack parent. | |
10088 | ||
10089 | 2019-10-16 Jakub Jelinek <jakub@redhat.com> | |
10090 | ||
10091 | * tree-ssa-strlen.c (maybe_invalidate): Use | |
10092 | HOST_WIDE_INT_PRINT_UNSIGNED instead of "%zu". | |
10093 | ||
10094 | 2019-10-16 Andrew Burgess <andrew.burgess@embecosm.com> | |
10095 | Jim Wilson <jimw@sifive.com> | |
10096 | ||
10097 | * config/riscv/riscv.h (REG_CLASS_CONTENTS): Add argument passing | |
10098 | regs to SIBCALL_REGS. | |
10099 | * config/riscv/riscv.c (riscv_regno_to_class): Change argument | |
10100 | passing regs to SIBCALL_REGS. | |
10101 | ||
10102 | 2019-10-16 Martin Sebor <msebor@redhat.com> | |
10103 | ||
10104 | PR tree-optimization/83821 | |
10105 | * tree-ssa-strlen.c (maybe_invalidate): Add argument. Consider | |
10106 | the length of a string when available. | |
10107 | (handle_builtin_memset) Add argument. | |
10108 | (handle_store, strlen_check_and_optimize_call): Same. | |
10109 | (check_and_optimize_stmt): Same. Pass it to callees. | |
10110 | ||
10111 | 2019-10-16 Martin Sebor <msebor@redhat.com> | |
10112 | ||
10113 | PR tree-optimization/91996 | |
10114 | * tree-ssa-strlen.c (maybe_warn_pointless_strcmp): Improve location | |
10115 | information. | |
10116 | (compare_nonzero_chars): Add an overload. | |
10117 | (count_nonzero_bytes): Add an argument. Call overload above. | |
10118 | Handle non-constant lengths in some range. | |
10119 | (handle_store): Add an argument. | |
10120 | (check_and_optimize_stmt): Pass an argument to handle_store. | |
10121 | ||
10122 | 2019-10-16 Richard Earnshaw <rearnsha@arm.com> | |
10123 | ||
10124 | * config/arm/arm.c (neon_valid_immediate): Clear bytes before use. | |
10125 | ||
10126 | 2019-10-16 Mihailo Stojanovic <mistojanovic@wavecomp.com> | |
10127 | ||
10128 | * config/mips/mips.c (mips_expand_builtin_insn): Force the | |
10129 | operands which correspond to the same input-output register to | |
10130 | have the same pseudo assigned to them. | |
10131 | ||
10132 | 2019-10-16 Ilya Leoshkevich <iii@linux.ibm.com> | |
10133 | ||
10134 | * cfgrtl.c (find_partition_fixes): Remove bbs_in_cold_partition. | |
10135 | ||
10136 | 2019-10-16 Wilco Dijkstra <wdijkstr@arm.com> | |
10137 | ||
10138 | * config/aarch64/aarch64.c (aarch64_classify_symbol): | |
10139 | Apply reasonable limit to symbol offsets. | |
10140 | ||
10141 | 2019-10-16 Richard Biener <rguenther@suse.de> | |
10142 | ||
10143 | * tree-vect-loop.c (vect_valid_reduction_input_p): Remove. | |
10144 | (vect_is_simple_reduction): Delay checking to | |
10145 | vectorizable_reduction and relax the checking. | |
10146 | (vectorizable_reduction): Check we have a simple use. Check | |
10147 | for bogus condition reductions. | |
10148 | * tree-vect-stmts.c (vect_transform_stmt): Make sure we | |
10149 | are looking at the last stmt in a pattern sequence when | |
10150 | filling in backedge PHI values. | |
10151 | ||
10152 | 2019-10-16 Peter Bergner <bergner@linux.ibm.com> | |
10153 | Jiufu Guo <guojiufu@linux.ibm.com> | |
10154 | ||
10155 | PR target/70010 | |
10156 | * config/rs6000/rs6000.c (rs6000_can_inline_p): Prohibit inlining if | |
10157 | the callee explicitly disables some isa_flags the caller is using. | |
10158 | ||
10159 | 2019-10-16 Richard Sandiford <richard.sandiford@arm.com> | |
10160 | ||
10161 | * function-abi.cc (expr_callee_abi): Assert for POINTER_TYPE_P. | |
10162 | ||
10163 | 2019-10-16 Richard Sandiford <richard.sandiford@arm.com> | |
10164 | ||
10165 | * genmodes.c (mode_data::order): New field. | |
10166 | (blank_mode): Update accordingly. | |
10167 | (VECTOR_MODES_WITH_PREFIX): Add an order parameter. | |
10168 | (make_vector_modes): Likewise. | |
10169 | (VECTOR_MODES): Update use accordingly. | |
10170 | (cmp_modes): Sort by the new order field ahead of sorting by size. | |
10171 | * config/aarch64/aarch64-modes.def (VNx2QI, VN2xHI, VNx2SI) | |
10172 | (VNx4QI, VNx4HI, VNx8QI): New partial vector modes. | |
10173 | * config/aarch64/aarch64.c (VEC_PARTIAL): New flag value. | |
10174 | (aarch64_classify_vector_mode): Handle the new partial modes. | |
10175 | (aarch64_vl_bytes): New function. | |
10176 | (aarch64_hard_regno_nregs): Use it instead of BYTES_PER_SVE_VECTOR | |
10177 | when counting the number of registers in an SVE mode. | |
10178 | (aarch64_class_max_nregs): Likewise. | |
10179 | (aarch64_hard_regno_mode_ok): Don't allow partial vectors | |
10180 | in registers yet. | |
10181 | (aarch64_classify_address): Treat partial vectors analogously | |
10182 | to full vectors. | |
10183 | (aarch64_print_address_internal): Consolidate the printing of | |
10184 | MUL VL addresses, using aarch64_vl_bytes as the number of | |
10185 | bytes represented by "VL". | |
10186 | (aarch64_vector_mode_supported_p): Reject partial vector modes. | |
10187 | ||
10188 | 2019-10-16 Richard Sandiford <richard.sandiford@arm.com> | |
10189 | ||
10190 | * config/aarch64/aarch64.c (aarch64_layout_frame): Use is_constant | |
10191 | rather than known_lt when choosing frame layouts. | |
10192 | ||
10193 | 2019-10-16 Richard Sandiford <richard.sandiford@arm.com> | |
10194 | ||
10195 | * config/aarch64/aarch64.c (aarch64_layout_frame): Assert | |
10196 | that all the adjustments add up to the full frame size. | |
10197 | Use crtl->outgoing_args_size directly as the final adjustment | |
10198 | where appropriate. | |
10199 | ||
10200 | 2019-10-16 Richard Sandiford <richard.sandiford@arm.com> | |
10201 | ||
10202 | * config/aarch64/aarch64.c (aarch64_layout_frame): Use a local | |
10203 | "frame" reference instead of always referring directly to | |
10204 | "cfun->machine->frame". | |
10205 | ||
10206 | 2019-10-16 Richard Biener <rguenther@suse.de> | |
10207 | ||
10208 | PR tree-optimization/92119 | |
10209 | * tree-vect-patterns.c (vect_recog_rotate_pattern): Guard | |
10210 | against missing bswap lhs. | |
10211 | ||
10212 | 2019-10-16 Richard Sandiford <richard.sandiford@arm.com> | |
10213 | ||
10214 | PR middle-end/92033 | |
10215 | * poly-int.h (constant_lower_bound_with_limit): New function. | |
10216 | (constant_upper_bound_with_limit): Likewise. | |
10217 | * doc/poly-int.texi: Document them. | |
10218 | * tree-vrp.c (value_range_base::set): Convert POLY_INT_CST bounds | |
10219 | into the worst-case INTEGER_CST bounds. | |
10220 | ||
10221 | 2019-10-16 Feng Xue <fxue@os.amperecomputing.com> | |
10222 | ||
10223 | PR ipa/91088 | |
10224 | * doc/invoke.texi (ipa-max-param-expr-ops): Document new option. | |
10225 | * params.def (PARAM_IPA_MAX_PARAM_EXPR_OPS): New. | |
10226 | * ipa-predicat.h (struct expr_eval_op): New struct. | |
10227 | (expr_eval_ops): New typedef. | |
10228 | (struct condition): Add type and param_ops fields, remove size field. | |
10229 | (add_condition): Replace size parameter with type parameter, add | |
10230 | param_ops parameter. | |
10231 | * ipa-predicat.c (expr_eval_ops_equal_p): New function. | |
10232 | (predicate::add_clause): Add comparisons on type and param_ops. | |
10233 | (dump_condition): Add debug dump for param_ops. | |
10234 | (remap_after_inlining): Adjust call arguments to add_condition. | |
10235 | (add_condition): Replace size parameter with type parameter, add | |
10236 | param_ops parameter. Unshare constant value used in conditions. | |
10237 | * ipa-fnsummary.c (evaluate_conditions_for_known_args): Fold | |
10238 | parameter expressions using param_ops. | |
10239 | (decompose_param_expr): New function. | |
10240 | (set_cond_stmt_execution_predicate): Use call to decompose_param_expr | |
10241 | to replace call to unmodified_parm_or_parm_agg_item. | |
10242 | (set_switch_stmt_execution_predicate): Likewise. | |
10243 | (will_be_nonconstant_expr_predicate): Likewise. Replace usage of size | |
10244 | with type. | |
10245 | (inline_read_section): Read param_ops from summary stream. | |
10246 | (ipa_fn_summary_write): Write param_ops to summary stream. | |
10247 | ||
10248 | 2019-10-15 Segher Boessenkool <segher@kernel.crashing.org> | |
10249 | ||
10250 | PR rtl-optimization/92107 | |
10251 | * genattrtab.c (write_attr_value) <do_operator>: Parenthesize the | |
10252 | expression written. | |
10253 | ||
10254 | 2019-10-15 Iain Sandoe <iain@sandoe.co.uk> | |
10255 | ||
10256 | * config/darwin.c: Update description of fix and continue. | |
10257 | ||
10258 | 2019-10-15 Iain Sandoe <iain@sandoe.co.uk> | |
10259 | ||
10260 | * config/darwin.c (darwin_binds_local_p): Update to call | |
10261 | default_binds_local_p_3 () directly. amend comments. | |
10262 | ||
10263 | 2019-10-15 Richard Biener <rguenther@suse.de> | |
10264 | ||
10265 | * lto-streamer-out.c (lto_variably_modified_type_p): New. | |
10266 | (tree_is_indexable): Use it. | |
10267 | * tree-streamer-out.c (pack_ts_type_common_value_fields): | |
10268 | Stream variably_modified_type_p as TYPE_LANG_FLAG_0. | |
10269 | * tree-streamer-in.c (unpack_ts_type_common_value_fields): Likewise. | |
10270 | ||
10271 | 2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
10272 | ||
10273 | * config/msp430/msp430.md (zero_extendqipsi2): New. | |
10274 | (zero_extendqisi2): Optimize case where src register and base dst | |
10275 | register are the same. | |
10276 | (zero_extendhipsi2): Don't use 430X insn for rYs->r case. | |
10277 | (zero_extendpsisi2): Optimize r->m case. | |
10278 | Add unnamed insn patterns to catch insns combine searches for when | |
10279 | optimizing pointer manipulation. | |
10280 | ||
10281 | 2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
10282 | ||
10283 | * config/msp430/msp430.md: Group zero_extend* insns together. | |
10284 | ||
10285 | 2019-10-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
10286 | ||
10287 | * config/msp430/constraints.md: Allow post_inc operand for "Ya" | |
10288 | constraint. | |
10289 | * config/msp430/msp430.c (msp430_legitimate_address_p): Handle | |
10290 | POST_INC. | |
10291 | (msp430_subreg): Likewise. | |
10292 | (msp430_split_addsi): Likewise. | |
10293 | (msp430_print_operand_addr): Likewise. | |
10294 | * config/msp430/msp430.h (HAVE_POST_INCREMENT): Define. | |
10295 | (USE_STORE_POST_INCREMENT): Define. | |
10296 | * config/msp430/msp430.md: Use the msp430_general_dst_operand or | |
10297 | msp430_general_dst_nonv_operand predicates for the lvalues of insns. | |
10298 | * config/msp430/predicates.md (msp430_nonpostinc_operand): New. | |
10299 | (msp430_general_dst_operand): New. | |
10300 | (msp430_general_dst_nonv_operand): New. | |
10301 | (msp430_nonsubreg_operand): Remove. | |
10302 | (msp430_nonsubreg_dst_operand): New. | |
10303 | (msp430_nonsubreg_or_imm_operand): Allow reg or mem operands in place | |
10304 | of defunct msp430_nonsubreg_operand. | |
10305 | (msp430_nonsubregnonpostinc_or_imm_operand): New. | |
10306 | ||
10307 | 2019-10-15 Richard Biener <rguenther@suse.de> | |
10308 | ||
10309 | PR tree-optimization/91929 | |
10310 | * tree-ssa-pre.c (pre_expr_d::loc): New member. | |
10311 | (get_or_alloc_expr_for_name): Initialize it. | |
10312 | (get_or_alloc_expr_for_constant): Likewise. | |
10313 | (phi_translate_1): Copy it. | |
10314 | (create_expression_by_pieces): Use the original location | |
10315 | of the expression for the inserted stmt. | |
10316 | (compute_avail): Record the location of the stmt for the | |
10317 | expressions created. | |
10318 | ||
10319 | 2019-10-15 Richard Sandiford <richard.sandiford@arm.com> | |
10320 | ||
10321 | * tree-ssa-strlen.c (count_nonzero_bytes): Check tree_fits_uhwi_p | |
10322 | before using tree_to_uhwi. | |
10323 | ||
10324 | 2019-10-15 Ilya Leoshkevich <iii@linux.ibm.com> | |
10325 | ||
10326 | * config/s390/s390.md: Run %a0:DI splitters only after reload. | |
10327 | ||
10328 | 2019-10-15 Richard Biener <rguenther@suse.de> | |
10329 | ||
10330 | PR tree-optimization/92094 | |
10331 | * tree-vect-loop.c (vectorizable_reduction): For nested cycles | |
10332 | do not adjust the reduction definition def type. | |
10333 | * tree-vect-stmts.c (vect_transform_stmt): Verify the scalar stmt | |
10334 | defines the latch argument of the PHI. | |
10335 | ||
10336 | 2019-10-15 Hongyu Wang <hongtao.wang@intel.com> | |
10337 | ||
10338 | PR target/92035 | |
10339 | * config/i386/avx512fintrin.h (_mm_mask_roundscale_ss, | |
10340 | _mm_maskz_roundscale_ss, _mm_maskz_roundscale_round_ss, | |
10341 | _mm_maskz_roundscale_round_ss, _mm_mask_roundscale_sd, | |
10342 | _mm_maskz_roundscale_sd, _mm_mask_roundscale_round_sd, | |
10343 | _mm_maskz_roundscale_round_sd): New intrinsics. | |
10344 | (_mm_roundscale_ss, _mm_roundscale_round_ss): Use | |
10345 | __builtin_ia32_rndscales?_mask_round builtins instead of | |
10346 | __builtin_ia32_rndscales?_round. | |
10347 | * config/i386/i386-builtin.def (__builtin_ia32_rndscaless_round, | |
10348 | __builtin_ia32_rndscalesd_round): Remove. | |
10349 | (__builtin_ia32_rndscaless_mask_round, | |
10350 | __builtin_ia32_rndscalesd_mask_round): New intrinsics. | |
10351 | * config/i386/sse.md | |
10352 | (avx512f_rndscale<mode><round_saeonly_name>): Renamed to ... | |
10353 | (avx512f_rndscale<mode><mask_scalar_name><round_saeonly_scalar_name>): | |
10354 | ... this, adjust and add subst atrributes to make it maskable. | |
10355 | ||
10356 | 2019-10-15 Richard Biener <rguenther@suse.de> | |
10357 | ||
10358 | PR middle-end/92046 | |
10359 | * common.opt (fallow-store-data-races): New. | |
10360 | * params.def (PARAM_ALLOW_STORE_DATA_RACES): Remove. | |
10361 | * params.h (ALLOW_STORE_DATA_RACES): Likewise. | |
10362 | * doc/invoke.texi (fallow-store-data-races): Document. | |
10363 | (--param allow-store-data-races): Remove docs. | |
10364 | * opts.c (default_options_table): Enable -fallow-store-data-races | |
10365 | at -Ofast. | |
10366 | (default_options_optimization): Do not enable --param | |
10367 | allow-store-data-races at -Ofast. | |
10368 | * tree-if-conv.c (ifcvt_memrefs_wont_trap): Use flag_store_data_races | |
10369 | instead of PARAM_ALLOW_STORE_DATA_RACES. | |
10370 | * tree-ssa-loop-im.c (execute_sm): Likewise. | |
10371 | ||
10372 | 2019-10-15 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
10373 | ||
10374 | PR tree-optimization/92085 | |
10375 | * tree-if-conv.c (ifcvt_local_dce): Call gsi_next in else clause, | |
10376 | instead of calling it unconditionally after | |
10377 | delete_dead_or_redundant_assignment and fix indentation. | |
10378 | ||
10379 | 2019-10-15 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
10380 | ||
10381 | * config/arm/vfp.md (fma<SDF:mode>4): Enable DF only when | |
10382 | TARGET_VFP_DOUBLE. | |
10383 | (*fmsub<SDF:mode>4): Likewise. | |
10384 | *fnmsub<SDF:mode>4): Likewise. | |
10385 | (*fnmadd<SDF:mode>4): Likewise. | |
10386 | ||
10387 | 2019-10-14 Joel Hutton <Joel.Hutton@arm.com> | |
10388 | ||
10389 | * doc/tree-ssa.texi: Update renamed macro name. | |
10390 | ||
10391 | 2019-10-14 Mihailo Stojanovic <mistojanovic@wavecomp.com> | |
10392 | ||
10393 | * config/mips/mips.c (mips_cannot_force_const_mem): Reject | |
10394 | vector constants. | |
10395 | ||
10396 | 2019-10-14 Iain Sandoe <iain@sandoe.co.uk> | |
10397 | ||
10398 | * config/darwin.c: Use unsigned ints for the picbase label | |
10399 | counters, initialise the vars explicitly. | |
10400 | (update_pic_label_number_if_needed): Move a variable declaration | |
10401 | to where it's needed. | |
10402 | (machopic_output_function_base_name): Use a more strict checking | |
10403 | assert, and and unsigned int for the picbase label counter. | |
10404 | (machopic_get_function_picbase): Likewise. | |
10405 | ||
10406 | 2019-10-14 Richard Biener <rguenther@suse.de> | |
10407 | ||
10408 | PR middle-end/92046 | |
10409 | * dse.c (scan_insn): Use param max_active_local_stores. | |
10410 | (dse_step1): Get PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and adjust | |
10411 | based on optimization level. | |
10412 | * loop-invariant.c (move_loop_invariants): Adjust | |
10413 | LOOP_INVARIANT_MAX_BBS_IN_LOOP based on optimization level. | |
10414 | * opts.c (default_options_optimization): Do not adjust | |
10415 | PARAM_MAX_DSE_ACTIVE_LOCAL_STORES and | |
10416 | LOOP_INVARIANT_MAX_BBS_IN_LOOP here. | |
10417 | ||
10418 | 2019-10-14 Wilco Dijkstra <wdijkstr@arm.com> | |
10419 | ||
10420 | * config/arm/arm.c (arm_legitimize_address): Remove Thumb-2 bailout. | |
10421 | ||
10422 | 2019-10-14 Wilco Dijkstra <wdijkstr@arm.com> | |
10423 | ||
10424 | * config/arm/arm.c (arm_option_override): Don't override sched | |
10425 | pressure algorithm. | |
10426 | ||
10427 | 2019-10-14 Richard Biener <rguenther@suse.de> | |
10428 | ||
10429 | PR tree-optimization/92069 | |
10430 | * tree-vect-loop.c (vect_analyze_scalar_cycles_1): For nested | |
10431 | cycles do not set vect_nested_cycle on the latch definition. | |
10432 | ||
10433 | 2019-10-14 Richard Sandiford <richard.sandiford@arm.com> | |
10434 | ||
10435 | * function-abi.h (expr_callee_abi): Declare. | |
10436 | * function-abi.cc (expr_callee_abi): New function. | |
10437 | ||
10438 | 2019-10-14 Aldy Hernandez <aldyh@redhat.com> | |
10439 | ||
10440 | * tree-vrp.c (value_range_base::set): Normalize unsigned ~[0,0] | |
10441 | into [1,MAX]. | |
10442 | * tree-vrp.h (value_range_base::nonzero_p): Adjust for unsigned | |
10443 | non-zero being represented as [1,MAX]. | |
10444 | ||
10445 | 2019-10-14 Xiong Hu Luo <luoxhu@linux.ibm.com> | |
10446 | ||
10447 | * tree-sra.c (dump_access): Add missing braces. | |
10448 | ||
10449 | 2019-10-13 Iain Sandoe <iain@sandoe.co.uk> | |
10450 | ||
10451 | * config/darwin.c (machopic_indirection_name): Rework the | |
10452 | function to emit linker-visible symbols only for indirections | |
10453 | in the data section. Clean up the code and update comments. | |
10454 | ||
10455 | 2019-10-13 Iain Sandoe <iain@sandoe.co.uk> | |
10456 | ||
10457 | * config/darwin.c (machopic_indirect_data_reference): Remove | |
10458 | redundant code. | |
10459 | ||
10460 | 2019-10-13 Nathan Sidwell <nathan@acm.org> | |
10461 | ||
10462 | * gengtype-lex.l (CXX_KEYWORD): Add 'mutable'. | |
10463 | ||
10464 | 2019-10-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
10465 | ||
10466 | * doc/sourcebuild.texi (Test Directives, Add Options): Remove | |
10467 | c99_runtime. | |
10468 | ||
10469 | 2019-10-12 Jan Hubicka <hubicka@ucw.cz> | |
10470 | ||
10471 | * lto-streamer-out.c (collect_block_tree_leafs): Renumber statements | |
10472 | so non-virutal are before virutals. | |
10473 | (output_function): Avoid body modifications. | |
10474 | ||
10475 | 2019-10-12 John David Anglin <danglin@gcc.gnu.org> | |
10476 | ||
10477 | * config/pa/pa.c (pa_output_call): Load descriptor address to register | |
10478 | %r22. Load function address before global pointer. | |
10479 | (pa_attr_length_indirect_call): Adjust length of inline versions of | |
10480 | $$dyncall. | |
10481 | (pa_output_indirect_call): Remove fast inline version of $$dyncall | |
10482 | before normal cases. Update inline $$dyncall sequences to preserve | |
10483 | function descriptor address in register %r22. | |
10484 | (TRAMPOLINE_CODE_SIZE): Adjust. | |
10485 | (pa_asm_trampoline_template): Revise 32-bit trampoline. Don't assume | |
10486 | register %r22 contains trampoline address. | |
10487 | (pa_trampoline_init): Adjust offsets. | |
10488 | (pa_trampoline_adjust_address): Likewise. | |
10489 | * config/pa/pa.h (TRAMPOLINE_SIZE): Adjust 32-bit size. | |
10490 | ||
10491 | 2019-10-12 Iain Sandoe <iain@sandoe.co.uk> | |
10492 | ||
10493 | PR target/67183 | |
10494 | * config/darwin.c (machopic_indirection): New field to flag | |
10495 | non-lazy-symbol-pointers in the data section. | |
10496 | (machopic_indirection_name): Compute if an indirection should | |
10497 | appear in the data section. | |
10498 | (machopic_output_data_section_indirection): New callback split | |
10499 | from machopic_output_indirection. | |
10500 | (machopic_output_stub_indirection): Likewise. | |
10501 | (machopic_output_indirection): Retain the code for non-lazy | |
10502 | symbol pointers in their regular section. | |
10503 | (machopic_finish): Use the new callbacks to order the indirection | |
10504 | output. | |
10505 | ||
10506 | 2019-10-12 Iain Sandoe <iain@sandoe.co.uk> | |
10507 | ||
10508 | * config/darwin-protos.h (machopic_finish): Delete. | |
10509 | * config/darwin.c (machopic_finish): Make static. | |
10510 | ||
10511 | 2019-10-12 Iain Sandoe <iain@sandoe.co.uk> | |
10512 | ||
10513 | * config/darwin.c (darwin_file_end): Only emit empty CTOR/DTOR | |
10514 | sections when building kernel extension code. | |
10515 | ||
10516 | 2019-10-12 Palmer Dabbelt <palmer@sifive.com> | |
10517 | ||
10518 | * doc/extend.texi (Alternate Keywords): Change "-std=c11" to "a | |
10519 | later standard." | |
10520 | ||
10521 | 2019-10-12 John David Anglin <danglin@gcc.gnu.org> | |
10522 | ||
10523 | * config/pa/pa.c (pa_option_override): Remove trailing comma | |
10524 | from warning. | |
10525 | ||
10526 | 2019-10-12 Jakub Jelinek <jakub@redhat.com> | |
10527 | ||
10528 | PR middle-end/92063 | |
10529 | * tree-eh.c (operation_could_trap_helper_p) <case COND_EXPR> | |
10530 | <case VEC_COND_EXPR>: Return false with *handled = false. | |
10531 | (tree_could_trap_p): For {,VEC_}COND_EXPR return false instead of | |
10532 | recursing on the first operand. | |
10533 | * fold-const.c (simple_operand_p_2): Use generic_expr_could_trap_p | |
10534 | instead of tree_could_trap_p. | |
10535 | * tree-ssa-sccvn.c (vn_nary_may_trap): Formatting fixes. | |
10536 | ||
10537 | 2019-10-11 Jim Wilson <jimw@sifive.com> | |
10538 | ||
10539 | PR rtl-optimization/91860 | |
10540 | * combine.c (subst): If new_rtx is a constant, also check for | |
10541 | SIGN_EXTEND when deciding whether to call simplify_unary_operation. | |
10542 | ||
10543 | 2019-10-11 Richard Sandiford <richard.sandiford@arm.com> | |
10544 | ||
10545 | * expr.c (store_expr): Use rtx_to_poly_int64 rather than | |
10546 | INTVAL when calling store_bit_field. | |
10547 | ||
10548 | 2019-10-11 Wilco Dijkstra <wdijkstr@arm.com> | |
10549 | ||
10550 | * config/arm/arm.h (HONOR_REG_ALLOC_ORDER): Set when optimizing for | |
10551 | size. | |
10552 | ||
10553 | 2019-10-11 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
10554 | ||
10555 | * tree-vect-loop.c (vect_analyze_loop_operations): Adjust call to | |
10556 | vectorizable_live_operation. | |
10557 | (vectorizable_live_operation): Adjust parameters. | |
10558 | * tree-vect-stmts.c (vect_init_vector, | |
10559 | vect_gen_widened_results_half): Fix typo in function comment. | |
10560 | (can_vectorize_live_stmts): Adjust function comment. | |
10561 | Adjust parameters. Adjust call to vectorizable_live_operation. | |
10562 | (vect_analyze_stmt): Adjust call to can_vectorize_live_stmts. | |
10563 | (vect_transform_stmt): Adjust function comment. Adjust call to | |
10564 | can_vectorize_live_stmts. | |
10565 | * tree-vectorizer.h (vectorizable_live_operation): Adjust parameters. | |
10566 | ||
10567 | 2019-10-11 Richard Biener <rguenther@suse.de> | |
10568 | ||
10569 | PR tree-optimization/90883 | |
10570 | PR tree-optimization/91091 | |
10571 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Use correct | |
10572 | alias-sets both for recording VN table entries and continuing | |
10573 | walking after translating through copies. Handle same-sized | |
10574 | reads from SSA names by returning the plain SSA name. | |
10575 | (eliminate_dom_walker::eliminate_stmt): Properly handle | |
10576 | non-size precision stores in redundant store elimination. | |
10577 | ||
10578 | 2019-10-11 Jan Hubicka <hubicka@ucw.cz> | |
10579 | ||
10580 | * ggc-page.c (release_pages): Output statistics when !quiet_flag. | |
10581 | (ggc_collect): Dump later to not interfere with release_page dump. | |
10582 | (ggc_trim): New function. | |
10583 | * ggc-none.c (ggc_trim): New. | |
10584 | * ggc.h (ggc_trim): Declare. | |
10585 | ||
10586 | 2019-10-11 Richard Biener <rguenther@suse.de> | |
10587 | ||
10588 | PR tree-optimization/92066 | |
10589 | PR tree-optimization/92046 | |
10590 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): | |
10591 | Fix bogus cost model check. | |
10592 | ||
10593 | 2019-10-11 Tobias Burnus <tobias@codesourcery.com> | |
10594 | ||
10595 | * langhooks-def.h (LANG_HOOKS_OMP_IS_ALLOCATABLE_OR_PTR): Define. | |
10596 | (LANG_HOOKS_DECLS): Add it. | |
10597 | * langhooks.h (lang_hooks_for_decls): Add omp_is_allocatable_or_ptr; | |
10598 | update comment for omp_is_optional_argument. | |
10599 | * omp-general.c (omp_is_allocatable_or_ptr): New. | |
10600 | * omp-general.h (omp_is_allocatable_or_ptr): Declare. | |
10601 | * omp-low.c (scan_sharing_clauses, lower_omp_target): Handle | |
10602 | Fortran's optional arguments and allocatable/pointer scalars | |
10603 | with use_device_addr. | |
10604 | ||
10605 | 2019-10-11 Ilya Leoshkevich <iii@linux.ibm.com> | |
10606 | ||
10607 | PR target/77918 | |
10608 | * config/s390/2827.md: Add new opcodes. | |
10609 | * config/s390/2964.md: Likewise. | |
10610 | * config/s390/3906.md: Likewise. | |
10611 | * config/s390/8561.md: Likewise. | |
10612 | * config/s390/s390-builtins.def (s390_vfchesb): Use | |
10613 | the new vec_cmpgev4sf_quiet_nocc. | |
10614 | (s390_vfchedb): Use the new vec_cmpgev2df_quiet_nocc. | |
10615 | (s390_vfchsb): Use the new vec_cmpgtv4sf_quiet_nocc. | |
10616 | (s390_vfchdb): Use the new vec_cmpgtv2df_quiet_nocc. | |
10617 | (vec_cmplev4sf): Use the new vec_cmplev4sf_quiet_nocc. | |
10618 | (vec_cmplev2df): Use the new vec_cmplev2df_quiet_nocc. | |
10619 | (vec_cmpltv4sf): Use the new vec_cmpltv4sf_quiet_nocc. | |
10620 | (vec_cmpltv2df): Use the new vec_cmpltv2df_quiet_nocc. | |
10621 | * config/s390/s390-modes.def (CCSFPS): New mode. | |
10622 | * config/s390/s390.c (s390_match_ccmode_set): Support CCSFPS. | |
10623 | (s390_select_ccmode): Return CCSFPS for LT, LE, GT, GE and LTGT. | |
10624 | (s390_branch_condition_mask): Reuse CCS for CCSFPS. | |
10625 | (s390_expand_vec_compare): Use non-signaling patterns where | |
10626 | necessary. | |
10627 | (s390_reverse_condition): Support CCSFPS. | |
10628 | * config/s390/s390.md (*cmp<mode>_ccsfps): New pattern. | |
10629 | * config/s390/vector.md: (VFCMP_HW_OP): Remove. | |
10630 | (asm_fcmp_op): Likewise. | |
10631 | (*smaxv2df3_vx): Use pattern for quiet comparison. | |
10632 | (*sminv2df3_vx): Likewise. | |
10633 | (*vec_cmp<VFCMP_HW_OP:code><mode>_nocc): Remove. | |
10634 | (*vec_cmpeq<mode>_quiet_nocc): New pattern. | |
10635 | (vec_cmpgt<mode>_quiet_nocc): Likewise. | |
10636 | (vec_cmplt<mode>_quiet_nocc): New expander. | |
10637 | (vec_cmpge<mode>_quiet_nocc): New pattern. | |
10638 | (vec_cmple<mode>_quiet_nocc): New expander. | |
10639 | (*vec_cmpeq<mode>_signaling_nocc): New pattern. | |
10640 | (*vec_cmpgt<mode>_signaling_nocc): Likewise. | |
10641 | (*vec_cmpgt<mode>_signaling_finite_nocc): Likewise. | |
10642 | (*vec_cmpge<mode>_signaling_nocc): Likewise. | |
10643 | (*vec_cmpge<mode>_signaling_finite_nocc): Likewise. | |
10644 | (vec_cmpungt<mode>): New expander. | |
10645 | (vec_cmpunge<mode>): Likewise. | |
10646 | (vec_cmpuneq<mode>): Use quiet patterns. | |
10647 | (vec_cmpltgt<mode>): Allow only on z14+. | |
10648 | (vec_cmpordered<mode>): Use quiet patterns. | |
10649 | (vec_cmpunordered<mode>): Likewise. | |
10650 | (VEC_CMP_EXPAND): Add ungt and unge. | |
10651 | ||
10652 | 2019-10-11 Jan Hubicka <hubicka@ucw.cz> | |
10653 | ||
10654 | * gimple-streamer-out.c (output_gimple_stmt): Add explicit function | |
10655 | parameter. | |
10656 | * lto-streamer-out.c: Include tree-dfa.h. | |
10657 | (output_cfg): Do not use cfun. | |
10658 | (lto_prepare_function_for_streaming): New. | |
10659 | (output_function): Do not push cfun; do not initialize loop optimizer. | |
10660 | * lto-streamer.h (lto_prepare_function_for_streaming): Declare. | |
10661 | * passes.c (ipa_write_summaries): Use it. | |
10662 | (ipa_write_optimization_summaries): Do not modify bodies. | |
10663 | * tree-dfa.c (renumber_gimple_stmt_uids): Add function parameter. | |
10664 | * tree.dfa.h (renumber_gimple_stmt_uids): Update prototype. | |
10665 | * tree-ssa-dse.c (pass_dse::execute): Update use of | |
10666 | renumber_gimple_stmt_uids. | |
10667 | * tree-ssa-math-opts.c (pass_optimize_widening_mul::execute): Likewise. | |
10668 | ||
10669 | 2019-10-11 Kewen Lin <linkw@gcc.gnu.org> | |
10670 | ||
10671 | * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower | |
10672 | vec_promote_demote cost to 1 for non-Power7 VSX architectures. | |
10673 | ||
10674 | 2019-10-10 Joseph Myers <joseph@codesourcery.com> | |
10675 | ||
10676 | * ginclude/float.h [!__DEC32_MANT_DIG__]: Do not define DFP | |
10677 | macros. | |
10678 | [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L]: | |
10679 | Also define DFP macros for these conditions. | |
10680 | [!__STDC_WANT_DEC_FP__] (DEC32_SUBNORMAL_MIN, DEC64_SUBNORMAL_MIN, | |
10681 | DEC128_SUBNORMAL_MIN): Do not define. | |
10682 | [__STDC_WANT_IEC_60559_DFP_EXT__ || __STDC_VERSION__ > 201710L] | |
10683 | (DEC32_TRUE_MIN, DEC64_TRUE_MIN, DEC128_TRUE_MIN): New macros. | |
10684 | ||
10685 | 2019-10-10 Xiong Hu Luo <luoxhu@linux.ibm.com> | |
10686 | Sandra Loosemore <sandra@codesourcery.com> | |
10687 | ||
10688 | PR middle-end/26241 | |
10689 | * doc/lto.texi (IPA): Reference to the IPA passes. | |
10690 | * doc/passes.texi (Pass manager): Add node IPA passes and | |
10691 | description for each IPA pass. | |
10692 | ||
10693 | 2019-10-10 Jan Hubicka <hubicka@ucw.cz> | |
10694 | ||
10695 | * ipa-reference.c: Do not include splay-tree.h | |
10696 | (reference_vars_to_consider): Turn to hash map. | |
10697 | (get_static_name, ipa_init, analyze_function, propagate, | |
10698 | stream_out_bitmap, ipa_reference_write_optimization_summary, | |
10699 | ipa_reference_write_optimization_summary): Update. | |
10700 | ||
10701 | 2019-10-10 Jan Hubicka <hubicka@ucw.cz> | |
10702 | ||
10703 | * ipa-reference.c (propagate): Fix releasing of IPA summaries. | |
10704 | ||
10705 | 2019-10-10 Iain Sandoe <iain@sandoe.co.uk> | |
10706 | ||
10707 | * config/darwin.c: Lookup Objective C metadata and force indirection | |
10708 | for IVAR refs. | |
10709 | ||
10710 | 2019-10-10 Michael Meissner <meissner@linux.ibm.com> | |
10711 | ||
10712 | * config/rs6000/rs6000.c (quad_address_p): Add check for prefixed | |
10713 | addresses. | |
10714 | (mem_operand_gpr): Add check for prefixed addresses. | |
10715 | (mem_operand_ds_form): Add check for prefixed addresses. | |
10716 | (rs6000_legitimate_offset_address_p): If we support prefixed | |
10717 | addresses, check for a 34-bit offset instead of 16-bit. | |
10718 | (rs6000_legitimate_address_p): Add check for prefixed addresses. | |
10719 | Do not allow load/store with update if the address is prefixed. | |
10720 | (rs6000_mode_dependent_address): If we support prefixed | |
10721 | addresses, check for a 34-bit offset instead of 16-bit. | |
10722 | ||
10723 | 2019-10-10 Ilya Leoshkevich <iii@linux.ibm.com> | |
10724 | ||
10725 | PR target/77918 | |
10726 | * config/s390/vector.md (vcond_comparison_operator): New | |
10727 | predicate. | |
10728 | (vcond<V_HW:mode><V_HW2:mode>): Use vcond_comparison_operator. | |
10729 | ||
10730 | 2019-10-10 David Malcolm <dmalcolm@redhat.com> | |
10731 | ||
10732 | PR 87488 | |
10733 | * Makefile.in (CFLAGS-opts.o): Pass in DOCUMENTATION_ROOT_URL via | |
10734 | -D. | |
10735 | * configure.ac (--with-documentation-root-url): New option. | |
10736 | * configure: Regenerate. | |
10737 | * diagnostic-format-json.cc (json_end_diagnostic): If there is an | |
10738 | option URL, add it as a new string field of the diagnostic option. | |
10739 | * diagnostic.c (diagnostic_initialize): Initialize get_option_url. | |
10740 | (print_option_information): If get_option_url is non-NULL, call | |
10741 | it, and if the result is non-NULL, potentially emit an escape | |
10742 | sequence to markup the option text with the resulting URL. | |
10743 | * diagnostic.h (diagnostic_context::get_option_url): New callback. | |
10744 | * doc/invoke.texi (-fdiagnostics-format=): Add "option_url" to | |
10745 | example of JSON output. | |
10746 | * opts-diagnostic.h (get_option_url): New decl. | |
10747 | * opts.c (get_option_url): New function. | |
10748 | * toplev.c (general_init): Initialize the get_option_url callback. | |
10749 | ||
10750 | 2019-10-10 David Malcolm <dmalcolm@redhat.com> | |
10751 | ||
10752 | PR 87488 | |
10753 | * common.opt (fdiagnostics-urls=): New option. | |
10754 | (diagnostic-url.h): Add SourceInclude. | |
10755 | (diagnostic_url_rule): New enum. | |
10756 | * diagnostic-color.c: Include "diagnostic-url.h". | |
10757 | (diagnostic_urls_enabled_p): New function. | |
10758 | * diagnostic-url.h: New file. | |
10759 | * diagnostic.c: Include "diagnostic-url.h". | |
10760 | (diagnostic_urls_init): New function. | |
10761 | * diagnostic.h (diagnostic_urls_init): New decl. | |
10762 | * doc/invoke.texi (Diagnostic Message Formatting Options): Add | |
10763 | -fdiagnostics-urls to the list. | |
10764 | (-fdiagnostics-urls): New option. | |
10765 | * gcc.c (driver_handle_option): Handle OPT_fdiagnostics_urls_. | |
10766 | (driver::global_initializations): Call diagnostic_urls_init. | |
10767 | * opts-global.c (init_options_once): Likewise. | |
10768 | * opts.c (common_handle_option): Handle OPT_fdiagnostics_urls_. | |
10769 | * pretty-print.c (pretty_printer::pretty_printer): Initialize | |
10770 | show_urls. | |
10771 | (pp_begin_url): New function. | |
10772 | (pp_end_url): New function. | |
10773 | (selftest::test_urls): New selftest. | |
10774 | (selftest::pretty_print_c_tests): Call it. | |
10775 | * pretty-print.h (pretty_printer::show_urls): New field. | |
10776 | (pp_begin_url): New decl. | |
10777 | (pp_end_url): New decl. | |
10778 | ||
10779 | 2019-10-10 Uroš Bizjak <ubizjak@gmail.com> | |
10780 | ||
10781 | PR target/92022 | |
10782 | * config/alpha/alpha.c (alpha_handle_trap_shadows): Skip DEBUG_INSN. | |
10783 | ||
10784 | 2019-10-10 Oleg Endo <olegendo@gcc.gnu.org> | |
10785 | ||
10786 | PR target/88630 | |
10787 | * config/sh/sh.h (TARGET_FPU_SH4_300): New macro. | |
10788 | * config/sh/sh.c (sh_option_override): Enable fsca and fsrra insns | |
10789 | also for TARGET_FPU_SH4_300. | |
10790 | (sh_emit_mode_set): Check for TARGET_FPU_SH4_300 instead of | |
10791 | TARGET_SH4_300. | |
10792 | * config/sh/sh.md (toggle_pr): Add TARGET_FPU_SH4_300 condition. | |
10793 | (negsf2): Expand to either negsf2_fpscr or negsf2_no_fpscr. | |
10794 | (*negsf2_i): Split into ... | |
10795 | (negsf2_fpscr, negsf2_no_fpscr): ... these new patterns. | |
10796 | (abssf2): Expand to either abssf2_fpsc or abssf2_no_fpsc. | |
10797 | (**abssf2_i): Split into ... | |
10798 | (abssf2_fpscr, abssf2_no_fpscr): ... these new patterns. | |
10799 | (negdf2): Expand to either negdf2_fpscr or negdf2_no_fpscr. | |
10800 | (*negdf2_i): Split into ... | |
10801 | (negdf2_fpscr, negdf2_no_fpscr): ... these new patterns. | |
10802 | (absdf2): Expand to either absdf2_fpscr or absdf2_no_fpsc. | |
10803 | (**abssf2_i): Split into ... | |
10804 | (absdf2_fpscr, absdf2_no_fpscr): ... these new patterns. | |
10805 | ||
10806 | 2019-10-10 Richard Biener <rguenther@suse.de> | |
10807 | ||
10808 | PR middle-end/92046 | |
10809 | * opts.c (finish_options): Do not influence global --params | |
10810 | from options that are adjustable per function. | |
10811 | * tree-vect-data-refs.c (vect_enhance_data_refs_alignment): | |
10812 | Apply --param adjustment based on active cost-model. | |
10813 | * tree-ssa-phiopt.c (cond_if_else_store_replacement): Disable | |
10814 | further store-sinking when vectorization or if-conversion | |
10815 | are not enabled. | |
10816 | ||
10817 | 2019-10-10 Jan Hubicka <hubicka@ucw.cz> | |
10818 | ||
10819 | PR middle-end/92037 | |
10820 | * cgraph.c (symbol_table_test::symbol_table_test): Use ggc_alloc | |
10821 | rather than ggc_alloc_cleared to alloc symbol table. | |
10822 | * toplev.c (general_init): Likewise. | |
10823 | * cgraph.h (symbol_table): Explicitly construct every field. | |
10824 | ||
10825 | 2019-10-10 Andreas Krebbel <krebbel@linux.ibm.com> | |
10826 | ||
10827 | * common/config/s390/s390-common.c (PF_ARCH13): Rename to... | |
10828 | (PF_Z15): ... this. | |
10829 | * config.gcc: Add z15 as option for --with-arch and --with-tune | |
10830 | configure switches. | |
10831 | * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Add | |
10832 | error reporting for unsupported builtins. | |
10833 | * config/s390/s390-opts.h (enum processor_type): Rename | |
10834 | PROCESSOR_8561_ARCH13 to PROCESSOR_8561_Z15. | |
10835 | * config/s390/8561.md: Rename arch13 to z15 throughout the file. | |
10836 | * config/s390/driver-native.c (s390_host_detect_local_cpu): | |
10837 | Likewise. | |
10838 | * config/s390/s390-builtins.def: Likewise. | |
10839 | * config/s390/s390.c (processor_table): Add z15 as option and keep arch13 as alternative. | |
10840 | (s390_expand_builtin): Add missing check for unsupported builtins. | |
10841 | (s390_canonicalize_comparison): Rename TARGET_ARCH13 to TARGET_Z15. | |
10842 | (s390_rtx_costs): Likewise. | |
10843 | (s390_get_sched_attrmask): Rename arch13 to z15. | |
10844 | (s390_get_unit_mask): Likewise. | |
10845 | (s390_is_fpd): Likewise. | |
10846 | (s390_is_fxd): Likewise. | |
10847 | * config/s390/s390.h (enum processor_flags): Likewise. | |
10848 | * config/s390/s390.md: Likewise. | |
10849 | * config/s390/vector.md: Likewise. | |
10850 | * config/s390/vx-builtins.md: Likewise. | |
10851 | * config/s390/s390.opt: Add z15 to processor_type value. | |
10852 | ||
10853 | 2019-10-10 Andreas Krebbel <krebbel@linux.ibm.com> | |
10854 | ||
10855 | PR target/91035 | |
10856 | * config/s390/s390-protos.h (s390_output_split_stack_data): Add | |
10857 | prototype. | |
10858 | * config/s390/s390.md (UNSPECV_SPLIT_STACK_DATA): Remove. | |
10859 | ("split_stack_data", "split_stack_call") | |
10860 | ("split_stack_call_<mode>", "split_stack_cond_call") | |
10861 | ("split_stack_cond_call_<mode>"): Remove. | |
10862 | ("@split_stack_call<mode>", "@split_stack_cond_call<mode>"): New | |
10863 | insn definition. | |
10864 | * config/s390/s390.c (s390_output_split_stack_data): New function. | |
10865 | (s390_expand_split_stack_prologue): Use the merged expander. | |
10866 | ||
10867 | 2019-10-09 Martin Sebor <msebor@redhat.com> | |
10868 | ||
10869 | PR tree-optimization/90879 | |
10870 | * builtins.c (check_access): Avoid using maxbound when null. | |
10871 | * calls.c (maybe_warn_nonstring_arg): Adjust to get_range_strlen change. | |
10872 | * doc/invoke.texi (-Wstring-compare): Document new warning option. | |
10873 | * gimple-fold.c (get_range_strlen_tree): Make setting maxbound | |
10874 | conditional. | |
10875 | (get_range_strlen): Overwrite initial maxbound when non-null. | |
10876 | * gimple-ssa-sprintf.c (get_string_length): Adjust to get_range_strlen | |
10877 | changes. | |
10878 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Same. | |
10879 | (used_only_for_zero_equality): New function. | |
10880 | (handle_builtin_memcmp): Call it. | |
10881 | (determine_min_objsize): Return an integer instead of tree. | |
10882 | (get_len_or_size, strxcmp_eqz_result): New functions. | |
10883 | (maybe_warn_pointless_strcmp): New function. | |
10884 | (handle_builtin_string_cmp): Call it. Fold zero-equality of strcmp | |
10885 | between a longer string and a smaller array. | |
10886 | (get_range_strlen_dynamic): Overwrite initial maxbound when non-null. | |
10887 | ||
10888 | 2019-10-09 Iain Sandoe <iain@sandoe.co.uk> | |
10889 | ||
10890 | * config/darwin.c (darwin_override_options): Make the check for | |
10891 | Objective-C ABI version more specific for 64bit code. | |
10892 | ||
10893 | 2019-10-09 Iain Sandoe <iain@sandoe.co.uk> | |
10894 | ||
10895 | * config/darwin.c (machopic_indirect_data_reference): Set flag to | |
10896 | indicate that the new symbol is an indirection. | |
10897 | (machopic_indirect_call_target): Likewise. | |
10898 | * config/darwin.h (MACHO_SYMBOL_FLAG_INDIRECTION): New. | |
10899 | (MACHO_SYMBOL_INDIRECTION_P): New. | |
10900 | (MACHO_SYMBOL_FLAG_STATIC): Adjust bit number. | |
10901 | ||
10902 | 2019-10-08 Jason Merrill <jason@redhat.com> | |
10903 | ||
10904 | * doc/invoke.texi: Document -fconcepts-ts. | |
10905 | ||
10906 | 2019-10-09 Richard Biener <rguenther@suse.de> | |
10907 | ||
10908 | * tree-vect-loop.c (vect_is_simple_reduction): Simplify and | |
10909 | allow stmts other than GIMPLE_ASSIGN in nested cycles. | |
10910 | ||
10911 | 2019-10-08 Richard Biener <rguenther@suse.de> | |
10912 | ||
10913 | * tree-vectorizer.h (_stmt_vec_info::reduc_vectype_in): New. | |
10914 | (_stmt_vec_info::force_single_cycle): Likewise. | |
10915 | (STMT_VINFO_FORCE_SINGLE_CYCLE): New. | |
10916 | (STMT_VINFO_REDUC_VECTYPE_IN): Likewise. | |
10917 | * tree-vect-loop.c (vectorizable_reduction): Set | |
10918 | STMT_VINFO_REDUC_VECTYPE_IN and STMT_VINFO_FORCE_SINGLE_CYCLE. | |
10919 | (vect_transform_reduction): Use them to remove redundant code. | |
10920 | (vect_transform_cycle_phi): Likewise. | |
10921 | ||
10922 | 2019-10-08 Dmitrij Pochepko <dmitrij.pochepko@bell-sw.com> | |
10923 | ||
10924 | PR tree-optimization/90836 | |
10925 | * match.pd (popcount): New pattern. | |
10926 | ||
10927 | 2019-10-08 Martin Sebor <msebor@redhat.com> | |
10928 | ||
10929 | PR middle-end/92026 | |
10930 | PR middle-end/92014 | |
10931 | * tree-ssa-strlen.c (count_nonzero_bytes): Avoid recursing for MEM_REF | |
10932 | again once nbytes has been set. Set the access size when not yet set. | |
10933 | ||
10934 | 2019-10-08 Iain Sandoe <iain@sandoe.co.uk> | |
10935 | ||
10936 | * config/darwin.c (machopic_select_section): Remove dead code for | |
10937 | old Objective-C section selection method, replace with unreachable. | |
10938 | ||
10939 | 2019-10-08 Iain Sandoe <iain@sandoe.co.uk> | |
10940 | ||
10941 | * config/darwin.c (machopic_indirect_data_reference): Check for | |
10942 | required indirections before making direct access to defined | |
10943 | values. | |
10944 | (machopic_output_indirection): Place the indirected pointes for | |
10945 | required indirections into the non-lazy symbol pointers section. | |
10946 | (darwin_encode_section_info): | |
10947 | * config/darwin.h (MACHO_SYMBOL_FLAG_MUST_INDIRECT): New. | |
10948 | (MACHO_SYMBOL_MUST_INDIRECT_P): New. | |
10949 | ||
10950 | 2019-10-08 Uroš Bizjak <ubizjak@gmail.com> | |
10951 | ||
10952 | PR target/91994 | |
10953 | * config/i386/i386.c (x86_avx_u128_mode_needed): Use SSE_REG | |
10954 | instead of ALL_SSE_REG to check if function call preserves some | |
10955 | 256-bit SSE registers. | |
10956 | ||
10957 | 2019-10-08 Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com> | |
10958 | ||
10959 | * config.gcc: Move -L usage from LINK_OS_EXTRA_SPEC32 and | |
10960 | LINK_OS_EXTRA_SPEC64 to MD_STARTFILE_PREFIX and | |
10961 | MD_STARTFILE_PREFIX_1 when using --with-advance-toolchain. | |
10962 | ||
10963 | 2019-10-08 Richard Biener <rguenther@suse.de> | |
10964 | ||
10965 | * tree-vectorizer.h (_stmt_vec_info::v_reduc_type): Remove. | |
10966 | (_stmt_vec_info::is_reduc_info): Add. | |
10967 | (STMT_VINFO_VEC_REDUCTION_TYPE): Remove. | |
10968 | (vectorizable_condition): Remove. | |
10969 | (vectorizable_shift): Likewise. | |
10970 | (vectorizable_reduction): Adjust. | |
10971 | (info_for_reduction): New. | |
10972 | * tree-vect-loop.c (vect_force_simple_reduction): Fold into... | |
10973 | (vect_analyze_scalar_cycles_1): ... here. | |
10974 | (vect_analyze_loop_operations): Adjust. | |
10975 | (needs_fold_left_reduction_p): Simplify for single caller. | |
10976 | (vect_is_simple_reduction): Likewise. Remove stmt restriction | |
10977 | for nested cycles not part of double reductions. | |
10978 | (vect_model_reduction_cost): Pass in the reduction type. | |
10979 | (info_for_reduction): New function. | |
10980 | (vect_create_epilog_for_reduction): Use it, access reduction | |
10981 | meta off the stmt info it returns. Use STMT_VINFO_REDUC_TYPE | |
10982 | instead of STMT_VINFO_VEC_REDUCTION_TYPE. | |
10983 | (vectorize_fold_left_reduction): Remove pointless assert. | |
10984 | (vectorizable_reduction): Analyze the full reduction when | |
10985 | visiting the outermost PHI. Simplify. Use STMT_VINFO_REDUC_TYPE | |
10986 | instead of STMT_VINFO_VEC_REDUCTION_TYPE. Direct reduction | |
10987 | stmt code-generation to vectorizable_* in most cases. Verify | |
10988 | code-generation only for cases handled by | |
10989 | vect_transform_reductuon. | |
10990 | (vect_transform_reduction): Use info_for_reduction to get at | |
10991 | reduction meta. Simplify. | |
10992 | (vect_transform_cycle_phi): Likewise. | |
10993 | (vectorizable_live_operation): Likewise. | |
10994 | * tree-vect-patterns.c (vect_reassociating_reduction_p): Look | |
10995 | at the PHI node for STMT_VINFO_REDUC_TYPE. | |
10996 | * tree-vect-slp.c (vect_schedule_slp_instance): Remove no | |
10997 | longer necessary code. | |
10998 | * tree-vect-stmts.c (vectorizable_shift): Make static again. | |
10999 | (vectorizable_condition): Likewise. Get at reduction related | |
11000 | info via info_for_reduction. | |
11001 | (vect_analyze_stmt): Adjust. | |
11002 | (vect_transform_stmt): Likewise. | |
11003 | * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize | |
11004 | STMT_VINFO_REDUC_TYPE instead of STMT_VINFO_VEC_REDUCTION_TYPE. | |
11005 | ||
11006 | 2019-10-08 Joseph Myers <joseph@codesourcery.com> | |
11007 | ||
11008 | * doc/invoke.texi (-ffp-int-builtin-inexact): Document | |
11009 | -fno-fp-int-builtin-inexact default for C2X. | |
11010 | ||
11011 | 2019-10-07 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
11012 | Richard Biener <rguenther@suse.de> | |
11013 | ||
11014 | PR tree-optimization/91532 | |
11015 | * tree-if-conv.c: Include tree-ssa-dse.h. | |
11016 | (ifcvt_local_dce): Change param from bb to loop, | |
11017 | and call dse_classify_store. | |
11018 | (tree_if_conversion): Pass loop instead of loop->header as arg | |
11019 | to ifcvt_local_dce. | |
11020 | * tree-ssa-dse.c: Include tree-ssa-dse.h. | |
11021 | (delete_dead_or_redundant_assignment): Remove static qualifier from | |
11022 | declaration, and add prototype in tree-ssa-dse.h. | |
11023 | (dse_store_status): Move to tree-ssa-dse.h. | |
11024 | (dse_classify_store): Remove static qualifier and add new tree param | |
11025 | stop_at_vuse, and add prototype in tree-ssa-dse.h. | |
11026 | * tree-ssa-dse.h: New header. | |
11027 | ||
11028 | 2019-10-07 Iain Sandoe <iain@sandoe.co.uk> | |
11029 | ||
11030 | * config/darwin.c (machopic_output_indirection): Don't put | |
11031 | hidden symbol indirections into the .data section, use the | |
11032 | non-lazy symbol pointers section as normal. | |
11033 | (darwin_encode_section_info): Record if a symbol is hidden. | |
11034 | * config/darwin.h (MACHO_SYMBOL_FLAG_HIDDEN_VIS): New. | |
11035 | (MACHO_SYMBOL_HIDDEN_VIS_P): New. | |
11036 | ||
11037 | 2019-10-07 Iain Sandoe <iain@sandoe.co.uk> | |
11038 | ||
11039 | * config/darwin.c (machopic_symbol_defined_p): Use symbol flag | |
11040 | predicates instead of accessing bits directly. | |
11041 | (machopic_indirect_call_target): Likewise. | |
11042 | (machopic_output_indirection): Likewise. | |
11043 | (darwin_encode_section_info): Improve description. Use renamed | |
11044 | symbol flags. Use predicate macros for variables and functions. | |
11045 | * config/darwin.h: | |
11046 | Rename MACHO_SYMBOL_VARIABLE to MACHO_SYMBOL_FLAG_VARIABLE. | |
11047 | Rename MACHO_SYMBOL_DEFINED to MACHO_SYMBOL_FLAG_DEFINED. | |
11048 | Rename MACHO_SYMBOL_STATIC to MACHO_SYMBOL_FLAG_STATIC. | |
11049 | (MACHO_SYMBOL_VARIABLE_P): New. | |
11050 | (MACHO_SYMBOL_DEFINED_P):New. | |
11051 | (MACHO_SYMBOL_STATIC_P): New. | |
11052 | * config/i386/darwin.h (MACHO_SYMBOL_FLAG_VARIABLE): Delete. | |
11053 | (SYMBOL_FLAG_SUBT_DEP): New. | |
11054 | * config/rs6000/darwin.h (SYMBOL_FLAG_SUBT_DEP): New. | |
11055 | ||
11056 | 2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
11057 | ||
11058 | * config/msp430/msp430.c (msp430_file_end): s/msp_/msp430_/ | |
11059 | (msp430_expand_epilogue): Likewise. | |
11060 | * config/msp430/predicates.md: Likewise. | |
11061 | * config/msp430/msp430.md: Likewise. | |
11062 | Replace blocks of 8 spaces with tabs. | |
11063 | ||
11064 | 2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
11065 | ||
11066 | * config/msp430/msp430-protos.h (msp430_split_addsi): New prototype. | |
11067 | * config/msp430/msp430.c (msp430_split_addsi): New. | |
11068 | * config/msp430/msp430.md: Call msp430_split_addsi () instead of using | |
11069 | a block of C code for splitting addsi. | |
11070 | ||
11071 | 2019-10-07 Uroš Bizjak <ubizjak@gmail.com> | |
11072 | ||
11073 | * config/i386/i386-expand.c (ix86_expand_floorceildf_32, | |
11074 | ix86_expand_rounddf_32): Reorder functions. | |
11075 | * config/i386/i386-protos.h: Update. | |
11076 | ||
11077 | 2019-10-07 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
11078 | ||
11079 | * config.in: Regenerate. | |
11080 | * config/msp430/constraints.md: Fix docstring for "Ys" constraint. | |
11081 | Add new "Yx" constraint. | |
11082 | * config/msp430/driver-msp430.c (msp430_propagate_region_opt): New spec | |
11083 | function. | |
11084 | * config/msp430/msp430-protos.h (msp430_op_not_in_high_mem): New | |
11085 | prototype. | |
11086 | * config/msp430/msp430.c (msp430_option_override): Allow the lower | |
11087 | code/data region to be selected in the small memory model. | |
11088 | (msp430_section_attr): Don't warn if the "section" and "lower" | |
11089 | attributes are used together. | |
11090 | (msp430_handle_generic_attribute): Likewise. | |
11091 | (msp430_var_in_low_mem): New function. | |
11092 | (TARGET_ENCODE_SECTION_INFO): Define. | |
11093 | (msp430_encode_section_info): New function. | |
11094 | (gen_prefix): Return early in the small memory model. | |
11095 | Require TARGET_USE_LOWER_REGION_PREFIX to be set before adding the | |
11096 | ".lower" prefix if -m{code,data}-region=lower have been passed. | |
11097 | (msp430_output_aligned_decl_common): Emit common symbols when | |
11098 | -mdata-region=lower is passed unless TARGET_USE_LOWER_REGION_PREFIX is | |
11099 | set. | |
11100 | (TARGET_ASM_FILE_END): Define. | |
11101 | (msp430_file_end): New function. | |
11102 | (msp430_do_not_relax_short_jumps): Allow relaxation when | |
11103 | function will be in the lower region. | |
11104 | (msp430_op_not_in_high_mem): New function. | |
11105 | (msp430_print_operand): Check "msp430_op_not_in_high_mem" for | |
11106 | the 'X' operand selector. | |
11107 | Clarify comment for 'x' operand selector. | |
11108 | * config/msp430/msp430.h (LINK_SPEC): Propagate | |
11109 | -m{code,data}-region to the linker via spec function | |
11110 | msp430_propagate_region_opt. | |
11111 | (msp430_propagate_region_opt): New prototype. | |
11112 | (EXTRA_SPEC_FUNCTIONS): Add msp430_propagate_region_opt. | |
11113 | (SYMBOL_FLAG_LOW_MEM): Define. | |
11114 | * config/msp430/msp430.md (addsipsi3): Add missing "%X" operand | |
11115 | selector. | |
11116 | (zero_extendqihi2): Fix operand number used by "%X" selector. | |
11117 | (zero_extendqisi2): Likewise. | |
11118 | (zero_extendhisi2): Likewise. | |
11119 | (movqi): Use "Yx" constraint in place of "%X" operand selector. | |
11120 | (movhi): Likewise. | |
11121 | (addqi3): Likewise. | |
11122 | (addhi3): Likewise. | |
11123 | (addsi3): Likewise. | |
11124 | (addhi3_cy): Likewise. | |
11125 | (addchi4_cy): Likewise. | |
11126 | (subqi3): Likewise. | |
11127 | (subhi3): Likewise. | |
11128 | (subsi3): Likewise. | |
11129 | (bic<mode>3): Likewise. | |
11130 | (and<mode>3): Likewise. | |
11131 | (ior<mode>3): Likewise. | |
11132 | (xor<mode>3): Likewise. | |
11133 | (slli_1): Add missing "%X" operand selector. | |
11134 | (slll_1): Likewise. | |
11135 | (slll_2): Likewise. | |
11136 | (srai_1): Likewise. | |
11137 | (sral_1): Likewise. | |
11138 | (sral_2): Likewise. | |
11139 | (srli_1): Likewise. | |
11140 | (srll_1): Likewise. | |
11141 | (cbranchqi4_real): Use "Yx" constraint in place of "%X" operand | |
11142 | selector. | |
11143 | (cbranchhi4_real): Likewise. | |
11144 | (cbranchqi4_reversed): Likewise. | |
11145 | (cbranchhi4_reversed): Likewise. | |
11146 | (*bitbranch<mode>4): Likewise. | |
11147 | (*bitbranch<mode>4_z): Remove unnecessary "%x" operand selector. | |
11148 | * config/msp430/msp430.opt (mcode-region=): Set default to | |
11149 | MSP430_REGION_LOWER. Improve docstring. | |
11150 | (mdata-region=): Likewise. | |
11151 | (muse-lower-region-prefix): New option. | |
11152 | * config/msp430/t-msp430 (MULTILIB_OPTIONS): Add | |
11153 | mdata-region=none multilib. | |
11154 | (MULTILIB_MATCHES): Set mdata-region={upper,either} to match | |
11155 | mdata-region=none multilib. | |
11156 | MULTILIB_EXCEPTIONS: Remove. | |
11157 | MULTILIB_REQUIRED: Define. | |
11158 | * configure: Regenerate. | |
11159 | * configure.ac: Define HAVE_AS_GNU_ATTRIBUTE and | |
11160 | HAVE_AS_MSPABI_ATTRIBUTE if GAS version >= 2.33.50. | |
11161 | * doc/extend.texi: Clarify comment for {upper,lower,either} | |
11162 | function attributes. | |
11163 | Add separate description for "lower" variable attribute. | |
11164 | ||
11165 | 2019-10-07 Ilya Leoshkevich <iii@linux.ibm.com> | |
11166 | ||
11167 | PR target/77918 | |
11168 | * optabs-tree.c (vcond_icode_p): New function. | |
11169 | (vcond_eq_icode_p): Likewise. | |
11170 | (expand_vec_cond_expr_p): Use vcond_icode_p and | |
11171 | vcond_eq_icode_p. | |
11172 | * optabs.c (can_vcond_compare_p): New function. | |
11173 | * optabs.h (can_vcond_compare_p): Likewise. | |
11174 | ||
11175 | 2019-10-07 Ilya Leoshkevich <iii@linux.ibm.com> | |
11176 | ||
11177 | PR target/77918 | |
11178 | * gimple-expr.c (gimple_cond_get_ops_from_tree): Assert that the | |
11179 | caller passes a non-trapping condition. | |
11180 | (is_gimple_condexpr): Allow trapping conditions. | |
11181 | (is_gimple_condexpr_1): New helper function. | |
11182 | (is_gimple_condexpr_for_cond): New function, acts like old | |
11183 | is_gimple_condexpr. | |
11184 | * gimple-expr.h (is_gimple_condexpr_for_cond): New function. | |
11185 | * gimple.c (gimple_could_trap_p_1): Handle COND_EXPR and | |
11186 | VEC_COND_EXPR. Fix an issue with statements like i = (fp < 1.). | |
11187 | * gimplify.c (gimplify_cond_expr): Use | |
11188 | is_gimple_condexpr_for_cond. | |
11189 | (gimplify_expr): Allow is_gimple_condexpr_for_cond. | |
11190 | * tree-eh.c (operation_could_trap_p): Assert on COND_EXPR and | |
11191 | VEC_COND_EXPR. | |
11192 | (tree_could_trap_p): Handle COND_EXPR and VEC_COND_EXPR. | |
11193 | * tree-ssa-forwprop.c (forward_propagate_into_gimple_cond): Use | |
11194 | is_gimple_condexpr_for_cond, remove pointless tmp check | |
11195 | (forward_propagate_into_cond): Remove pointless tmp check. | |
11196 | ||
11197 | 2019-10-07 Vladislav Ivanishin <vlad@ispras.ru> | |
11198 | ||
11199 | * gimple-iterator.h (gsi_next_nonvirtual_phi): Change the semantics to | |
11200 | match that of other gsi_next_* functions. Adjust the comment. | |
11201 | (gsi_start_nonvirtual_phis): New function. | |
11202 | * ipa-icf.c (sem_function::compare_phi_node): Update uses of | |
11203 | gsi_next_nonvirtual_phi accordingly. (No functional change.) | |
11204 | ||
11205 | 2019-10-07 Vladislav Ivanishin <vlad@ispras.ru> | |
11206 | ||
11207 | * doc/invoke.texi (-Wuninitialized): Don't mention the clobbered by | |
11208 | setjmp situation here. Fix a verb's ending: "the exact variables or | |
11209 | elements for which there are warnings depends" -> "... depend". | |
11210 | ||
11211 | 2019-10-07 Aldy Hernandez <aldyh@redhat.com> | |
11212 | ||
11213 | * ipa-prop.c (ipa_vr::nonzero_p): Add TYPE_UNSIGNED check. | |
11214 | ||
11215 | 2019-10-07 Aldy Hernandez <aldyh@redhat.com> | |
11216 | ||
11217 | * ipa-prop.c (ipa_vr::nonzero_p): New. | |
11218 | (ipcp_update_vr): Use nonzero_p instead of open-coding check for | |
11219 | non-zero range. | |
11220 | * ipa-prop.h (class ipa_vr): Add nonzero_p. | |
11221 | * tree-vrp.c (range_has_numeric_bounds_p): New. | |
11222 | (range_int_cst_p): Use range_has_numeric_bounds_p. | |
11223 | (get_range_op_handler): New. | |
11224 | (supported_types_p): New. | |
11225 | (defined_ranges_p): New. | |
11226 | (drop_undefines_to_varying): New. | |
11227 | (range_fold_binary_symbolics_p): New. | |
11228 | (range_fold_unary_symbolics_p): New. | |
11229 | (range_fold_unary_expr): Extract out into above functions. | |
11230 | (range_fold_binary_expr): Same. | |
11231 | (value_range_base::normalize_addresses): New. | |
11232 | (value_range_base::normalize_symbolics): Normalize addresses. | |
11233 | * tree-vrp.h (class value_range_base): Add normalize_addresses. | |
11234 | ||
11235 | 2019-10-07 Aldy Hernandez <aldyh@redhat.com> | |
11236 | ||
11237 | * tree-vrp.c (value_range_base::singleton_p): Use | |
11238 | value_range_base::num_pairs instead of vrp_val_is* to check | |
11239 | if a range has one sub-range. | |
11240 | ||
11241 | 2019-10-07 Richard Sandiford <richard.sandiford@arm.com> | |
11242 | ||
11243 | * ira-lives.c (check_and_make_def_conflict): Handle cases in which | |
11244 | DEF is not a true earlyclobber but is tied to a specific input | |
11245 | operand, and so is effectively earlyclobber wrt inputs that have | |
11246 | different values. | |
11247 | (make_early_clobber_and_input_conflicts): Pass this case to the above. | |
11248 | ||
11249 | 2019-10-07 Richard Sandiford <richard.sandiford@arm.com> | |
11250 | ||
11251 | * machmode.h (opt_mode): Mark constructors with CONSTEXPR. | |
11252 | (pod_mode): Mark operators likewise. | |
11253 | (scalar_int_mode): Mark non-default constructors and | |
11254 | operators with CONSTEXPR. | |
11255 | (scalar_float_mode, scalar_mode, complex_mode): Likewise. | |
11256 | (fixed_size_mode): Likewise. | |
11257 | ||
11258 | 2019-10-07 Richard Sandiford <richard.sandiford@arm.com> | |
11259 | ||
11260 | PR target/91994 | |
11261 | * config/i386/sse.md (avx_vzeroupper): Turn into a define_expand | |
11262 | and wrap the unspec_volatile in a parallel. | |
11263 | (*avx_vzeroupper): New define_insn. Use a match_parallel around | |
11264 | the unspec_volatile. | |
11265 | * config/i386/predicates.md (vzeroupper_pattern): Expect the | |
11266 | unspec_volatile to be wrapped in a parallel. | |
11267 | * config/i386/i386-features.c (ix86_add_reg_usage_to_vzeroupper) | |
11268 | (ix86_add_reg_usage_to_vzerouppers): New functions. | |
11269 | (rest_of_handle_insert_vzeroupper): Use them to add register | |
11270 | usage information to the vzeroupper instructions. | |
11271 | ||
11272 | 2019-10-07 Richard Biener <rguenther@suse.de> | |
11273 | ||
11274 | PR tree-optimization/91975 | |
11275 | * tree-ssa-loop-ivcanon.c (constant_after_peeling): Consistently | |
11276 | handle invariants. | |
11277 | ||
11278 | 2019-10-06 Richard Sandiford <richard.sandiford@arm.com> | |
11279 | ||
11280 | * var-tracking.c (dataflow_set_clear_at_call): Hoist temporary | |
11281 | function result outside of EXECUTE_IF_SET_IN_HARD_REG_SET. | |
11282 | ||
11283 | 2019-10-06 Iain Sandoe <iain@sandoe.co.uk> | |
11284 | ||
11285 | * config/darwin.c (darwin_override_options): Adjust objective-c | |
11286 | ABI version error messages to avoid punctuation and contracted | |
11287 | negations. | |
11288 | ||
11289 | 2019-10-05 Jan Hubicka <hubicka@ucw.cz> | |
11290 | ||
11291 | * ipa-inline.c: Fix type; compute size rather than self_size | |
11292 | for size of caller function. | |
11293 | ||
11294 | 2019-10-05 Iain Sandoe <iain@sandoe.co.uk> | |
11295 | ||
11296 | PR target/59888 | |
11297 | * config/darwin.c (darwin_rodata_section): Add relocation flag, | |
11298 | choose const_data section for constants with relocations. | |
11299 | (machopic_select_section): Pass relocation flag to | |
11300 | darwin_rodata_section (). | |
11301 | ||
11302 | 2019-10-05 Jakub Jelinek <jakub@redhat.com> | |
11303 | ||
11304 | PR tree-optimization/91734 | |
11305 | * generic-match-head.c: Include fold-const-call.h. | |
11306 | * match.pd (sqrt(x) cmp c): Check the boundary value and | |
11307 | in case inexact computation of c*c affects comparison of the boundary, | |
11308 | turn LT_EXPR into LE_EXPR, GE_EXPR into GT_EXPR, LE_EXPR into LT_EXPR | |
11309 | or GT_EXPR into GE_EXPR. Punt for sqrt comparisons against NaN and | |
11310 | for -frounding-math. For c2, try the next smaller or larger floating | |
11311 | point constant depending on comparison code and if it has the same | |
11312 | sqrt as c2, use it instead of c2. | |
11313 | ||
11314 | 2019-10-04 Martin Sebor <msebor@redhat.com> | |
11315 | ||
11316 | PR middle-end/91977 | |
11317 | * tree-ssa-strlen.c (count_nonzero_bytes): Handle assignments with | |
11318 | MEM_REF right operand. Avoid failing for MEM_REF assignments from | |
11319 | uninitialized objects. | |
11320 | ||
11321 | 2019-10-04 Martin Sebor <msebor@redhat.com> | |
11322 | ||
11323 | * builtins.c (compute_objsize): Add an argument. | |
11324 | * tree-object-size.c (addr_object_size): Same. | |
11325 | (compute_builtin_object_size): Same. | |
11326 | * tree-object-size.h (compute_builtin_object): Same. | |
11327 | ||
11328 | 2019-10-04 Jan Hubicka <hubicka@ucw.cz> | |
11329 | ||
11330 | * ipa-inline.c (inline_insns_single, inline_insns_auto): Fix typo. | |
11331 | ||
11332 | 2019-10-04 Rafael Tsuha <rafael.tsuha@usp.br> | |
11333 | ||
11334 | * match.pd (sinh (x) / cosh (x)): New simplification rule. | |
11335 | ||
11336 | 2019-10-04 Martin Jambor <mjambor@suse.cz> | |
11337 | ||
11338 | * tree-ssa-forwprop.c (simplify_builtin_call): Set gimple call | |
11339 | fntype when switching to calling memcpy instead of memset. | |
11340 | ||
11341 | 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
11342 | ||
11343 | * hash-table.h (hash_table::empty_slow): Don't assign | |
11344 | size_t values to int variables. | |
11345 | ||
11346 | 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
11347 | ||
11348 | * expr.c (convert_mode_scalar): Remove shadowing local var. | |
11349 | (emit_block_move): Rename local vars. | |
11350 | (block_move_libcall_safe_for_call_parm): Remove shadowing local var. | |
11351 | (emit_push_insn): Rename local vars. | |
11352 | (expand_assignment): Fix wrong mode in assign_stack_temp. Remove | |
11353 | shadowing local vars. | |
11354 | (store_constructor): Remove shadowing local vars. Rename local var. | |
11355 | (store_field, expand_cond_expr_using_cmove, | |
11356 | expand_expr_real_2): Remove shadowing local vars. | |
11357 | (expand_expr_real_1, | |
11358 | do_store_flag): Remove shadowing local vars. Rename local vars. | |
11359 | ||
11360 | 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
11361 | ||
11362 | * cgraph.h (FOR_EACH_ALIAS): Avoid shadowing the loop variable. | |
11363 | ||
11364 | 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
11365 | ||
11366 | * genmatch.c (commutate): Rename local var. | |
11367 | (lower_cond): Reuse local var. | |
11368 | (dt_node::gen, dt_node::gen_kids, dt_node::gen_kids_1, | |
11369 | dt_operand::gen, dt_operand::gen_gimple_expr, | |
11370 | dt_simplify::gen): Add a param. Rename generated vars. | |
11371 | (decision_tree::insert_operand, | |
11372 | (capture_info::walk_match, capture_info::walk_result, | |
11373 | capture_info::walk_c_expr): Rename local vars. | |
11374 | (expr::gen_transform): Rename generated vars. | |
11375 | Use snprintf. Rename local vars. | |
11376 | (capture::gen_transform, dt_operand::get_name, | |
11377 | dt_operand::gen_opname): Rename generated vars. | |
11378 | (write_predicate): Adjust call to gen_kids. | |
11379 | (parser::get_internal_capture_id): Rename generated vars. | |
11380 | (parser::parse_expr): Rename local vars. | |
11381 | (parser::parse_if): Remove local var. | |
11382 | (parser::parse_pattern, add_operator): Rename local vars. | |
11383 | ||
11384 | 2019-10-04 Joseph Myers <joseph@codesourcery.com> | |
11385 | ||
11386 | * builtins.def (DEF_C2X_BUILTIN): New macro. | |
11387 | (exp10, exp10f, exp10l, fabsd32, fabsd64, fabsd128, nand32) | |
11388 | (nand64, nand128, roundeven, roundevenf, roundevenl, strdup) | |
11389 | (strndup): Use DEF_C2X_BUILTIN. | |
11390 | * coretypes.h (enum function_class): Add function_c2x_misc. | |
11391 | ||
11392 | 2019-10-04 Maya Rashish <coypu@sdf.org> | |
11393 | ||
11394 | * ira-color.c (update_costs_from_allocno): Call | |
11395 | ira_init_register_move_cost_if_necessary. | |
11396 | ||
11397 | 2019-10-04 Jeff Law <law@redhat.com> | |
11398 | ||
11399 | * config/h8300/h8300.md (cpymemsi): Disable. | |
11400 | (movmd, movmd_internal_<mode>, movstr, movsd): | |
11401 | (movstr, movsd, stpcpy_internal_<mode>: Likewise. | |
11402 | (movmd splitter, movsd splitter): Likewise. | |
11403 | ||
11404 | * range-op.cc (range_tests): Avoid two tests when ints and | |
11405 | shorts are the same size. | |
11406 | ||
11407 | 2019-10-04 Richard Biener <rguenther@suse.de> | |
11408 | ||
11409 | PR lto/91968 | |
11410 | * tree.c (find_decls_types_r): Do not remove LABEL_DECLs from | |
11411 | BLOCK_VARS. | |
11412 | ||
11413 | 2019-10-04 Richard Biener <rguenther@suse.de> | |
11414 | ||
11415 | PR tree-optimization/91982 | |
11416 | * tree-vect-loop.c (vectorizable_live_operation): Also guard | |
11417 | against EXTRACT_LAST_REDUCTION. | |
11418 | * tree-vect-stmts.c (vect_transform_stmt): Likewise. | |
11419 | ||
11420 | 2019-10-04 Aldy Hernandez <aldyh@redhat.com> | |
11421 | ||
11422 | * range-op.o (value_range_from_overflowed_bounds): Rename from | |
11423 | adjust_overflow_bound. | |
11424 | (value_range_with_overflow): Rename from | |
11425 | create_range_with_overflow. | |
11426 | (create_possibly_reversed_range): Adjusted for above renames. | |
11427 | (operator_*::wi_fold): Same. | |
11428 | (cross_product_operator::wi_cross_productor): Same. | |
11429 | ||
11430 | 2019-10-04 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
11431 | ||
11432 | * doc/invoke.texi (-Wshadow=global, -Wshadow=local, | |
11433 | -Wshadow=compatible-local): Fix description. | |
11434 | Add an example where -Wshadow=compatible-local does not | |
11435 | warn. | |
11436 | ||
11437 | 2019-10-03 John David Anglin <danglin@gcc.gnu.org> | |
11438 | ||
11439 | * config/pa/pa.h (MAX_PCREL17F_OFFSET): Adjust. | |
11440 | ||
11441 | * config/pa/pa.c (pa_output_call): Remove 64-bit sibcall sequence. | |
11442 | (pa_attr_length_call): Adjust length for 64-bit plabel sequence. | |
11443 | ||
11444 | 2019-10-03 Aaron Sawdey <acsawdey@linux.ibm.com> | |
11445 | ||
11446 | * expr.c (emit_block_move_hints): Slightly cleaner fix to | |
11447 | can_move_by_pieces issue. | |
11448 | ||
11449 | 2019-10-03 Iain Sandoe <iain@sandoe.co.uk> | |
11450 | ||
11451 | PR target/87243 | |
11452 | * config/darwin-driver.c (maybe_get_sysroot_from_sdkroot): New. | |
11453 | (darwin_driver_init): Use the sysroot provided by SDKROOT when that | |
11454 | is available and the user has not set one on the command line. | |
11455 | ||
11456 | 2019-10-03 Dragan Mladjenovic <dmladjenovic@wavecomp.com> | |
11457 | ||
11458 | PR target/91769 | |
11459 | * config/mips/mips.c (mips_split_move): Use reg_overlap_mentioned_p | |
11460 | instead of REGNO equality check on addr.reg. | |
11461 | ||
11462 | 2019-10-03 Jan Hubicka <hubicka@ucw.cz> | |
11463 | ||
11464 | * params.def (PARAM_INLINE_HEURISTICS_HINT_PERCENT, | |
11465 | PARAM_INLINE_HEURISTICS_HINT_PERCENT_O2): New. | |
11466 | * doc/invoke.texi (inline-heuristics-hint-percent, | |
11467 | inline-heuristics-hint-percent-O2): Document. | |
11468 | * tree-inline.c (inline_insns_single, inline_insns_auto): Add new | |
11469 | hint attribute. | |
11470 | (can_inline_edge_by_limits_p): Use it. | |
11471 | ||
11472 | 2019-10-03 Richard Sandiford <richard.sandiford@arm.com> | |
11473 | ||
11474 | * config/arm/arm.c (arm_print_value): Use real_to_decimal | |
11475 | to print CONST_DOUBLEs. | |
11476 | ||
11477 | 2019-10-03 Andrea Corallo <andrea.corallo@arm.com> | |
11478 | ||
11479 | * ipa-cp.c (ipa_cp_c_finalize): Release ipcp_transformation_sum. | |
11480 | * ipa-prop.c (ipcp_free_transformation_sum): New function. | |
11481 | * ipa-prop.h (ipcp_free_transformation_sum): Add declaration. | |
11482 | ||
11483 | 2019-10-03 Aldy Hernandez <aldyh@redhat.com> | |
11484 | ||
11485 | * Makefile.in (OBJS): Add range.o and range-op.o. | |
11486 | Remove wide-int-range.o. | |
11487 | * function-tests.c (test_ranges): New. | |
11488 | (function_tests_c_tests): Call test_ranges. | |
11489 | * ipa-cp.c (ipa_vr_operation_and_type_effects): Call | |
11490 | range_fold_unary_expr instead of extract_range_from_unary_expr. | |
11491 | * ipa-prop.c (ipa_compute_jump_functions_for_edge): Same. | |
11492 | * range-op.cc: New file. | |
11493 | * range-op.h: New file. | |
11494 | * range.cc: New file. | |
11495 | * range.h: New file. | |
11496 | * selftest.h (range_tests): New prototype. | |
11497 | * ssa.h: Include range.h. | |
11498 | * tree-vrp.c (value_range_base::value_range_base): New | |
11499 | constructors. | |
11500 | (value_range_base::singleton_p): Do not call | |
11501 | ranges_from_anti_range until sure we will need to. | |
11502 | (value_range_base::type): Rename gcc_assert to | |
11503 | gcc_checking_assert. | |
11504 | (vrp_val_is_max): New argument. | |
11505 | (vrp_val_is_min): Same. | |
11506 | (wide_int_range_set_zero_nonzero_bits): Move from | |
11507 | wide-int-range.cc. | |
11508 | (extract_range_into_wide_ints): Remove. | |
11509 | (extract_range_from_multiplicative_op): Remove. | |
11510 | (extract_range_from_pointer_plus_expr): Abstract POINTER_PLUS code | |
11511 | from extract_range_from_binary_expr. | |
11512 | (extract_range_from_plus_minus_expr): Abstract PLUS/MINUS code | |
11513 | from extract_range_from_binary_expr. | |
11514 | (extract_range_from_binary_expr): Remove. | |
11515 | (normalize_for_range_ops): New. | |
11516 | (range_fold_binary_expr): New. | |
11517 | (range_fold_unary_expr): New. | |
11518 | (value_range_base::num_pairs): New. | |
11519 | (value_range_base::lower_bound): New. | |
11520 | (value_range_base::upper_bound): New. | |
11521 | (value_range_base::upper_bound): New. | |
11522 | (value_range_base::contains_p): New. | |
11523 | (value_range_base::invert): New. | |
11524 | (value_range_base::union_): New. | |
11525 | (value_range_base::intersect): New. | |
11526 | (range_compatible_p): New. | |
11527 | (value_range_base::operator==): New. | |
11528 | (determine_value_range_1): Call range_fold_*expr instead of | |
11529 | extract_range_from_*expr. | |
11530 | * tree-vrp.h (class value_range_base): Add new constructors. | |
11531 | Add methods for union_, intersect, operator==, contains_p, | |
11532 | num_pairs, lower_bound, upper_bound, invert. | |
11533 | (vrp_val_is_min): Add handle_pointers argument. | |
11534 | (vrp_val_is_max): Same. | |
11535 | (extract_range_from_unary_expr): Remove. | |
11536 | (extract_range_from_binary_expr): Remove. | |
11537 | (range_fold_unary_expr): New. | |
11538 | (range_fold_binary_expr): New. | |
11539 | * vr-values.c (vr_values::extract_range_from_binary_expr): Call | |
11540 | range_fold_binary_expr instead of extract_range_from_binary_expr. | |
11541 | (vr_values::extract_range_basic): Same. | |
11542 | (vr_values::extract_range_from_unary_expr): Call | |
11543 | range_fold_unary_expr instead of extract_range_from_unary_expr. | |
11544 | * wide-int-range.cc: Remove. | |
11545 | * wide-int-range.h: Remove. | |
11546 | ||
11547 | 2019-10-02 Michael Meissner <meissner@linux.ibm.com> | |
11548 | ||
11549 | * config/rs6000/rs6000.c (mem_operand_gpr): Use | |
11550 | SIGNED_16BIT_OFFSET_EXTRA_P macro. | |
11551 | (mem_operand_ds_form): Use SIGNED_16BIT_OFFSET_EXTRA_P macro. | |
11552 | (rs6000_mode_dependent_address): Use SIGNED_16BIT_OFFSET_EXTRA_P | |
11553 | macro. | |
11554 | ||
11555 | 2019-10-02 Joseph Myers <joseph@codesourcery.com> | |
11556 | ||
11557 | * ginclude/stdint-gcc.h [__STDC_WANT_IEC_60559_BFP_EXT__]: Change | |
11558 | condition on WIDTH macros to [__STDC_WANT_IEC_60559_BFP_EXT__ || | |
11559 | (__STDC_VERSION__ && __STDC_VERSION__ > 201710L)]. | |
11560 | * glimits.h: Likewise. | |
11561 | ||
11562 | 2019-10-03 Jakub Jelinek <jakub@redhat.com> | |
11563 | ||
11564 | PR rtl-optimization/91976 | |
11565 | * expr.c (emit_block_move_hints): Don't call can_move_by_pieces if | |
11566 | size is not CONST_INT_P, set pieces_ok to false in that case. Simplify | |
11567 | CONST_INT_P (size) && pieces_ok to pieces_ok. Formatting fix. | |
11568 | ||
11569 | 2019-10-02 Martin Sebor <msebor@redhat.com> | |
11570 | ||
11571 | PR tree-optimization/80936 | |
11572 | * builtins.def (bcmp, bcopy, bzero): Declare nonnull. | |
11573 | ||
11574 | 2019-10-02 Richard Sandiford <richard.sandiford@arm.com> | |
11575 | ||
11576 | * cgraph.c (cgraph_node::rtl_info): Use SET_HARD_REG_SET | |
11577 | instead of reg_class_contents[ALL_REGS]. | |
11578 | ||
11579 | 2019-09-30 Jason Merrill <jason@redhat.com> | |
11580 | ||
11581 | Add some hash_map_safe_* functions like vec_safe_*. | |
11582 | * hash-map.h (default_hash_map_size): New variable. | |
11583 | (create_ggc): Use it as default argument. | |
11584 | (hash_map_maybe_create, hash_map_safe_get) | |
11585 | (hash_map_safe_get_or_insert, hash_map_safe_put): New fns. | |
11586 | ||
11587 | 2019-10-02 Jan Hubicka <hubicka@ucw.cz> | |
11588 | ||
11589 | * cif-code.def (MAX_INLINE_INSNS_SINGLE_O2_LIMIT, | |
11590 | MAX_INLINE_INSNS_AUTO_O2_LIMIT): New. | |
11591 | * ipa-inline.c (inline_insns_single, inline_insns_auto): New functions. | |
11592 | (can_inline_edge_by_limits_p): Use it. | |
11593 | (big_speedup_p): Use PARAM_INLINE_MIN_SPEEDUP_O2. | |
11594 | (want_inline_small_function_p): Use O2 bounds. | |
11595 | (edge_badness): LIkewise. | |
11596 | * opts.c (default_options): Add OPT_finline_functions. | |
11597 | * params.def (PARAM_INLINE_MIN_SPEEDUP_O2, | |
11598 | PARAM_MAX_INLINE_INSNS_SINGLE_O2, PARAM_MAX_INLINE_INSNS_AUTO_O2): | |
11599 | New parameters. | |
11600 | * doc/invoke.texi (-finline-functions): Update documentation. | |
11601 | (max-inline-insns-single-O2, max-inline-insns-auto-O2, | |
11602 | inline-min-speedup-O2): Document. | |
11603 | (early-inlining-insns-O2): Simplify docs. | |
11604 | ||
11605 | 2019-10-02 Alexander Monakov <amonakov@ispras.ru> | |
11606 | ||
11607 | PR rtl-optimization/87047 | |
11608 | * ifcvt.c (average_cost): New static function. Use it... | |
11609 | (noce_process_if_block): ... here. | |
11610 | ||
11611 | 2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com> | |
11612 | ||
11613 | * config/rs6000/rs6000-protos.h (expand_block_move): Change prototype. | |
11614 | * config/rs6000/rs6000-string.c (expand_block_move): Add | |
11615 | might_overlap parm. | |
11616 | * config/rs6000/rs6000.md (movmemsi): Add new pattern. | |
11617 | (cpymemsi): Add might_overlap parm to expand_block_move() call. | |
11618 | ||
11619 | 2019-10-02 Aaron Sawdey <acsawdey@linux.ibm.com> | |
11620 | ||
11621 | * builtins.c (expand_builtin_memory_copy_args): Add might_overlap parm. | |
11622 | (expand_builtin_memcpy): Use might_overlap parm. | |
11623 | (expand_builtin_mempcpy_args): Use might_overlap parm. | |
11624 | (expand_builtin_memmove): Call expand_builtin_memory_copy_args. | |
11625 | (expand_builtin_memory_copy_args): Add might_overlap parm. | |
11626 | * expr.c (emit_block_move_via_cpymem): Rename to | |
11627 | emit_block_move_via_pattern, add might_overlap parm, use cpymem | |
11628 | or movmem optab as appropriate. | |
11629 | (emit_block_move_hints): Add might_overlap parm, do the right | |
11630 | thing for might_overlap==true. | |
11631 | * expr.h (emit_block_move_hints): Update prototype. | |
11632 | ||
11633 | 2019-10-02 Eric Botcazou <ebotcazou@adacore.com> | |
11634 | ||
11635 | * tree-eh.h (unsplit_eh_edges): Declare. | |
11636 | * tree-eh.c (maybe_remove_unreachable_handlers): Detect more cases. | |
11637 | (unsplit_eh_edges): New function wrapping unsplit_all_eh. | |
11638 | * gimple-ssa-store-merging.c: Include cfganal.h cfgcleanup.h except.h. | |
11639 | (struct store_immediate_info): Add lp_nr field. | |
11640 | (store_immediate_info::store_immediate_info): Add NR2 parameter and | |
11641 | initialize lp_nr with it. | |
11642 | (struct merged_store_group): Add lp_nr and only_constants fields. | |
11643 | (merged_store_group::merged_store_group): Initialize them. | |
11644 | (merged_store_group::can_be_merged_into): Deal with them. | |
11645 | (pass_store_merging): Rename terminate_and_release_chain into | |
11646 | terminate_and_process_chain. | |
11647 | (pass_store_merging::terminate_and_process_all_chains): Adjust to above | |
11648 | renaming and remove useless assertions. | |
11649 | (pass_store_merging::terminate_all_aliasing_chains): Small tweak. | |
11650 | (stmts_may_clobber_ref_p): Be prepared for different basic blocks. | |
11651 | (imm_store_chain_info::coalesce_immediate_stores): Use only_constants | |
11652 | instead of always recomputing it and compare lp_nr. | |
11653 | (imm_store_chain_info::output_merged_store): If the group is in an | |
11654 | active EH region, register new stores if they can throw. Moreover, | |
11655 | if the insertion has created new basic blocks, adjust the PHI nodes | |
11656 | of the post landing pad. | |
11657 | (imm_store_chain_info::output_merged_stores): If the original stores | |
11658 | are in an active EH region, deregister them. | |
11659 | (lhs_valid_for_store_merging_p): Prettify. | |
11660 | (adjust_bit_pos): New function extracted from... | |
11661 | (mem_valid_for_store_merging): ...here. Use it for the base address | |
11662 | and also for the offset if it is the addition of a constant. | |
11663 | (lp_nr_for_store): New function. | |
11664 | (pass_store_merging::process_store): Change return type to bool. | |
11665 | Call lp_nr_for_store to initialize the store info. Propagate the | |
11666 | return status of various called functions to the return value. | |
11667 | (store_valid_for_store_merging_p): New predicate. | |
11668 | (enum basic_block_status): New enumeration. | |
11669 | (get_status_for_store_merging): New function. | |
11670 | (pass_store_merging::execute): If the function can throw and catch | |
11671 | non-call exceptions, unsplit the EH edges on entry and clean up the | |
11672 | CFG on exit if something changed. Call get_status_for_store_merging | |
11673 | for every basic block and keep the chains open across basic blocks | |
11674 | when possible. Terminate and process open chains at the end, if any. | |
11675 | ||
11676 | 2019-10-02 Richard Sandiford <richard.sandiford@arm.com> | |
11677 | ||
11678 | * reginfo.c (globalize_reg): Fix shadowed variable in | |
11679 | function_abis walk. | |
11680 | ||
11681 | 2019-10-02 Martin Jambor <mjambor@suse.cz> | |
11682 | ||
11683 | * cgraph.c (symbol_table::create_edge): New parameter cloning_p, | |
11684 | do not compute some stuff when set. | |
11685 | (cgraph_node::create_edge): Likewise. | |
11686 | (cgraph_node::create_indirect_edge): Renamed last parameter to | |
11687 | coning_p and flipped its meaning, don't even calculate | |
11688 | inline_failed when set. | |
11689 | * cgraph.h (cgraph_node::create_edge): Add new parameter. | |
11690 | (symbol_table::::create_edge): Likewise. | |
11691 | (cgraph_node::create_indirect_edge): Rename last parameter, flip | |
11692 | the default value. | |
11693 | * cgraphclones.c (cgraph_edge::clone): Pass true cloning_p to all | |
11694 | call graph edge creating functions. | |
11695 | ||
11696 | 2019-10-01 Jan Hubicka <hubicka@ucw.cz> | |
11697 | ||
11698 | PR c++/91222 | |
11699 | * ipa-devirt.c (warn_types_mismatch): Fix conditional on anonymous | |
11700 | namespace types. | |
11701 | ||
11702 | 2019-10-02 Shahab Vahedi <shahab@synopsys.com> | |
11703 | ||
11704 | * config/arc/arc.h (ASM_SPEC): Pass -mcode-density. | |
11705 | ||
11706 | 2019-10-02 Richard Biener <rguenther@suse.de> | |
11707 | ||
11708 | * tree-vectorizer.h (vect_transform_reduction): Declare. | |
11709 | * tree-vect-stmts.c (vect_transform_stmt): Use it. | |
11710 | * tree-vect-loop.c (vectorizable_reduction): Split out reduction | |
11711 | stmt transform to ... | |
11712 | (vect_transform_reduction): ... this. | |
11713 | ||
11714 | 2019-10-02 Tobias Burnus <tobias@codesourcery.com> | |
11715 | ||
11716 | * omp-low.c (lower_omp_target): Dereference optional argument | |
11717 | to work with the right pointer. | |
11718 | ||
11719 | 2019-10-02 Kwok Cheung Yeung <kcy@codesourcery.com> | |
11720 | ||
11721 | * langhooks-def.h (LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT): Default to | |
11722 | false. | |
11723 | (LANG_HOOKS_DECLS): Add LANG_HOOKS_OMP_IS_OPTIONAL_ARGUMENT. | |
11724 | * langhooks.h (omp_is_optional_argument): New hook. | |
11725 | * omp-general.c (omp_is_optional_argument): New. | |
11726 | * omp-general.h (omp_is_optional_argument): New declaration. | |
11727 | * omp-low.c (lower_omp_target): Create temporary for received value | |
11728 | and take the address for new_var if the original variable was a | |
11729 | DECL_BY_REFERENCE. Use size of referenced object when a | |
11730 | pass-by-reference optional argument used as argument to firstprivate. | |
11731 | ||
11732 | 2019-10-02 Jakub Jelinek <jakub@redhat.com> | |
11733 | ||
11734 | PR tree-optimization/91940 | |
11735 | * tree-vect-patterns.c: Include tree-vector-builder.h and | |
11736 | vec-perm-indices.h. | |
11737 | (vect_recog_rotate_pattern): Also handle __builtin_bswap16, either by | |
11738 | unpromoting the argument back to uint16_t, or by converting into a | |
11739 | rotate, or into shifts plus ior. | |
11740 | ||
11741 | 2019-10-02 Richard Biener <rguenther@suse.de> | |
11742 | ||
11743 | * tree-vectorizer.h (stmt_vec_info_type::cycle_phi_info_type): | |
11744 | New. | |
11745 | (vect_transform_cycle_phi): Declare. | |
11746 | * tree-vect-stmts.c (vect_transform_stmt): Call | |
11747 | vect_transform_cycle_phi. | |
11748 | * tree-vect-loop.c (vectorizable_reduction): Split out | |
11749 | PHI transformation stage to ... | |
11750 | (vect_transform_cycle_phi): ... here. | |
11751 | ||
11752 | 2019-10-02 Richard Sandiford <richard.sandiford@arm.com> | |
11753 | ||
11754 | PR middle-end/91957 | |
11755 | * lra-lives.c (make_hard_regno_dead): Don't record conflicts for | |
11756 | eliminable registers. | |
11757 | (make_hard_regno_live): Likewise, and don't make them live. | |
11758 | ||
11759 | 2019-10-01 David Malcolm <dmalcolm@redhat.com> | |
11760 | ||
11761 | * diagnostic-show-locus.c (layout::print_gap_in_line_numbering): | |
11762 | Call pp_emit_prefix. | |
11763 | (layout::print_source_line): Likewise. | |
11764 | (layout::start_annotation_line): Likewise. | |
11765 | (diagnostic_show_locus): Remove call to temporarily clear the | |
11766 | prefix. | |
11767 | (selftest::test_one_liner_fixit_remove): Add test coverage for the | |
11768 | interaction of pp_set_prefix with rulers and fix-it hints. | |
11769 | * diagnostic.c (default_diagnostic_finalizer): Temporarily clear | |
11770 | prefix when calling diagnostic_show_locus, rather than destroying | |
11771 | it afterwards. | |
11772 | (print_parseable_fixits): Temporarily clear prefix. | |
11773 | * pretty-print.c (pp_format): Save and restore line_length, rather | |
11774 | than assuming it is zero. | |
11775 | (pp_output_formatted_text): Remove assertion that line_length is | |
11776 | zero. | |
11777 | ||
11778 | 2019-10-01 Jan Hubicka <hubicka@ucw.cz> | |
11779 | ||
11780 | * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p): | |
11781 | Rename to ... | |
11782 | (nonoverlapping_refs_since_match_p): ... this; handle also | |
11783 | ARRAY_REFs. | |
11784 | (alias_stats): Update stats. | |
11785 | (dump_alias_stats): Likewise. | |
11786 | (cheap_array_ref_low_bound): New function. | |
11787 | (aliasing_matching_component_refs_p): Add partial_overlap | |
11788 | argument; | |
11789 | pass it to nonoverlapping_refs_since_match_p. | |
11790 | (aliasing_component_refs_walk): Update call of | |
11791 | aliasing_matching_component_refs_p | |
11792 | (nonoverlapping_array_refs_p): New function. | |
11793 | (decl_refs_may_alias_p, indirect_ref_may_alias_decl_p, | |
11794 | indirect_refs_may_alias_p): Update calls of | |
11795 | nonoverlapping_refs_since_match_p. | |
11796 | ||
11797 | 2019-10-01 Maya Rashish <coypu@sdf.org> | |
11798 | ||
11799 | PR target/85401 | |
11800 | * ira-color.c (allocno_copy_cost_saving): Call | |
11801 | ira_init_register_move_cost_if_necessary. | |
11802 | ||
11803 | 2019-10-01 Maciej W. Rozycki <macro@wdc.com> | |
11804 | ||
11805 | * Makefile.in (gnat_install_lib): New variable. | |
11806 | * configure.ac: Substitute it. | |
11807 | * configure: Regenerate. | |
11808 | ||
11809 | 2019-10-01 Jan Hubicka <hubicka@ucw.cz> | |
11810 | ||
11811 | PR lto/91222 | |
11812 | * ipa-devirt.c (warn_types_mismatch): Do not ICE when anonymous type | |
11813 | is matched with non-C++ type | |
11814 | ||
11815 | 2019-10-01 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
11816 | ||
11817 | * tree-if-conv.c (tree_if_conversion): Move call to ifcvt_local_dce | |
11818 | after local CSE. | |
11819 | ||
11820 | 2019-10-01 Jan Hubicka <hubicka@ucw.cz> | |
11821 | ||
11822 | * doc/invoke.texi (early-inlining-insns-O2): Document. | |
11823 | (early-inlining-insns): Update. | |
11824 | * params.def (early-inlining-insns-O2): New bound. | |
11825 | (early-inlining-insns): Update docs. | |
11826 | * ipa-inline.c (want_early_inline_function_p): Use new bound. | |
11827 | ||
11828 | 2019-10-01 Oleg Endo <olegendo@gcc.gnu.org> | |
11829 | ||
11830 | PR target/88562 | |
11831 | * config/sh/sh.c (sh_extending_set_of_reg::use_as_extended_reg): Use | |
11832 | sh_check_add_incdec_notes to preserve REG_INC notes when replacing | |
11833 | a memory access insn. | |
11834 | ||
11835 | 2019-10-01 Bill Schmidt <wschmidt@linux.ibm.com> | |
11836 | ||
11837 | * config/rs6000/rs6000-p8swap.c (rtx_is_swappable_p): Don't swap | |
11838 | vpmsumd. | |
11839 | ||
11840 | 2019-10-01 Ilya Leoshkevich <iii@linux.ibm.com> | |
11841 | ||
11842 | PR target/77918 | |
11843 | * config/s390/s390.c (s390_expand_vec_compare): Use | |
11844 | gen_vec_cmpordered and gen_vec_cmpunordered. | |
11845 | * config/s390/vector.md (vec_cmpuneq, vec_cmpltgt, vec_ordered, | |
11846 | vec_unordered): Delete. | |
11847 | (vec_ordered<mode>): Rename to vec_cmpordered<mode>. | |
11848 | (vec_unordered<mode>): Rename to vec_cmpunordered<mode>. | |
11849 | (VEC_CMP_EXPAND): New iterator for the generic dispatcher. | |
11850 | (vec_cmp<code>): Generic dispatcher. | |
11851 | ||
11852 | 2019-10-01 Ilya Leoshkevich <iii@linux.ibm.com> | |
11853 | ||
11854 | PR target/77918 | |
11855 | * config/s390/vector.md (V_HW): Add V1TI in order to make | |
11856 | vcond$a$b generate vcondv1tiv1tf. | |
11857 | ||
11858 | 2019-10-01 Richard Sandiford <richard.sandiford@arm.com> | |
11859 | ||
11860 | PR rtl-optimization/91948 | |
11861 | * ira-build.c (ira_create_allocno): Initialize | |
11862 | ALLOCNO_CROSSED_CALLS_ABIS. | |
11863 | * ira-color.c (allocno_reload_assign): Pass hard_regno rather | |
11864 | than regno to ira_need_caller_save_p. | |
11865 | ||
11866 | 2019-10-01 Alexandre Oliva <oliva@adacore.com> | |
11867 | ||
11868 | * config/i386/i386-options.c | |
11869 | (ix86_recompute_optlev_based_flags): New, moved out of... | |
11870 | (ix86_option_override_internal): ... this. Call it. | |
11871 | (ix86_override_options_after_change): Call it here too. | |
11872 | ||
11873 | PR debug/91507 | |
11874 | * dwarf2out.c (override_type_for_decl_p): New. | |
11875 | (gen_variable_die): Use it. | |
11876 | ||
11877 | 2019-10-01 Richard Biener <rguenther@suse.de> | |
11878 | ||
11879 | * tree-vect-loop.c (vectorizable_reduction): Move variables | |
11880 | to where they are used. | |
11881 | ||
11882 | 2019-10-01 Segher Boessenkool <segher@kernel.crashing.org> | |
11883 | ||
11884 | * regrename.c (hide_operands): Use pc_rtx instead of cc0_rtx. | |
11885 | (build_def_use): Use PC instead of CC0 in a comment. | |
11886 | ||
11887 | 2019-10-01 Richard Sandiford <richard.sandiford@arm.com> | |
11888 | ||
11889 | * rtl.def (CLOBBER_HIGH): Delete. | |
11890 | * doc/rtl.texi (clobber_high): Remove documentation. | |
11891 | * rtl.h (SET_DEST): Remove CLOBBER_HIGH from the list of codes. | |
11892 | (reg_is_clobbered_by_clobber_high): Delete. | |
11893 | (gen_hard_reg_clobber_high): Likewise. | |
11894 | * alias.c (record_set): Remove CLOBBER_HIGH handling. | |
11895 | * cfgexpand.c (expand_gimple_stmt): Likewise. | |
11896 | * combine-stack-adj.c (single_set_for_csa): Likewise. | |
11897 | * combine.c (find_single_use_1, set_nonzero_bits_and_sign_copies) | |
11898 | (can_combine_p, is_parallel_of_n_reg_sets, try_combine) | |
11899 | (record_dead_and_set_regs_1, reg_dead_at_p_1): Likewise. | |
11900 | * cse.c (invalidate_reg): Remove clobber_high parameter. | |
11901 | (invalidate): Update call accordingly. | |
11902 | (canonicalize_insn): Remove CLOBBER_HIGH handling. | |
11903 | (invalidate_from_clobbers, invalidate_from_sets_and_clobbers) | |
11904 | (count_reg_usage, insn_live_p): Likewise. | |
11905 | * cselib.h (cselib_invalidate_rtx): Remove sett argument. | |
11906 | * cselib.c (cselib_invalidate_regno, cselib_invalidate_rtx): Likewise. | |
11907 | (cselib_invalidate_rtx_note_stores): Update call accordingly. | |
11908 | (cselib_expand_value_rtx_1): Remove CLOBBER_HIGH handling. | |
11909 | (cselib_invalidate_regno, cselib_process_insn): Likewise. | |
11910 | * dce.c (deletable_insn_p, mark_nonreg_stores_1): Likewise. | |
11911 | (mark_nonreg_stores_2): Likewise. | |
11912 | * df-scan.c (df_find_hard_reg_defs, df_uses_record): Likewise. | |
11913 | (df_get_call_refs): Likewise. | |
11914 | * dwarf2out.c (mem_loc_descriptor): Likewise. | |
11915 | * emit-rtl.c (verify_rtx_sharing): Likewise. | |
11916 | (copy_insn_1, copy_rtx_if_shared_1): Likewise. | |
11917 | (hard_reg_clobbers_high, gen_hard_reg_clobber_high): Delete. | |
11918 | * genconfig.c (walk_insn_part): Remove CLOBBER_HIGH handling. | |
11919 | * genemit.c (gen_exp, gen_insn): Likewise. | |
11920 | * genrecog.c (validate_pattern, remove_clobbers): Likewise. | |
11921 | * haifa-sched.c (haifa_classify_rtx): Likewise. | |
11922 | * ira-build.c (create_insn_allocnos): Likewise. | |
11923 | * ira-costs.c (scan_one_insn): Likewise. | |
11924 | * ira.c (equiv_init_movable_p, memref_referenced_p): Likewise. | |
11925 | (rtx_moveable_p, interesting_dest_for_shprep): Likewise. | |
11926 | * jump.c (mark_jump_label_1): Likewise. | |
11927 | * lra-int.h (lra_insn_reg::clobber_high): Delete. | |
11928 | * lra-eliminations.c (lra_eliminate_regs_1): Remove CLOBBER_HIGH | |
11929 | handling. | |
11930 | (mark_not_eliminable): Likewise. | |
11931 | * lra-lives.c (process_bb_lives): Likewise. | |
11932 | * lra.c (new_insn_reg): Remove clobber_high parameter. | |
11933 | (collect_non_operand_hard_regs): Likewise. Update call to new | |
11934 | insn_reg. Remove CLOBBER_HIGH handling. | |
11935 | (lra_set_insn_recog_data): Remove CLOBBER_HIGH handling. Update call | |
11936 | to collect_non_operand_hard_regs. | |
11937 | (add_regs_to_insn_regno_info): Remove CLOBBER_HIGH handling. | |
11938 | Update call to new_insn_reg. | |
11939 | (lra_update_insn_regno_info): Remove CLOBBER_HIGH handling. | |
11940 | * postreload.c (reload_cse_simplify, reload_combine_note_use) | |
11941 | (move2add_note_store): Likewise. | |
11942 | * print-rtl.c (print_pattern): Likewise. | |
11943 | * recog.c (store_data_bypass_p_1, store_data_bypass_p): Likewise. | |
11944 | (if_test_bypass_p): Likewise. | |
11945 | * regcprop.c (kill_clobbered_value, kill_set_value): Likewise. | |
11946 | * reginfo.c (reg_scan_mark_refs): Likewise. | |
11947 | * reload1.c (maybe_fix_stack_asms, eliminate_regs_1): Likewise. | |
11948 | (elimination_effects, mark_not_eliminable, scan_paradoxical_subregs) | |
11949 | (forget_old_reloads_1): Likewise. | |
11950 | * reorg.c (find_end_label, try_merge_delay_insns, redundant_insn) | |
11951 | (own_thread_p, fill_simple_delay_slots, fill_slots_from_thread) | |
11952 | (dbr_schedule): Likewise. | |
11953 | * resource.c (update_live_status, mark_referenced_resources) | |
11954 | (mark_set_resources): Likewise. | |
11955 | * rtl.c (copy_rtx): Likewise. | |
11956 | * rtlanal.c (reg_referenced_p, set_of_1, single_set_2, noop_move_p) | |
11957 | (note_pattern_stores): Likewise. | |
11958 | (reg_is_clobbered_by_clobber_high): Delete. | |
11959 | * sched-deps.c (sched_analyze_reg, sched_analyze_insn): Remove | |
11960 | CLOBBER_HIGH handling. | |
11961 | ||
11962 | 2019-10-01 Richard Sandiford <richard.sandiford@arm.com> | |
11963 | ||
11964 | PR target/91452 | |
11965 | * config/aarch64/aarch64.h (ARM_PCS_TLSDESC): New arm_pcs. | |
11966 | * config/aarch64/aarch64-protos.h (aarch64_tlsdesc_abi_id): Declare. | |
11967 | * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered): | |
11968 | Handle ARM_PCS_TLSDESC. | |
11969 | (aarch64_tlsdesc_abi_id): New function. | |
11970 | * config/aarch64/aarch64.md (tlsdesc_small_sve_<mode>): Use a call | |
11971 | rtx instead of a list of clobbers and clobber_highs. | |
11972 | (tlsdesc_small_<mode>): Update accordingly. | |
11973 | ||
11974 | 2019-10-01 Richard Sandiford <richard.sandiford@arm.com> | |
11975 | ||
11976 | * config/aarch64/aarch64-protos.h (aarch64_expand_call): Take an | |
11977 | extra callee_abi argument. | |
11978 | * config/aarch64/aarch64.c (aarch64_expand_call): Likewise. | |
11979 | Insert a CALLEE_ABI unspec into the call pattern as the second | |
11980 | element in the PARALLEL. | |
11981 | (aarch64_simd_call_p): Delete. | |
11982 | (aarch64_insn_callee_abi): Get the arm_pcs of the callee from | |
11983 | the new CALLEE_ABI element of the PARALLEL. | |
11984 | (aarch64_init_cumulative_args): Get the arm_pcs of the callee | |
11985 | from the function type, if given. | |
11986 | (aarch64_function_arg_advance): Handle ARM_PCS_SIMD. | |
11987 | (aarch64_function_arg): Likewise. Return the arm_pcs of the callee | |
11988 | when passed the function_arg_info end marker. | |
11989 | (aarch64_output_mi_thunk): Pass the arm_pcs of the callee as the | |
11990 | final argument of gen_sibcall. | |
11991 | * config/aarch64/aarch64.md (UNSPEC_CALLEE_ABI): New unspec. | |
11992 | (call): Make operand 2 a const_int_operand and pass it to expand_call. | |
11993 | Wrap it in an UNSPEC_CALLEE_ABI unspec for the dummy define_expand | |
11994 | pattern. | |
11995 | (call_value): Likewise operand 3. | |
11996 | (sibcall): Likewise operand 2. Place the unspec before rather than | |
11997 | after the return. | |
11998 | (sibcall_value): Likewise operand 3. | |
11999 | (*call_insn, *call_value_insn): Include an UNSPEC_CALLEE_ABI. | |
12000 | (tlsgd_small_<mode>, *tlsgd_small_<mode>): Likewise. | |
12001 | (*sibcall_insn, *sibcall_value_insn): Likewise. Remove empty | |
12002 | constraint strings. | |
12003 | (untyped_call): Pass const0_rtx as the callee ABI to gen_call. | |
12004 | ||
12005 | 2019-10-01 Richard Sandiford <richard.sandiford@arm.com> | |
12006 | ||
12007 | * regs.h (HARD_REGNO_CALLER_SAVE_MODE): Update call to | |
12008 | choose_hard_reg_mode. | |
12009 | * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise. | |
12010 | ||
12011 | 2019-10-01 Segher Boessenkool <segher@kernel.crashing.org> | |
12012 | ||
12013 | * doc/md.texi (vec_pack_trunc_@var{m}): Fix typo. | |
12014 | (vec_pack_sfix_trunc_@var{m}, vec_pack_ufix_trunc_@var{m}): Ditto. | |
12015 | (vec_packs_float_@var{m}, vec_packu_float_@var{m}): Ditto. | |
12016 | ||
12017 | 2019-09-30 David Malcolm <dmalcolm@redhat.com> | |
12018 | ||
12019 | * diagnostic-show-locus.c (line_label::line_label): Initialize | |
12020 | m_has_vbar. | |
12021 | (line_label::comparator): Reverse the sort order by m_state_idx, | |
12022 | so that when the list is walked backwards the labels appear in | |
12023 | order of insertion into the rich_location. | |
12024 | (line_label::m_has_vbar): New field. | |
12025 | (layout::print_any_labels): When dealing with multiple labels at | |
12026 | the same line and column, only print vertical bars for the one | |
12027 | with the highest label_line. | |
12028 | (selftest::test_one_liner_labels): Update test for multiple labels | |
12029 | to expect the labels to be in the order of insertion into the | |
12030 | rich_location. Add a test for many such labels, where the column | |
12031 | numbers are out-of-order relative to the insertion order. | |
12032 | ||
12033 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12034 | ||
12035 | * config/i386/i386.h (ix86_frame::expensive_p): New field. | |
12036 | (ix86_frame::expensive_count): Likewise. | |
12037 | * config/i386/i386.c (ix86_compute_frame_layout): Make the choice | |
12038 | of use_fast_prologue_epilogue robust against incidental changes | |
12039 | in function size. | |
12040 | ||
12041 | 2019-09-30 Ilya Leoshkevich <iii@linux.ibm.com> | |
12042 | ||
12043 | PR target/77918 | |
12044 | * config/s390/vector.md (vec_unordered<mode>): Call | |
12045 | gen_vec_ordered<mode>. | |
12046 | ||
12047 | 2019-09-30 Yuliang Wang <yuliang.wang@arm.com> | |
12048 | ||
12049 | * config/aarch64/aarch64-sve.md (sdiv_pow2<mode>3): | |
12050 | New pattern for ASRD. | |
12051 | * config/aarch64/iterators.md (UNSPEC_ASRD): New unspec. | |
12052 | * internal-fn.def (IFN_DIV_POW2): New internal function. | |
12053 | * optabs.def (sdiv_pow2_optab): New optab. | |
12054 | * tree-vect-patterns.c (vect_recog_divmod_pattern): | |
12055 | Modify pattern to support new operation. | |
12056 | * doc/md.texi (sdiv_pow2$var{m3}): Documentation for the above. | |
12057 | * doc/sourcebuild.texi (vect_sdiv_pow2_si): | |
12058 | Document new target selector. | |
12059 | ||
12060 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12061 | ||
12062 | * config/aarch64/aarch64.c (aarch64_layout_frame): Use crtl->abi | |
12063 | to test whether we're compiling a vector PCS function and to test | |
12064 | whether the function needs to save a particular register. | |
12065 | Remove the vector PCS handling of df_set_regs_ever_live. | |
12066 | (aarch64_components_for_bb): Use crtl->abi to test whether | |
12067 | the function needs to save a particular register. | |
12068 | (aarch64_process_components): Use crtl->abi to test whether | |
12069 | we're compiling a vector PCS function. | |
12070 | (aarch64_expand_prologue, aarch64_expand_epilogue): Likewise. | |
12071 | (aarch64_epilogue_uses): Remove handling of vector PCS functions. | |
12072 | ||
12073 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12074 | ||
12075 | * config/aarch64/aarch64-protos.h (aarch64_use_simple_return_insn_p): | |
12076 | Delete. | |
12077 | * config/aarch64/aarch64.c (aarch64_components_for_bb): Check | |
12078 | whether the block calls a function that clobbers more registers | |
12079 | than the current function is allowed to. | |
12080 | (aarch64_use_simple_return_insn_p): Delete. | |
12081 | * config/aarch64/aarch64.md (simple_return): Remove condition. | |
12082 | ||
12083 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12084 | ||
12085 | * function-abi.h (function_abi_aggregator): New class. | |
12086 | * function-abi.cc (function_abi_aggregator::caller_save_regs): New | |
12087 | function. | |
12088 | * ira.c (update_equiv_regs_prescan): New function. Call | |
12089 | set_paradoxical_subreg here rather than... | |
12090 | (update_equiv_regs): ...here. | |
12091 | (ira): Call update_equiv_regs_prescan. | |
12092 | ||
12093 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12094 | ||
12095 | * hard-reg-set.h (regs_invalidated_by_call): Only define if | |
12096 | IN_TARGET_CODE. | |
12097 | (call_used_or_fixed_regs): Likewise. | |
12098 | (call_used_or_fixed_reg_p): Likewise. | |
12099 | * reginfo.c (regs_invalidated_by_call): New macro. | |
12100 | ||
12101 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12102 | ||
12103 | * shrink-wrap.c: Include function-abi.h. | |
12104 | (requires_stack_frame_p): Use crtl->abi to test whether the | |
12105 | current function can use a register without saving it first. | |
12106 | ||
12107 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12108 | ||
12109 | * sel-sched-ir.h (_def::crosses_call): Replace with... | |
12110 | (_def::crossed_call_abis): ..this new field. | |
12111 | (def_list_add): Take a mask of ABIs instead of a crosses_call | |
12112 | boolean. | |
12113 | * sel-sched-ir.c (def_list_add): Likewise. Update initialization | |
12114 | of _def accordingly. | |
12115 | * sel-sched.c: Include function-abi.h. | |
12116 | (hard_regs_data::regs_for_call_clobbered): Delete. | |
12117 | (reg_rename::crosses_call): Replace with... | |
12118 | (reg_rename::crossed_call_abis): ...this new field. | |
12119 | (fur_static_params::crosses_call): Replace with... | |
12120 | (fur_static_params::crossed_call_abis): ...this new field. | |
12121 | (init_regs_for_mode): Don't initialize sel_hrd.regs_for_call_clobbered. | |
12122 | (init_hard_regs_data): Use crtl->abi to test which registers the | |
12123 | current function would need to save before it uses them. | |
12124 | (mark_unavailable_hard_regs): Update handling of call-clobbered | |
12125 | registers, using call_clobbers_in_region to find out which registers | |
12126 | might be call-clobbered (but without taking -fipa-ra into account | |
12127 | for now). Remove separate handling of partially call-clobbered | |
12128 | registers. | |
12129 | (verify_target_availability): Use crossed_call_abis instead of | |
12130 | crosses_call. | |
12131 | (get_spec_check_type_for_insn, find_used_regs): Likewise. | |
12132 | (fur_orig_expr_found, fur_on_enter, fur_orig_expr_not_found): Likewise. | |
12133 | ||
12134 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12135 | ||
12136 | * sched-deps.c (deps_analyze_insn): Use the ABI of the target | |
12137 | function to test whether a register is fully or partly clobbered. | |
12138 | ||
12139 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12140 | ||
12141 | * rtlanal.c: Include function-abi.h. | |
12142 | (reg_set_p): Use insn_callee_abi to get the ABI of the called | |
12143 | function and clobbers_reg_p to test whether the register | |
12144 | is call-clobbered. | |
12145 | (find_all_hard_reg_sets): When implicit is true, use insn_callee_abi | |
12146 | to get the ABI of the called function and full_reg_clobbers to | |
12147 | get the set of fully call-clobbered registers. Warn about the | |
12148 | pitfalls of using this mode. | |
12149 | ||
12150 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12151 | ||
12152 | * reload.c: Include function-abi.h. | |
12153 | (find_equiv_reg): Use clobbers_reg_p to test whether either | |
12154 | of the equivalent registers is clobbered by a call. | |
12155 | * reload1.c: Include function-abi.h. | |
12156 | (reg_reloaded_call_part_clobbered): Delete. | |
12157 | (reload): Use crtl->abi to test which registers would need | |
12158 | saving in the prologue before use. | |
12159 | (find_reg): Likewise. | |
12160 | (emit_reload_insns): Remove code for reg_reloaded_call_part_clobbered. | |
12161 | (reload_as_needed): Likewise. Use full_and_partial_reg_clobbers | |
12162 | instead of call_used_or_fixed_regs | reg_reloaded_call_part_clobbered. | |
12163 | ||
12164 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12165 | ||
12166 | * regrename.h (du_head::call_clobber_mask): New field. | |
12167 | (du_head::need_caller_save_reg): Replace with... | |
12168 | (du_head::call_abis): ...this new field. | |
12169 | * regrename.c: Include function-abi.h. | |
12170 | (call_clobbered_in_chain_p): New function. | |
12171 | (check_new_reg_p): Use crtl->abi when deciding whether a register | |
12172 | is free for use after RA. Use call_clobbered_in_chain_p to test | |
12173 | whether a candidate register would be clobbered by a call. | |
12174 | (find_rename_reg): Don't add call-clobber conflicts here. | |
12175 | (rename_chains): Check call_abis instead of need_caller_save_reg. | |
12176 | (merge_chains): Update for changes to du_head. | |
12177 | (build_def_use): Use insn_callee_abi to get the ABI of the call insn | |
12178 | target. Record the ABI identifier in call_abis and the set of | |
12179 | fully or partially clobbered registers in call_clobber_mask. | |
12180 | Add fully-clobbered registers to hard_conflicts here rather | |
12181 | than in find_rename_reg. | |
12182 | * config/aarch64/cortex-a57-fma-steering.c: Include function-abi.h. | |
12183 | (rename_single_chain): Check call_abis instead of need_caller_save_reg. | |
12184 | * config/aarch64/falkor-tag-collision-avoidance.c: Include | |
12185 | function-abi.h. | |
12186 | * config/c6x/c6x.c: Likewise. | |
12187 | ||
12188 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12189 | ||
12190 | * regcprop.c (copyprop_hardreg_forward_1): Use the recorded | |
12191 | mode of the register when deciding whether it is no longer | |
12192 | available after a call. | |
12193 | ||
12194 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12195 | ||
12196 | * recog.c: Include function-abi.h. | |
12197 | (peep2_find_free_register): Use crtl->abi when deciding whether | |
12198 | a register is free for use after RA. | |
12199 | ||
12200 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12201 | ||
12202 | * postreload-gcse.c: Include regs.h and function-abi.h. | |
12203 | (record_opr_changes): Use insn_callee_abi to get the ABI of the | |
12204 | call insn target. Conservatively assume that partially-clobbered | |
12205 | registers are altered. | |
12206 | ||
12207 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12208 | ||
12209 | * postreload.c (reload_combine_recognize_pattern): Use crtl->abi | |
12210 | when deciding whether a register is free for use after RA. | |
12211 | (reload_combine): Remove unnecessary use of fixed_reg_set. | |
12212 | (reload_cse_move2add): Use insn_callee_abi to get the ABI of the | |
12213 | call insn target. Use reg_mode when testing whether a register | |
12214 | is no longer available. | |
12215 | ||
12216 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12217 | ||
12218 | * target.def (return_call_with_max_clobbers): Delete. | |
12219 | * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete. | |
12220 | * doc/tm.texi: Regenerate. | |
12221 | * config/aarch64/aarch64.c (aarch64_return_call_with_max_clobbers) | |
12222 | (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): Delete. | |
12223 | * lra-int.h (lra_reg::actual_call_used_reg_set): Delete. | |
12224 | (lra_reg::call_insn): Delete. | |
12225 | * lra.c: Include function-abi.h. | |
12226 | (initialize_lra_reg_info_element): Don't initialize the fields above. | |
12227 | (lra): Use crtl->abi to test whether the current function needs to | |
12228 | save a register in the prologue. Remove special pre-inheritance | |
12229 | lra_create_live_ranges pass for flag_ipa_ra. | |
12230 | * lra-assigns.c: Include function-abi.h | |
12231 | (find_hard_regno_for_1): Use crtl->abi to test whether the current | |
12232 | function needs to save a register in the prologue. | |
12233 | (lra_assign): Assert that registers aren't allocated to a | |
12234 | conflicting register, rather than checking only for overlaps | |
12235 | with call_used_or_fixed_regs. Do this even for flag_ipa_ra, | |
12236 | and for registers that are not live across a call. | |
12237 | * lra-constraints.c (last_call_for_abi): New variable. | |
12238 | (full_and_partial_call_clobbers): Likewise. | |
12239 | (setup_next_usage_insn): Remove the register from | |
12240 | full_and_partial_call_clobbers. | |
12241 | (need_for_call_save_p): Use call_clobbered_in_region_p to test | |
12242 | whether the register needs a caller save. | |
12243 | (need_for_split_p): Use full_and_partial_reg_clobbers instead | |
12244 | of call_used_or_fixed_regs. | |
12245 | (inherit_in_ebb): Initialize and maintain last_call_for_abi and | |
12246 | full_and_partial_call_clobbers. | |
12247 | * lra-lives.c (check_pseudos_live_through_calls): Replace | |
12248 | last_call_used_reg_set and call_insn arguments with an abi argument. | |
12249 | Remove handling of lra_reg::call_insn. Use function_abi::mode_clobbers | |
12250 | as the set of conflicting registers. | |
12251 | (calls_have_same_clobbers_p): Delete. | |
12252 | (process_bb_lives): Track the ABI of the last call instead of an | |
12253 | insn/HARD_REG_SET pair. Update calls to | |
12254 | check_pseudos_live_through_calls. Use eh_edge_abi to calculate | |
12255 | the set of registers that could be clobbered by an EH edge. | |
12256 | Include partially-clobbered as well as fully-clobbered registers. | |
12257 | (lra_create_live_ranges_1): Don't initialize lra_reg::call_insn. | |
12258 | * lra-remat.c: Include function-abi.h. | |
12259 | (call_used_regs_arr_len, call_used_regs_arr): Delete. | |
12260 | (set_bb_regs): Use insn_callee_abi to get the set of call-clobbered | |
12261 | registers and bitmap_view to combine them into dead_regs. | |
12262 | (call_used_input_regno_present_p): Take a function_abi argument | |
12263 | and use it to test whether a register is call-clobbered. | |
12264 | (calculate_gen_cands): Use insn_callee_abi to get the ABI of the | |
12265 | call insn target. Update tje call to call_used_input_regno_present_p. | |
12266 | (do_remat): Likewise. | |
12267 | (lra_remat): Remove the initialization of call_used_regs_arr_len | |
12268 | and call_used_regs_arr. | |
12269 | ||
12270 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12271 | ||
12272 | * loop-iv.c: Include regs.h and function-abi.h. | |
12273 | (simplify_using_initial_values): Use insn_callee_abi to get the | |
12274 | ABI of the call insn target. Conservatively assume that | |
12275 | partially-clobbered registers are altered. | |
12276 | ||
12277 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12278 | ||
12279 | * function-abi.h (call_clobbers_in_region): Declare. | |
12280 | (call_clobbered_in_region_p): New function. | |
12281 | * function-abi.cc (call_clobbers_in_region): Likewise. | |
12282 | * ira-int.h: Include function-abi.h. | |
12283 | (ira_allocno::crossed_calls_abis): New field. | |
12284 | (ALLOCNO_CROSSED_CALLS_ABIS): New macro. | |
12285 | (ira_need_caller_save_regs): New function. | |
12286 | (ira_need_caller_save_p): Likewise. | |
12287 | * ira.c (setup_reg_renumber): Use ira_need_caller_save_p instead | |
12288 | of call_used_or_fixed_regs. | |
12289 | (do_reload): Use crtl->abi to test whether the current function | |
12290 | needs to save a register in the prologue. Count registers that | |
12291 | need to be saved rather than registers that don't. | |
12292 | * ira-build.c (create_cap_allocno): Copy ALLOCNO_CROSSED_CALLS_ABIS. | |
12293 | Remove unnecessary | from ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS. | |
12294 | (propagate_allocno_info): Merge ALLOCNO_CROSSED_CALLS_ABIS too. | |
12295 | (propagate_some_info_from_allocno): Likewise. | |
12296 | (copy_info_to_removed_store_destinations): Likewise. | |
12297 | (ira_flattening): Say that ALLOCNO_CROSSED_CALLS_ABIS and | |
12298 | ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS are handled conservatively. | |
12299 | (ira_build): Use ira_need_caller_save_regs instead of | |
12300 | call_used_or_fixed_regs. | |
12301 | * ira-color.c (calculate_saved_nregs): Use crtl->abi to test | |
12302 | whether the current function would need to save a register | |
12303 | before using it. | |
12304 | (calculate_spill_cost): Likewise. | |
12305 | (allocno_reload_assign): Use ira_need_caller_save_regs and | |
12306 | ira_need_caller_save_p instead of call_used_or_fixed_regs. | |
12307 | * ira-conflicts.c (ira_build_conflicts): Use | |
12308 | ira_need_caller_save_regs rather than call_used_or_fixed_regs | |
12309 | as the set of call-clobbered registers. Remove the | |
12310 | call_used_or_fixed_regs mask from the calculation of | |
12311 | temp_hard_reg_set and mask its use instead. Remove special | |
12312 | handling of partially-clobbered registers. | |
12313 | * ira-costs.c (ira_tune_allocno_costs): Use ira_need_caller_save_p. | |
12314 | * ira-lives.c (process_bb_node_lives): Use mode_clobbers to | |
12315 | calculate the set of conflicting registers for calls that | |
12316 | can throw. Record the ABIs of calls in ALLOCNO_CROSSED_CALLS_ABIS. | |
12317 | Use full_and_partial_reg_clobbers rather than full_reg_clobbers | |
12318 | for the calculation of ALLOCNO_CROSSED_CALLS_CLOBBERED_REGS. | |
12319 | Use eh_edge_abi to calculate the set of registers that could | |
12320 | be clobbered by an EH edge. Include partially-clobbered as | |
12321 | well as fully-clobbered registers. | |
12322 | ||
12323 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12324 | ||
12325 | * haifa-sched.c: Include function-abi.h. | |
12326 | (alloc_global_sched_pressure_data): Use crtl->abi to check whether | |
12327 | the function would need to save a register before using it. | |
12328 | ||
12329 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12330 | ||
12331 | * gcse.c: Include function-abi.h. | |
12332 | (compute_hash_table_work): Use insn_callee_abi to get the ABI of | |
12333 | the call insn target. Invalidate partially call-clobbered | |
12334 | registers as well as fully call-clobbered ones. | |
12335 | ||
12336 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12337 | ||
12338 | * function.c (aggregate_value_p): Work out which ABI the | |
12339 | function is using before testing which registers are at least | |
12340 | partly preserved by a call. | |
12341 | ||
12342 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12343 | ||
12344 | * early-remat.c: Include regs.h and function-abi.h. | |
12345 | (early_remat::maybe_add_candidate): Don't check for call-clobbered | |
12346 | registers here. | |
12347 | (early_remat::restrict_remat_for_unavail_regs): New function. | |
12348 | (early_remat::restrict_remat_for_call): Likewise. | |
12349 | (early_remat::process_block): Before calling emit_remat_insns | |
12350 | for a previous call in the block, invalidate any candidates | |
12351 | that would clobber call-preserved registers. | |
12352 | (early_remat::emit_remat_insns_for_block): Likewise for the | |
12353 | final call in a block. Do the same thing for live-in registers | |
12354 | when calling emit_remat_insns at the head of a block. | |
12355 | ||
12356 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12357 | ||
12358 | * df-scan.c (df_get_entry_block_def_set): Use crtl->abi to test | |
12359 | whether the current function needs to save at least part of a | |
12360 | register before using it. | |
12361 | (df_get_exit_block_use_set): Likewise for epilogue restores. | |
12362 | ||
12363 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12364 | ||
12365 | * df-problems.c: Include regs.h and function-abi.h. | |
12366 | (df_rd_problem_data): Rename sparse_invalidated_by_call to | |
12367 | sparse_invalidated_by_eh and dense_invalidated_by_call to | |
12368 | dense_invalidated_by_eh. | |
12369 | (df_print_bb_index): Update accordingly. | |
12370 | (df_rd_alloc, df_rd_start_dump, df_rd_confluence_n): Likewise. | |
12371 | (df_lr_confluence_n): Use eh_edge_abi to get the set of registers | |
12372 | that are clobbered by an EH edge. Clobber partially-clobbered | |
12373 | registers as well as fully-clobbered ones. | |
12374 | (df_md_confluence_n): Likewise. | |
12375 | (df_rd_local_compute): Likewise. Update for changes to | |
12376 | df_rd_problem_data. | |
12377 | * df-scan.c (df_scan_start_dump): Use eh_edge_abi to get the set | |
12378 | of registers that are clobbered by an EH edge. Includde partially- | |
12379 | clobbered registers as well as fully-clobbered ones. | |
12380 | ||
12381 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12382 | ||
12383 | * cselib.c (cselib_process_insn): If we know what mode a | |
12384 | register was set in, check whether it is clobbered in that | |
12385 | mode by a call. Only fall back to reg_raw_mode if that fails. | |
12386 | ||
12387 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12388 | ||
12389 | * cse.c: Include regs.h and function-abi.h. | |
12390 | (invalidate_for_call): Take the call insn as an argument. | |
12391 | Use insn_callee_abi to get the ABI of the call and invalidate | |
12392 | partially clobbered registers as well as fully clobbered ones. | |
12393 | (cse_insn): Update call accordingly. | |
12394 | ||
12395 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12396 | ||
12397 | * combine.c: Include function-abi.h. | |
12398 | (record_dead_and_set_regs): Use insn_callee_abi to get the ABI | |
12399 | of the target of call insns. Invalidate partially-clobbered | |
12400 | registers as well as fully-clobbered ones. | |
12401 | ||
12402 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12403 | ||
12404 | * cfgloopanal.c: Include regs.h and function-abi.h. | |
12405 | (init_set_costs): Use default_function_abi to test whether | |
12406 | a general register is call-clobbered. | |
12407 | ||
12408 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12409 | ||
12410 | * cfgcleanup.c (old_insns_match_p): Compare the ABIs of calls | |
12411 | instead of the call-clobbered sets. | |
12412 | ||
12413 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12414 | ||
12415 | * caller-save.c (setup_save_areas): Remove redundant |s of | |
12416 | fixed_reg_set. | |
12417 | (save_call_clobbered_regs): Likewise. Use the call ABI rather | |
12418 | than call_used_or_fixed_regs to decide whether a REG_RETURNED | |
12419 | value is useful. | |
12420 | ||
12421 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12422 | ||
12423 | * rtl.h (predefined_function_abi): Declare. | |
12424 | (choose_hard_reg_mode): Take a pointer to a predefined_function_abi | |
12425 | instead of a boolean call_save flag. | |
12426 | * config/gcn/gcn.c (gcn_hard_regno_caller_save_mode): Update call | |
12427 | accordingly. | |
12428 | * config/i386/i386.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise. | |
12429 | * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise. | |
12430 | * config/mips/mips.c (mips_hard_regno_caller_save_mode): Likewise. | |
12431 | * config/msp430/msp430.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise. | |
12432 | * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Likewise. | |
12433 | * config/sh/sh.c (sh_hard_regno_caller_save_mode): Likewise. | |
12434 | * reginfo.c (init_reg_modes_target): Likewise. | |
12435 | (choose_hard_reg_mode): Take a pointer to a predefined_function_abi | |
12436 | instead of a boolean call_save flag. | |
12437 | * targhooks.c: Include function-abi.h. | |
12438 | (default_dwarf_frame_reg_mode): Update call to choose_hard_reg_mode, | |
12439 | using eh_edge_abi to choose the mode. | |
12440 | ||
12441 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12442 | ||
12443 | * target.def (hard_regno_call_part_clobbered): Take an ABI | |
12444 | identifier instead of an rtx_insn. | |
12445 | * doc/tm.texi: Regenerate. | |
12446 | * hooks.h (hook_bool_insn_uint_mode_false): Delete. | |
12447 | (hook_bool_uint_uint_mode_false): New function. | |
12448 | * hooks.c (hook_bool_insn_uint_mode_false): Delete. | |
12449 | (hook_bool_uint_uint_mode_false): New function. | |
12450 | * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered): | |
12451 | Take an ABI identifier instead of an rtx_insn. | |
12452 | * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Likewise. | |
12453 | * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Likewise. | |
12454 | * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Likewise. | |
12455 | * config/pru/pru.c (pru_hard_regno_call_part_clobbered): Likewise. | |
12456 | * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): | |
12457 | Likewise. | |
12458 | * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Likewise. | |
12459 | * cselib.c: Include function-abi.h. | |
12460 | (cselib_process_insn): Update call to | |
12461 | targetm.hard_regno_call_part_clobbered, using insn_callee_abi | |
12462 | to get the appropriate ABI identifier. | |
12463 | * function-abi.cc (predefined_function_abi::initialize): Update call | |
12464 | to targetm.hard_regno_call_part_clobbered. | |
12465 | * ira-conflicts.c (ira_build_conflicts): Likewise. | |
12466 | * ira-costs.c (ira_tune_allocno_costs): Likewise. | |
12467 | * lra-constraints.c: Include function-abi.h. | |
12468 | (need_for_call_save_p): Update call to | |
12469 | targetm.hard_regno_call_part_clobbered, using insn_callee_abi | |
12470 | to get the appropriate ABI identifier. | |
12471 | * lra-lives.c (check_pseudos_live_through_calls): Likewise. | |
12472 | * regcprop.c (copyprop_hardreg_forward_1): Update call | |
12473 | to targetm.hard_regno_call_part_clobbered. | |
12474 | * reginfo.c (choose_hard_reg_mode): Likewise. | |
12475 | * regrename.c (check_new_reg_p): Likewise. | |
12476 | * reload.c (find_equiv_reg): Likewise. | |
12477 | * reload1.c (emit_reload_insns): Likewise. | |
12478 | * sched-deps.c: Include function-abi.h. | |
12479 | (deps_analyze_insn): Update call to | |
12480 | targetm.hard_regno_call_part_clobbered, using insn_callee_abi | |
12481 | to get the appropriate ABI identifier. | |
12482 | * sel-sched.c (init_regs_for_mode, mark_unavailable_hard_regs): Update | |
12483 | call to targetm.hard_regno_call_part_clobbered. | |
12484 | * targhooks.c (default_dwarf_frame_reg_mode): Likewise. | |
12485 | ||
12486 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12487 | ||
12488 | * config/i386/i386.c: Include function-abi.h. | |
12489 | (ix86_avx_u128_mode_needed): Treat function calls as AVX_U128_ANY | |
12490 | if they preserve some 256-bit or 512-bit SSE registers. | |
12491 | ||
12492 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12493 | ||
12494 | * target.def (insn_callee_abi): New hook. | |
12495 | (remove_extra_call_preserved_regs): Delete. | |
12496 | * doc/tm.texi.in (TARGET_INSN_CALLEE_ABI): New macro. | |
12497 | (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete. | |
12498 | * doc/tm.texi: Regenerate. | |
12499 | * targhooks.h (default_remove_extra_call_preserved_regs): Delete. | |
12500 | * targhooks.c (default_remove_extra_call_preserved_regs): Delete. | |
12501 | * config/aarch64/aarch64.c (aarch64_simd_call_p): Constify the | |
12502 | insn argument. | |
12503 | (aarch64_remove_extra_call_preserved_regs): Delete. | |
12504 | (aarch64_insn_callee_abi): New function. | |
12505 | (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): Delete. | |
12506 | (TARGET_INSN_CALLEE_ABI): New macro. | |
12507 | * rtl.h (get_call_fndecl): Declare. | |
12508 | (cgraph_rtl_info): Fix formatting. Tweak comment for | |
12509 | function_used_regs. Remove function_used_regs_valid. | |
12510 | * rtlanal.c (get_call_fndecl): Moved from final.c | |
12511 | * function-abi.h (insn_callee_abi): Declare. | |
12512 | (target_function_abi_info): Mention insn_callee_abi. | |
12513 | * function-abi.cc (fndecl_abi): Handle flag_ipa_ra in a similar | |
12514 | way to get_call_reg_set_usage did. | |
12515 | (insn_callee_abi): New function. | |
12516 | * regs.h (get_call_reg_set_usage): Delete. | |
12517 | * final.c: Include function-abi.h. | |
12518 | (collect_fn_hard_reg_usage): Add fixed and stack registers to | |
12519 | function_used_regs before the main loop rather than afterwards. | |
12520 | Use insn_callee_abi instead of get_call_reg_set_usage. Exit early | |
12521 | if function_used_regs ends up not being useful. | |
12522 | (get_call_fndecl): Move to rtlanal.c | |
12523 | (get_call_cgraph_rtl_info, get_call_reg_set_usage): Delete. | |
12524 | * caller-save.c: Include function-abi.h. | |
12525 | (setup_save_areas, save_call_clobbered_regs): Use insn_callee_abi | |
12526 | instead of get_call_reg_set_usage. | |
12527 | * cfgcleanup.c: Include function-abi.h. | |
12528 | (old_insns_match_p): Use insn_callee_abi instead of | |
12529 | get_call_reg_set_usage. | |
12530 | * cgraph.h (cgraph_node::rtl_info): Take a const_tree instead of | |
12531 | a tree. | |
12532 | * cgraph.c (cgraph_node::rtl_info): Likewise. Initialize | |
12533 | function_used_regs. | |
12534 | * df-scan.c: Include function-abi.h. | |
12535 | (df_get_call_refs): Use insn_callee_abi instead of | |
12536 | get_call_reg_set_usage. | |
12537 | * ira-lives.c: Include function-abi.h. | |
12538 | (process_bb_node_lives): Use insn_callee_abi instead of | |
12539 | get_call_reg_set_usage. | |
12540 | * lra-lives.c: Include function-abi.h. | |
12541 | (process_bb_lives): Use insn_callee_abi instead of | |
12542 | get_call_reg_set_usage. | |
12543 | * postreload.c: Include function-abi.h. | |
12544 | (reload_combine): Use insn_callee_abi instead of | |
12545 | get_call_reg_set_usage. | |
12546 | * regcprop.c: Include function-abi.h. | |
12547 | (copyprop_hardreg_forward_1): Use insn_callee_abi instead of | |
12548 | get_call_reg_set_usage. | |
12549 | * resource.c: Include function-abi.h. | |
12550 | (mark_set_resources, mark_target_live_regs): Use insn_callee_abi | |
12551 | instead of get_call_reg_set_usage. | |
12552 | * var-tracking.c: Include function-abi.h. | |
12553 | (dataflow_set_clear_at_call): Use insn_callee_abi instead of | |
12554 | get_call_reg_set_usage. | |
12555 | ||
12556 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12557 | ||
12558 | * target.def (fntype_abi): New target hook. | |
12559 | * doc/tm.texi.in (TARGET_FNTYPE_ABI): Likewise. | |
12560 | * doc/tm.texi: Regenerate. | |
12561 | * target.h (predefined_function_abi): Declare. | |
12562 | * function-abi.cc (fntype_abi): Call targetm.calls.fntype_abi, | |
12563 | if defined. | |
12564 | * config/aarch64/aarch64.h (ARM_PCS_SIMD): New arm_pcs value. | |
12565 | * config/aarch64/aarch64.c: Include function-abi.h. | |
12566 | (aarch64_simd_abi, aarch64_fntype_abi): New functions. | |
12567 | (TARGET_FNTYPE_ABI): Define. | |
12568 | ||
12569 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12570 | ||
12571 | * Makefile.in (OBJS): Add function-abi.o. | |
12572 | (GTFILES): Add function-abi.h. | |
12573 | * function-abi.cc: New file. | |
12574 | * function-abi.h: Likewise. | |
12575 | * emit-rtl.h (rtl_data::abi): New field. | |
12576 | * function.c: Include function-abi.h. | |
12577 | (prepare_function_start): Initialize crtl->abi. | |
12578 | * read-rtl-function.c: Include regs.h and function-abi.h. | |
12579 | (read_rtl_function_body): Initialize crtl->abi. | |
12580 | (read_rtl_function_body_from_file_range): Likewise. | |
12581 | * reginfo.c: Include function-abi.h. | |
12582 | (init_reg_sets_1): Initialize default_function_abi. | |
12583 | (globalize_reg): Call add_full_reg_clobber for each predefined ABI | |
12584 | when making a register global. | |
12585 | * target-globals.h (this_target_function_abi_info): Declare. | |
12586 | (target_globals::function_abi_info): New field. | |
12587 | (restore_target_globals): Copy it. | |
12588 | * target-globals.c: Include function-abi.h. | |
12589 | (default_target_globals): Initialize the function_abi_info field. | |
12590 | (target_globals): Allocate it. | |
12591 | (save_target_globals): Free it. | |
12592 | ||
12593 | 2019-09-30 Nick Clifton <nickc@redhat.com> | |
12594 | ||
12595 | PR target/85978 | |
12596 | * config/frv/frv.c (frv_register_move_cost): Add break statements | |
12597 | to avoid falling through to the wrong cases. Tidy code. | |
12598 | ||
12599 | 2019-09-30 Richard Sandiford <richard.sandiford@arm.com> | |
12600 | ||
12601 | * config/aarch64/aarch64.c (aarch64_hard_regno_call_part_clobbered): | |
12602 | For multi-registers modes, test how big each register part is. | |
12603 | ||
12604 | 2019-09-30 Nick Clifton <nickc@redhat.com> | |
12605 | ||
12606 | PR target/59205 | |
12607 | * config/iq2000/iq2000.c (iq2000_select_section): Delete. | |
12608 | (TARGET_ASM_SELECT_SECTION): Remove definition. | |
12609 | (TARGET_HAVE_SWITCHABLE_BSS_SECTIONS): Allow definition. | |
12610 | ||
12611 | 2019-09-30 Ilya Leoshkevich <iii@linux.ibm.com> | |
12612 | ||
12613 | * emit-rtl.c (init_raw_REG): New function. | |
12614 | (gen_raw_REG): Use init_raw_REG. | |
12615 | * gengenrtl.c (gendef): Emit init_* functions and alloca_* | |
12616 | macros. | |
12617 | * rtl.c (rtx_alloc_stat_v): Use rtx_init. | |
12618 | * rtl.h (rtx_init): New function. | |
12619 | (rtx_alloca): New function. | |
12620 | (init_raw_REG): New function. | |
12621 | (alloca_raw_REG): New macro. | |
12622 | ||
12623 | 2019-09-30 Michael Meissner <meissner@linux.ibm.com> | |
12624 | ||
12625 | * config/rs6000/predicates.md (pcrel_address): Delete predicate. | |
12626 | (pcrel_local_address): Replace pcrel_address predicate, use the | |
12627 | new function address_to_insn_form. | |
12628 | (pcrel_external_address): Replace with new implementation using | |
12629 | address_to_insn_form.. | |
12630 | (prefixed_mem_operand): Delete predicate which is now unused. | |
12631 | (pcrel_external_mem_operand): Delete predicate which is now | |
12632 | unused. | |
12633 | * config/rs6000/rs6000-protos.h (enum insn_form): New | |
12634 | enumeration. | |
12635 | (enum non_prefixed_form): New enumeration. | |
12636 | (address_to_insn_form): New declaration. | |
12637 | (prefixed_load_p): New declaration. | |
12638 | (prefixed_store_p): New declaration. | |
12639 | (prefixed_paddi_p): New declaration. | |
12640 | (rs6000_asm_output_opcode): New declaration. | |
12641 | (rs6000_final_prescan_insn): Move declaration and update calling | |
12642 | signature. | |
12643 | (address_is_prefixed): New helper inline function. | |
12644 | * config/rs6000/rs6000.c(print_operand_address): Check for either | |
12645 | PC-relative local symbols or PC-relative external symbols. | |
12646 | (rs6000_emit_move): Support loading PC-relative addresses. | |
12647 | (mode_supports_prefixed_address_p): Delete, no longer used. | |
12648 | (rs6000_prefixed_address_mode_p): Delete, no longer used. | |
12649 | (address_to_insn_form): New function to decode an address format. | |
12650 | (reg_to_non_prefixed): New function to identify what the | |
12651 | non-prefixed memory instruction format is for a register. | |
12652 | (prefixed_load_p): New function to identify prefixed loads. | |
12653 | (prefixed_store_p): New function to identify prefixed stores. | |
12654 | (prefixed_paddi_p): New function to identify prefixed load | |
12655 | immediates. | |
12656 | (next_insn_prefixed_p): New static state variable. | |
12657 | (rs6000_final_prescan_insn): New function to determine if an insn | |
12658 | uses a prefixed instruction. | |
12659 | (rs6000_asm_output_opcode): New function to emit 'p' in front of a | |
12660 | prefixed instruction. | |
12661 | * config/rs6000/rs6000.h (FINAL_PRESCAN_INSN): New target hook. | |
12662 | (ASM_OUTPUT_OPCODE): New target hook. | |
12663 | * config/rs6000/rs6000.md (prefixed): New insn attribute for | |
12664 | prefixed instructions. | |
12665 | (prefixed_length): New insn attribute for the size of prefixed | |
12666 | instructions. | |
12667 | (non_prefixed_length): New insn attribute for the size of | |
12668 | non-prefixed instructions. | |
12669 | (pcrel_local_addr): New insn to load up a local PC-relative | |
12670 | address. | |
12671 | (pcrel_extern_addr): New insn to load up an external PC-relative | |
12672 | address. | |
12673 | (mov<mode>_64bit_dm): Split the alternatives for loading 0.0 to a | |
12674 | GPR and loading a 128-bit floating point type to a GPR. | |
12675 | ||
12676 | 2019-09-30 Richard Biener <rguenther@suse.de> | |
12677 | ||
12678 | * gimple.c (gimple_get_lhs): For PHIs return the result. | |
12679 | * tree-vectorizer.h (vectorizable_live_operation): Also get the | |
12680 | SLP instance as argument. | |
12681 | * tree-vect-loop.c (vect_analyze_loop_operations): Also handle | |
12682 | double-reduction PHIs with vectorizable_lc_phi. | |
12683 | (vect_analyze_loop_operations): Adjust. | |
12684 | (vect_create_epilog_for_reduction): Remove all code not dealing | |
12685 | with reduction LC PHI or epilogue generation. | |
12686 | (vectorizable_live_operation): Call vect_create_epilog_for_reduction | |
12687 | for live stmts of reductions. | |
12688 | * tree-vect-stmts.c (vectorizable_condition): When !for_reduction | |
12689 | do not handle defs that are not vect_internal_def. | |
12690 | (can_vectorize_live_stmts): Adjust. | |
12691 | (vect_analyze_stmt): When the vectorized stmt defined a value | |
12692 | used on backedges adjust the backedge uses of vectorized PHIs. | |
12693 | ||
12694 | 2019-09-30 Martin Jambor <mjambor@suse.cz> | |
12695 | ||
12696 | PR ipa/91853 | |
12697 | * tree-inline.c (force_value_to_type): New function. | |
12698 | (setup_one_parameter): Use force_value_to_type to convert type. | |
12699 | * tree-inline.c (force_value_to_type): Declare. | |
12700 | * ipa-param-manipulation.c (ipa_param_adjustments::modify_call): Deal | |
12701 | with register type mismatches. | |
12702 | ||
12703 | 2019-09-30 Andreas Tobler <andreast@gcc.gnu.org> | |
12704 | ||
12705 | * config.gcc: Use the secure-plt on FreeBSD 13 and upwards for | |
12706 | 32-bit PowerPC. | |
12707 | Define TARGET_FREEBSD32_SECURE_PLT for 64-bit PowerPC. | |
12708 | * config/rs6000/t-freebsd64: Make use of the above define and build | |
12709 | the 32-bit libraries with secure-plt. | |
12710 | ||
12711 | 2019-09-30 Jakub Jelinek <jakub@redhat.com> | |
12712 | ||
12713 | PR target/91931 | |
12714 | * config/i386/i386-expand.c (ix86_expand_adjust_ufix_to_sfix_si): Use | |
12715 | gen_int_mode instead of GEN_INT. | |
12716 | ||
12717 | 2019-09-29 Iain Sandoe <iain@sandoe.co.uk> | |
12718 | ||
12719 | * config/darwin.c (gen_macho_low): Amend to include the mode | |
12720 | argument. | |
12721 | (machopic_indirect_data_reference): Amend gen_macho_low call | |
12722 | to include mode argument | |
12723 | * config/rs6000/rs6000.c (emit_move): Likewise. Amend a comment. | |
12724 | * config/rs6000/darwin.md (@macho_low_<mode>): New, replaces | |
12725 | the macho_high expander and two define_insn entries. | |
12726 | ||
12727 | 2019-09-29 Jakub Jelinek <jakub@redhat.com> | |
12728 | ||
12729 | PR bootstrap/90543 | |
12730 | * optc-save-gen.awk: Fix up printing string option differences. | |
12731 | ||
12732 | 2019-09-29 Kewen Lin <linkw@gcc.gnu.org> | |
12733 | ||
12734 | * config/rs6000/rs6000.c (rs6000_builtin_vectorization_cost): Lower | |
12735 | vec_perm cost to 1 for non-Power7 VSX architectures. | |
12736 | ||
12737 | 2019-09-29 Kewen Lin <linkw@gcc.gnu.org> | |
12738 | ||
12739 | * config/rs6000/vsx.md (vec_pack[su]_float_v2di): New define_expand. | |
12740 | (vec_unpack_[su]fix_trunc_hi_v4sf): Likewise. | |
12741 | (vec_unpack_[su]fix_trunc_lo_v4sf): Likewise. | |
12742 | ||
12743 | 2019-09-28 Iain Sandoe <iain@sandoe.co.uk> | |
12744 | ||
12745 | * config/darwin.c (gen_macho_high): Amend to include the mode | |
12746 | argument. | |
12747 | (machopic_indirect_data_reference): Amend gen_macho_high call | |
12748 | to include mode argument. | |
12749 | (machopic_legitimize_pic_address): Likewise. | |
12750 | * config/rs6000/rs6000.c (rs6000_legitimize_address): | |
12751 | * config/rs6000/darwin.md (@macho_high_<mode>): New, replaces | |
12752 | the macho_high expander and two define_insn entries. | |
12753 | ||
12754 | 2019-09-28 Oleg Endo <olegendo@gcc.gnu.org> | |
12755 | ||
12756 | PR target/86805 | |
12757 | * config/sh/sh.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. | |
12758 | ||
12759 | 2019-09-28 Oleg Endo <olegendo@gcc.gnu.org> | |
12760 | ||
12761 | PR target/80672 | |
12762 | * config/sh/sh.c (parse_validate_atomic_model_option): Use | |
12763 | std::string::compare instead of std::string::find. | |
12764 | ||
12765 | 2019-09-27 Maciej W. Rozycki <macro@wdc.com> | |
12766 | ||
12767 | * configure: Regenerate. | |
12768 | ||
12769 | 2019-09-27 Jakub Jelinek <jakub@redhat.com> | |
12770 | ||
12771 | PR middle-end/91920 | |
12772 | * gimplify.c (omp_default_clause): Predetermine DECL_IN_CONSTANT_POOL | |
12773 | variables as shared. | |
12774 | ||
12775 | 2019-09-27 Iain Sandoe <iain@sandoe.co.uk> | |
12776 | ||
12777 | * config/rs6000/darwin.md (@macho_correct_pic_<mode>): New, | |
12778 | replaces the expander and two define_insn entries. | |
12779 | (@reload_macho_picbase_<mode>): Update gen_macho_correct_pic | |
12780 | call. | |
12781 | * config/rs6000/rs6000.md (builtin_setjmp_receiver): Likewise. | |
12782 | ||
12783 | 2019-09-27 David Malcolm <dmalcolm@redhat.com> | |
12784 | ||
12785 | * fibonacci_heap.h (fibonacci_heap::empty): Make const. | |
12786 | (fibonacci_heap::nodes): Likewise. | |
12787 | (fibonacci_heap::min_key): Likewise. | |
12788 | (fibonacci_heap::min): Likewise. | |
12789 | ||
12790 | 2019-09-27 David Malcolm <dmalcolm@redhat.com> | |
12791 | ||
12792 | * cgraph.c (cgraph_node::get_fun): Make const. | |
12793 | * cgraph.h (cgraph_node::get_fun): Likewise. | |
12794 | ||
12795 | 2019-09-27 Jakub Jelinek <jakub@redhat.com> | |
12796 | ||
12797 | PR target/91919 | |
12798 | * config/arm/arm.md (<US>mlal): Remove SE wrappers around operands | |
12799 | of SImode MULT. | |
12800 | ||
12801 | 2019-09-27 Richard Biener <rguenther@suse.de> | |
12802 | ||
12803 | * tree-vectorizer.h (_stmt_vec_info::reduc_fn): New. | |
12804 | (STMT_VINFO_REDUC_FN): Likewise. | |
12805 | * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize | |
12806 | STMT_VINFO_REDUC_FN. | |
12807 | * tree-vect-loop.c (vect_is_simple_reduction): Fix STMT_VINFO_REDUC_IDX | |
12808 | for condition reductions. | |
12809 | (vect_create_epilog_for_reduction): Compute all required state | |
12810 | from the stmt to be vectorized. | |
12811 | (vectorizable_reduction): Simplify vect_create_epilog_for_reduction | |
12812 | invocation and remove then dead code. For single def-use chains | |
12813 | record only a single vector stmt. | |
12814 | ||
12815 | 2019-09-27 Richard Sandiford <richard.sandiford@arm.com> | |
12816 | ||
12817 | * config/aarch64/aarch64-protos.h (aarch64_builtin_class): New enum. | |
12818 | (AARCH64_BUILTIN_SHIFT, AARCH64_BUILTIN_CLASS): New constants. | |
12819 | (aarch64_gimple_fold_builtin, aarch64_mangle_builtin_type) | |
12820 | (aarch64_fold_builtin, aarch64_init_builtins, aarch64_expand_builtin): | |
12821 | (aarch64_builtin_decl, aarch64_builtin_rsqrt): Delete. | |
12822 | (aarch64_general_mangle_builtin_type, aarch64_general_init_builtins): | |
12823 | (aarch64_general_fold_builtin, aarch64_general_gimple_fold_builtin): | |
12824 | (aarch64_general_expand_builtin, aarch64_general_builtin_decl): | |
12825 | (aarch64_general_builtin_rsqrt): Declare. | |
12826 | * config/aarch64/aarch64-builtins.c (aarch64_general_add_builtin): | |
12827 | New function. | |
12828 | (aarch64_mangle_builtin_type): Rename to... | |
12829 | (aarch64_general_mangle_builtin_type): ...this. | |
12830 | (aarch64_init_fcmla_laneq_builtins, aarch64_init_simd_builtins) | |
12831 | (aarch64_init_crc32_builtins, aarch64_init_builtin_rsqrt) | |
12832 | (aarch64_init_pauth_hint_builtins, aarch64_init_tme_builtins): Use | |
12833 | aarch64_general_add_builtin instead of add_builtin_function. | |
12834 | (aarch64_init_builtins): Rename to... | |
12835 | (aarch64_general_init_builtins): ...this. Use | |
12836 | aarch64_general_add_builtin instead of add_builtin_function. | |
12837 | (aarch64_builtin_decl): Rename to... | |
12838 | (aarch64_general_builtin_decl): ...this and remove the unused | |
12839 | arguments. | |
12840 | (aarch64_expand_builtin): Rename to... | |
12841 | (aarch64_general_expand_builtin): ...this and remove the unused | |
12842 | arguments. | |
12843 | (aarch64_builtin_rsqrt): Rename to... | |
12844 | (aarch64_general_builtin_rsqrt): ...this. | |
12845 | (aarch64_fold_builtin): Rename to... | |
12846 | (aarch64_general_fold_builtin): ...this. Take the function subcode | |
12847 | and return type as arguments. Remove the "ignored" argument. | |
12848 | (aarch64_gimple_fold_builtin): Rename to... | |
12849 | (aarch64_general_gimple_fold_builtin): ...this. Take the function | |
12850 | subcode and gcall as arguments, and return the new function call. | |
12851 | * config/aarch64/aarch64.c (aarch64_init_builtins) | |
12852 | (aarch64_fold_builtin, aarch64_gimple_fold_builtin) | |
12853 | (aarch64_expand_builtin, aarch64_builtin_decl): New functions. | |
12854 | (aarch64_builtin_reciprocal): Call aarch64_general_builtin_rsqrt | |
12855 | instead of aarch64_builtin_rsqrt. | |
12856 | (aarch64_mangle_type): Call aarch64_general_mangle_builtin_type | |
12857 | instead of aarch64_mangle_builtin_type. | |
12858 | ||
12859 | 2019-09-27 Richard Sandiford <richard.sandiford@arm.com> | |
12860 | ||
12861 | * target.def (check_builtin_call): New target hook. | |
12862 | * doc/tm.texi.in (TARGET_CHECK_BUILTIN_CALL): New @hook. | |
12863 | * doc/tm.texi: Regenerate. | |
12864 | ||
12865 | 2019-09-27 Richard Sandiford <richard.sandiford@arm.com> | |
12866 | ||
12867 | PR tree-optimization/91909 | |
12868 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Take a | |
12869 | reduc_index parameter. When handling COND_REDUCTION, make sure | |
12870 | that the reduction phi operand is in the correct arm of the | |
12871 | VEC_COND_EXPR. | |
12872 | (vectorizable_reduction): Pass reduc_index to the above. | |
12873 | ||
12874 | 2019-09-27 Yuliang Wang <yuliang.wang@arm.com> | |
12875 | ||
12876 | * config/aarch64/aarch64-sve2.md (aarch64_sve2_sra<mode>): | |
12877 | New combine pattern. | |
12878 | ||
12879 | 2019-09-26 Max Filippov <jcmvbkbc@gmail.com> | |
12880 | ||
12881 | * config/xtensa/xtensa.c (hwloop_optimize): Insert zero overhead | |
12882 | loop instruction into new basic block before the loop when basic | |
12883 | block that precedes the loop is empty. | |
12884 | ||
12885 | 2019-09-26 Jakub Jelinek <jakub@redhat.com> | |
12886 | ||
12887 | * function.c (gimplify_parameters): Use build_clobber function. | |
12888 | * tree-ssa.c (execute_update_addresses_taken): Likewise. | |
12889 | * tree-inline.c (expand_call_inline): Likewise. | |
12890 | * tree-sra.c (clobber_subtree): Likewise. | |
12891 | * tree-ssa-ccp.c (insert_clobber_before_stack_restore): Likewise. | |
12892 | * omp-low.c (lower_rec_simd_input_clauses, lower_rec_input_clauses, | |
12893 | lower_omp_single, lower_depend_clauses, lower_omp_taskreg, | |
12894 | lower_omp_target): Likewise. | |
12895 | * omp-expand.c (expand_omp_for_generic): Likewise. | |
12896 | * omp-offload.c (ompdevlow_adjust_simt_enter): Likewise. | |
12897 | ||
12898 | 2019-09-26 Will Schmidt <will_schmidt@vnet.ibm.com> | |
12899 | ||
12900 | * config/rs6000/rs6000-builtin.def: (LVSL, LVSR, LVEBX, LVEHX, | |
12901 | LVEWX, LVXL, LVXL_V2DF, LVXL_V2DI, LVXL_V4SF, LVXL_V4SI, LVXL_V8HI, | |
12902 | LVXL_V16QI, LVX, LVX_V1TI, LVX_V2DF, LVX_V2DI, LVX_V4SF, LVX_V4SI, | |
12903 | LVX_V8HI, LVX_V16QI, LVLX, LVLXL, LVRX, LVRXL, LXSDX, LXVD2X_V1TI, | |
12904 | LXVD2X_V2DF, LXVD2X_V2DI, LXVDSX, LXVW4X_V4SF, LXVW4X_V4SI, | |
12905 | LXVW4X_V8HI, LXVW4X_V16QI, LD_ELEMREV_V1TI, LD_ELEMREV_V2DF, | |
12906 | LD_ELEMREV_V2DI, LD_ELEMREV_V4SF, LD_ELEMREV_V4SI, LD_ELEMREV_V8HI, | |
12907 | LD_ELEMREV_V16QI): Use the PURE attribute. | |
12908 | ||
12909 | 2019-09-26 Iain Sandoe <iain@sandoe.co.uk> | |
12910 | ||
12911 | * config/rs6000/darwin.md: Replace the expanders for | |
12912 | load_macho_picbase and reload_macho_picbase with use of '@' | |
12913 | and <mode> in their respective define_insns. | |
12914 | (nonlocal_goto_receiver): Pass Pmode to gen_reload_macho_picbase. | |
12915 | * config/rs6000/rs6000-logue.c (rs6000_emit_prologue): Pass | |
12916 | Pmode to gen_load_macho_picbase. | |
12917 | * config/rs6000/rs6000.md: Likewise. | |
12918 | ||
12919 | 2019-09-25 Richard Biener <rguenther@suse.de> | |
12920 | ||
12921 | PR tree-optimization/91896 | |
12922 | * tree-vect-loop.c (vectorizable_reduction): The single | |
12923 | def-use cycle optimization cannot apply when there's more | |
12924 | than one pattern stmt involved. | |
12925 | ||
12926 | 2019-09-26 Richard Biener <rguenther@suse.de> | |
12927 | ||
12928 | * tree-vect-loop.c (vect_analyze_loop_operations): Analyze | |
12929 | loop-closed PHIs that are vect_internal_def. | |
12930 | (vect_create_epilog_for_reduction): Exit early for nested cycles. | |
12931 | Simplify. | |
12932 | (vectorizable_lc_phi): New. | |
12933 | * tree-vect-stmts.c (vect_analyze_stmt): Call vectorize_lc_phi. | |
12934 | (vect_transform_stmt): Likewise. | |
12935 | * tree-vectorizer.h (stmt_vec_info_type): Add lc_phi_info_type. | |
12936 | (vectorizable_lc_phi): Declare. | |
12937 | ||
12938 | 2019-09-26 Richard Biener <rguenther@suse.de> | |
12939 | ||
12940 | * tree-vect-loop.c (vect_analyze_loop_operations): Also call | |
12941 | vectorizable_reduction for vect_double_reduction_def. | |
12942 | (vect_transform_loop): Likewise. | |
12943 | (vect_create_epilog_for_reduction): Move double-reduction | |
12944 | PHI creation and preheader argument setting of PHIs ... | |
12945 | (vectorizable_reduction): ... here. Also process | |
12946 | vect_double_reduction_def PHIs, creating the vectorized | |
12947 | PHI nodes, remembering the scalar adjustment computed for | |
12948 | the epilogue in STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT. | |
12949 | Remember the original reduction code in STMT_VINFO_REDUC_CODE. | |
12950 | * tree-vectorizer.c (vec_info::new_stmt_vec_info): | |
12951 | Initialize STMT_VINFO_REDUC_CODE. | |
12952 | * tree-vectorizer.h (_stmt_vec_info::reduc_epilogue_adjustment): New. | |
12953 | (_stmt_vec_info::reduc_code): Likewise. | |
12954 | (STMT_VINFO_REDUC_EPILOGUE_ADJUSTMENT): Likewise. | |
12955 | (STMT_VINFO_REDUC_CODE): Likewise. | |
12956 | ||
12957 | 2019-09-26 Matt Turner <mattst88@gmail.com> | |
12958 | ||
12959 | PR driver/69471 | |
12960 | * config/aarch64/aarch64.opt (march=): Add Negative(march=). | |
12961 | (mtune=): Add Negative(mtune=). | |
12962 | (mcpu=): Add Negative(mcpu=). | |
12963 | * config/arm/arm.opt: Likewise. | |
12964 | ||
12965 | 2019-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
12966 | ||
12967 | * config/arm/arm.md (arm_<simd32_op>): New define_insn. | |
12968 | * config/arm/arm_acle.h (__smlald, __smlaldx, __smlsld, __smlsldx): | |
12969 | Define. | |
12970 | * config/arm/arm_acle.h: Define builtins for the above. | |
12971 | * config/arm/iterators.md (SIMD32_DIMODE): New int_iterator. | |
12972 | (simd32_op): Handle the above. | |
12973 | * config/arm/unspecs.md: Define unspecs for the above. | |
12974 | ||
12975 | 2019-09-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
12976 | ||
12977 | * config/arm/arm.md (arm_<simd32_op>): New define_insn. | |
12978 | (arm_<sup>xtb16): Likewise. | |
12979 | (arm_usada8): Likewise. | |
12980 | * config/arm/arm_acle.h (__qadd8, __qsub8, __shadd8, __shsub8, | |
12981 | __uhadd8, __uhsub8, __uqadd8, __uqsub8, __qadd16, __qasx, __qsax, | |
12982 | __qsub16, __shadd16, __shasx, __shsax, __shsub16, __uhadd16, __uhasx, | |
12983 | __uhsax, __uhsub16, __uqadd16, __uqasx, __uqsax, __uqsub16, __sxtab16, | |
12984 | __sxtb16, __uxtab16, __uxtb16): Define. | |
12985 | * config/arm/arm_acle_builtins.def: Define builtins for the above. | |
12986 | * config/arm/unspecs.md: Define unspecs for the above. | |
12987 | * config/arm/iterators.md (SIMD32_NOGE_BINOP): New int_iterator. | |
12988 | (USXTB16): Likewise. | |
12989 | (simd32_op): New int_attribute. | |
12990 | (sup): Handle UNSPEC_SXTB16, UNSPEC_UXTB16. | |
12991 | * doc/sourcebuild.exp (arm_simd32_ok): Document. | |
12992 | ||
12993 | 2019-09-26 Martin Jambor <mjambor@suse.cz> | |
12994 | ||
12995 | * ipa-sra.c (verify_splitting_accesses): Fix quoting in a call to | |
12996 | internal_error. | |
12997 | ||
12998 | 2019-09-26 Martin Jambor <mjambor@suse.cz> | |
12999 | ||
13000 | * ipa-sra.c (process_scan_results): Fix continue condition. | |
13001 | ||
13002 | 2019-09-26 Martin Liska <mliska@suse.cz> | |
13003 | ||
13004 | PR tree-optimization/91885 | |
13005 | * tree-vectorizer.c (try_vectorize_loop_1): Add | |
13006 | TODO_update_ssa_only_virtuals similarly to what slp pass does. | |
13007 | ||
13008 | 2019-09-26 Richard Sandiford <richard.sandiford@arm.com> | |
13009 | ||
13010 | * config/aarch64/aarch64.c (aarch64_rtx_costs): Use | |
13011 | aarch64_plus_immediate rather than aarch64_uimm12_shift | |
13012 | to test for valid PLUS immediates. | |
13013 | ||
13014 | 2019-09-25 Martin Jambor <mjambor@suse.cz> | |
13015 | ||
13016 | * tree-sra.c (no_accesses_p): Remove. | |
13017 | (no_accesses_representant): Likewise. | |
13018 | ||
13019 | 2019-09-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
13020 | ||
13021 | * config/aarch64/arm_neon.h (vaba_s8): Use __ in identifiers | |
13022 | consistenly. | |
13023 | (vaba_s16): Likewise. | |
13024 | (vaba_s32): Likewise. | |
13025 | (vaba_u8): Likewise. | |
13026 | (vaba_u16): Likewise. | |
13027 | (vaba_u32): Likewise. | |
13028 | (vabal_high_s8): Likewise. | |
13029 | (vabal_high_s16): Likewise. | |
13030 | (vabal_high_s32): Likewise. | |
13031 | (vabal_high_u8): Likewise. | |
13032 | (vabal_high_u16): Likewise. | |
13033 | (vabal_high_u32): Likewise. | |
13034 | (vabal_s8): Likewise. | |
13035 | (vabal_s16): Likewise. | |
13036 | (vabal_s32): Likewise. | |
13037 | (vabal_u8): Likewise. | |
13038 | (vabal_u16): Likewise. | |
13039 | (vabal_u32): Likewise. | |
13040 | (vabaq_s8): Likewise. | |
13041 | (vabaq_s16): Likewise. | |
13042 | (vabaq_s32): Likewise. | |
13043 | (vabaq_u8): Likewise. | |
13044 | (vabaq_u16): Likewise. | |
13045 | (vabaq_u32): Likewise. | |
13046 | (vabd_s8): Likewise. | |
13047 | (vabd_s16): Likewise. | |
13048 | (vabd_s32): Likewise. | |
13049 | (vabd_u8): Likewise. | |
13050 | (vabd_u16): Likewise. | |
13051 | (vabd_u32): Likewise. | |
13052 | (vabdl_high_s8): Likewise. | |
13053 | (vabdl_high_s16): Likewise. | |
13054 | (vabdl_high_s32): Likewise. | |
13055 | (vabdl_high_u8): Likewise. | |
13056 | (vabdl_high_u16): Likewise. | |
13057 | (vabdl_high_u32): Likewise. | |
13058 | (vabdl_s8): Likewise. | |
13059 | (vabdl_s16): Likewise. | |
13060 | (vabdl_s32): Likewise. | |
13061 | (vabdl_u8): Likewise. | |
13062 | (vabdl_u16): Likewise. | |
13063 | (vabdl_u32): Likewise. | |
13064 | (vabdq_s8): Likewise. | |
13065 | (vabdq_s16): Likewise. | |
13066 | (vabdq_s32): Likewise. | |
13067 | (vabdq_u8): Likewise. | |
13068 | (vabdq_u16): Likewise. | |
13069 | (vabdq_u32): Likewise. | |
13070 | (vaddlv_s8): Likewise. | |
13071 | (vaddlv_s16): Likewise. | |
13072 | (vaddlv_u8): Likewise. | |
13073 | (vaddlv_u16): Likewise. | |
13074 | (vaddlvq_s8): Likewise. | |
13075 | (vaddlvq_s16): Likewise. | |
13076 | (vaddlvq_s32): Likewise. | |
13077 | (vaddlvq_u8): Likewise. | |
13078 | (vaddlvq_u16): Likewise. | |
13079 | (vaddlvq_u32): Likewise. | |
13080 | (vcvtx_f32_f64): Likewise. | |
13081 | (vcvtx_high_f32_f64): Likewise. | |
13082 | (vcvtxd_f32_f64): Likewise. | |
13083 | (vmla_n_f32): Likewise. | |
13084 | (vmla_n_s16): Likewise. | |
13085 | (vmla_n_s32): Likewise. | |
13086 | (vmla_n_u16): Likewise. | |
13087 | (vmla_n_u32): Likewise. | |
13088 | (vmla_s8): Likewise. | |
13089 | (vmla_s16): Likewise. | |
13090 | (vmla_s32): Likewise. | |
13091 | (vmla_u8): Likewise. | |
13092 | (vmla_u16): Likewise. | |
13093 | (vmla_u32): Likewise. | |
13094 | (vmlal_high_n_s16): Likewise. | |
13095 | (vmlal_high_n_s32): Likewise. | |
13096 | (vmlal_high_n_u16): Likewise. | |
13097 | (vmlal_high_n_u32): Likewise. | |
13098 | (vmlal_high_s8): Likewise. | |
13099 | (vmlal_high_s16): Likewise. | |
13100 | (vmlal_high_s32): Likewise. | |
13101 | (vmlal_high_u8): Likewise. | |
13102 | (vmlal_high_u16): Likewise. | |
13103 | (vmlal_high_u32): Likewise. | |
13104 | (vmlal_n_s16): Likewise. | |
13105 | (vmlal_n_s32): Likewise. | |
13106 | (vmlal_n_u16): Likewise. | |
13107 | (vmlal_n_u32): Likewise. | |
13108 | (vmlal_s8): Likewise. | |
13109 | (vmlal_s16): Likewise. | |
13110 | (vmlal_s32): Likewise. | |
13111 | (vmlal_u8): Likewise. | |
13112 | (vmlal_u16): Likewise. | |
13113 | (vmlal_u32): Likewise. | |
13114 | (vmlaq_n_f32): Likewise. | |
13115 | (vmlaq_n_s16): Likewise. | |
13116 | (vmlaq_n_s32): Likewise. | |
13117 | (vmlaq_n_u16): Likewise. | |
13118 | (vmlaq_n_u32): Likewise. | |
13119 | (vmlaq_s8): Likewise. | |
13120 | (vmlaq_s16): Likewise. | |
13121 | (vmlaq_s32): Likewise. | |
13122 | (vmlaq_u8): Likewise. | |
13123 | (vmlaq_u16): Likewise. | |
13124 | (vmlaq_u32): Likewise. | |
13125 | (vmls_n_f32): Likewise. | |
13126 | (vmls_n_s16): Likewise. | |
13127 | (vmls_n_s32): Likewise. | |
13128 | (vmls_n_u16): Likewise. | |
13129 | (vmls_n_u32): Likewise. | |
13130 | (vmls_s8): Likewise. | |
13131 | (vmls_s16): Likewise. | |
13132 | (vmls_s32): Likewise. | |
13133 | (vmls_u8): Likewise. | |
13134 | (vmls_u16): Likewise. | |
13135 | (vmls_u32): Likewise. | |
13136 | (vmlsl_high_n_s16): Likewise. | |
13137 | (vmlsl_high_n_s32): Likewise. | |
13138 | (vmlsl_high_n_u16): Likewise. | |
13139 | (vmlsl_high_n_u32): Likewise. | |
13140 | (vmlsl_high_s8): Likewise. | |
13141 | (vmlsl_high_s16): Likewise. | |
13142 | (vmlsl_high_s32): Likewise. | |
13143 | (vmlsl_high_u8): Likewise. | |
13144 | (vmlsl_high_u16): Likewise. | |
13145 | (vmlsl_high_u32): Likewise. | |
13146 | (vmlsl_n_s16): Likewise. | |
13147 | (vmlsl_n_s32): Likewise. | |
13148 | (vmlsl_n_u16): Likewise. | |
13149 | (vmlsl_n_u32): Likewise. | |
13150 | (vmlsl_s8): Likewise. | |
13151 | (vmlsl_s16): Likewise. | |
13152 | (vmlsl_s32): Likewise. | |
13153 | (vmlsl_u8): Likewise. | |
13154 | (vmlsl_u16): Likewise. | |
13155 | (vmlsl_u32): Likewise. | |
13156 | (vmlsq_n_f32): Likewise. | |
13157 | (vmlsq_n_s16): Likewise. | |
13158 | (vmlsq_n_s32): Likewise. | |
13159 | (vmlsq_n_u16): Likewise. | |
13160 | (vmlsq_n_u32): Likewise. | |
13161 | (vmlsq_s8): Likewise. | |
13162 | (vmlsq_s16): Likewise. | |
13163 | (vmlsq_s32): Likewise. | |
13164 | (vmlsq_u8): Likewise. | |
13165 | (vmlsq_u16): Likewise. | |
13166 | (vmlsq_u32): Likewise. | |
13167 | (vmovl_high_s8): Likewise. | |
13168 | (vmovl_high_s16): Likewise. | |
13169 | (vmovl_high_s32): Likewise. | |
13170 | (vmovl_high_u8): Likewise. | |
13171 | (vmovl_high_u16): Likewise. | |
13172 | (vmovl_high_u32): Likewise. | |
13173 | (vmovl_s8): Likewise. | |
13174 | (vmovl_s16): Likewise. | |
13175 | (vmovl_s32): Likewise. | |
13176 | (vmovl_u8): Likewise. | |
13177 | (vmovl_u16): Likewise. | |
13178 | (vmovl_u32): Likewise. | |
13179 | (vmovn_high_s16): Likewise. | |
13180 | (vmovn_high_s32): Likewise. | |
13181 | (vmovn_high_s64): Likewise. | |
13182 | (vmovn_high_u16): Likewise. | |
13183 | (vmovn_high_u32): Likewise. | |
13184 | (vmovn_high_u64): Likewise. | |
13185 | (vmovn_s16): Likewise. | |
13186 | (vmovn_s32): Likewise. | |
13187 | (vmovn_s64): Likewise. | |
13188 | (vmovn_u16): Likewise. | |
13189 | (vmovn_u32): Likewise. | |
13190 | (vmovn_u64): Likewise. | |
13191 | (vmull_high_n_s16): Likewise. | |
13192 | (vmull_high_n_s32): Likewise. | |
13193 | (vmull_high_n_u16): Likewise. | |
13194 | (vmull_high_n_u32): Likewise. | |
13195 | (vmull_high_p8): Likewise. | |
13196 | (vmull_high_s8): Likewise. | |
13197 | (vmull_high_s16): Likewise. | |
13198 | (vmull_high_s32): Likewise. | |
13199 | (vmull_high_u8): Likewise. | |
13200 | (vmull_high_u16): Likewise. | |
13201 | (vmull_high_u32): Likewise. | |
13202 | (vmull_n_s16): Likewise. | |
13203 | (vmull_n_s32): Likewise. | |
13204 | (vmull_n_u16): Likewise. | |
13205 | (vmull_n_u32): Likewise. | |
13206 | (vmull_p8): Likewise. | |
13207 | (vmull_s8): Likewise. | |
13208 | (vmull_s16): Likewise. | |
13209 | (vmull_s32): Likewise. | |
13210 | (vmull_u8): Likewise. | |
13211 | (vmull_u16): Likewise. | |
13212 | (vmull_u32): Likewise. | |
13213 | (vpadal_s8): Likewise. | |
13214 | (vpadal_s16): Likewise. | |
13215 | (vpadal_s32): Likewise. | |
13216 | (vpadal_u8): Likewise. | |
13217 | (vpadal_u16): Likewise. | |
13218 | (vpadal_u32): Likewise. | |
13219 | (vpadalq_s8): Likewise. | |
13220 | (vpadalq_s16): Likewise. | |
13221 | (vpadalq_s32): Likewise. | |
13222 | (vpadalq_u8): Likewise. | |
13223 | (vpadalq_u16): Likewise. | |
13224 | (vpadalq_u32): Likewise. | |
13225 | (vpaddl_s8): Likewise. | |
13226 | (vpaddl_s16): Likewise. | |
13227 | (vpaddl_s32): Likewise. | |
13228 | (vpaddl_u8): Likewise. | |
13229 | (vpaddl_u16): Likewise. | |
13230 | (vpaddl_u32): Likewise. | |
13231 | (vpaddlq_s8): Likewise. | |
13232 | (vpaddlq_s16): Likewise. | |
13233 | (vpaddlq_s32): Likewise. | |
13234 | (vpaddlq_u8): Likewise. | |
13235 | (vpaddlq_u16): Likewise. | |
13236 | (vpaddlq_u32): Likewise. | |
13237 | (vpaddq_s8): Likewise. | |
13238 | (vpaddq_s16): Likewise. | |
13239 | (vpaddq_s32): Likewise. | |
13240 | (vpaddq_s64): Likewise. | |
13241 | (vpaddq_u8): Likewise. | |
13242 | (vpaddq_u16): Likewise. | |
13243 | (vpaddq_u32): Likewise. | |
13244 | (vpaddq_u64): Likewise. | |
13245 | (vqdmulh_n_s16): Likewise. | |
13246 | (vqdmulh_n_s32): Likewise. | |
13247 | (vqdmulhq_n_s16): Likewise. | |
13248 | (vqdmulhq_n_s32): Likewise. | |
13249 | (vqmovn_high_s16): Likewise. | |
13250 | (vqmovn_high_s32): Likewise. | |
13251 | (vqmovn_high_s64): Likewise. | |
13252 | (vqmovn_high_u16): Likewise. | |
13253 | (vqmovn_high_u32): Likewise. | |
13254 | (vqmovn_high_u64): Likewise. | |
13255 | (vqmovun_high_s16): Likewise. | |
13256 | (vqmovun_high_s32): Likewise. | |
13257 | (vqmovun_high_s64): Likewise. | |
13258 | (vqrdmulh_n_s16): Likewise. | |
13259 | (vqrdmulh_n_s32): Likewise. | |
13260 | (vqrdmulhq_n_s16): Likewise. | |
13261 | (vqrdmulhq_n_s32): Likewise. | |
13262 | (vrsqrte_u32): Likewise. | |
13263 | (vrsqrteq_u32): Likewise. | |
13264 | (vtst_p8): Likewise. | |
13265 | (vtst_p16): Likewise. | |
13266 | (vtst_p64): Likewise. | |
13267 | (vtstq_p8): Likewise. | |
13268 | (vtstq_p16): Likewise. | |
13269 | (vtstq_p64): Likewise. | |
13270 | (vaddlv_s32): Likewise. | |
13271 | (vaddlv_u32): Likewise. | |
13272 | (vqtbl1_p8): Likewise. | |
13273 | (vqtbl1_s8): Likewise. | |
13274 | (vqtbl1_u8): Likewise. | |
13275 | (vqtbl1q_p8): Likewise. | |
13276 | (vqtbl1q_s8): Likewise. | |
13277 | (vqtbl1q_u8): Likewise. | |
13278 | (vqtbx1_s8): Likewise. | |
13279 | (vqtbx1_u8): Likewise. | |
13280 | (vqtbx1_p8): Likewise. | |
13281 | (vqtbx1q_s8): Likewise. | |
13282 | (vqtbx1q_u8): Likewise. | |
13283 | (vqtbx1q_p8): Likewise. | |
13284 | (vtbl1_s8): Likewise. | |
13285 | (vtbl1_u8): Likewise. | |
13286 | (vtbl1_p8): Likewise. | |
13287 | (vtbl2_s8): Likewise. | |
13288 | (vtbl2_u8): Likewise. | |
13289 | (vtbl2_p8): Likewise. | |
13290 | (vtbl3_s8): Likewise. | |
13291 | (vtbl3_u8): Likewise. | |
13292 | (vtbl3_p8): Likewise. | |
13293 | (vtbl4_s8): Likewise. | |
13294 | (vtbl4_u8): Likewise. | |
13295 | (vtbl4_p8): Likewise. | |
13296 | (vtbx2_s8): Likewise. | |
13297 | (vtbx2_u8): Likewise. | |
13298 | (vtbx2_p8): Likewise. | |
13299 | (vld1_f32): Likewise. | |
13300 | (vld1_f64): Likewise. | |
13301 | (vld1_p8): Likewise. | |
13302 | (vld1_p16): Likewise. | |
13303 | (vld1_p64): Likewise. | |
13304 | (vld1_s8): Likewise. | |
13305 | (vld1_s16): Likewise. | |
13306 | (vld1_s32): Likewise. | |
13307 | (vld1_s64): Likewise. | |
13308 | (vld1_u8): Likewise. | |
13309 | (vld1_u16): Likewise. | |
13310 | (vld1_u32): Likewise. | |
13311 | (vld1_u64): Likewise. | |
13312 | (vld1q_f32): Likewise. | |
13313 | (vld1q_f64): Likewise. | |
13314 | (vld1q_p8): Likewise. | |
13315 | (vld1q_p16): Likewise. | |
13316 | (vld1q_p64): Likewise. | |
13317 | (vld1q_s8): Likewise. | |
13318 | (vld1q_s16): Likewise. | |
13319 | (vld1q_s32): Likewise. | |
13320 | (vld1q_s64): Likewise. | |
13321 | (vld1q_u8): Likewise. | |
13322 | (vld1q_u16): Likewise. | |
13323 | (vld1q_u32): Likewise. | |
13324 | (vld1q_u64): Likewise. | |
13325 | (vpmax_s8): Likewise. | |
13326 | (vpmax_s16): Likewise. | |
13327 | (vpmax_s32): Likewise. | |
13328 | (vpmax_u8): Likewise. | |
13329 | (vpmax_u16): Likewise. | |
13330 | (vpmax_u32): Likewise. | |
13331 | (vpmaxq_s8): Likewise. | |
13332 | (vpmaxq_s16): Likewise. | |
13333 | (vpmaxq_s32): Likewise. | |
13334 | (vpmaxq_u8): Likewise. | |
13335 | (vpmaxq_u16): Likewise. | |
13336 | (vpmaxq_u32): Likewise. | |
13337 | (vpmax_f32): Likewise. | |
13338 | (vpmaxq_f32): Likewise. | |
13339 | (vpmaxq_f64): Likewise. | |
13340 | (vpmaxqd_f64): Likewise. | |
13341 | (vpmaxs_f32): Likewise. | |
13342 | (vpmaxnm_f32): Likewise. | |
13343 | (vpmaxnmq_f32): Likewise. | |
13344 | (vpmaxnmq_f64): Likewise. | |
13345 | (vpmaxnmqd_f64): Likewise. | |
13346 | (vpmaxnms_f32): Likewise. | |
13347 | (vpmin_s8): Likewise. | |
13348 | (vpmin_s16): Likewise. | |
13349 | (vpmin_s32): Likewise. | |
13350 | (vpmin_u8): Likewise. | |
13351 | (vpmin_u16): Likewise. | |
13352 | (vpmin_u32): Likewise. | |
13353 | (vpminq_s8): Likewise. | |
13354 | (vpminq_s16): Likewise. | |
13355 | (vpminq_s32): Likewise. | |
13356 | (vpminq_u8): Likewise. | |
13357 | (vpminq_u16): Likewise. | |
13358 | (vpminq_u32): Likewise. | |
13359 | (vpmin_f32): Likewise. | |
13360 | (vpminq_f32): Likewise. | |
13361 | (vpminq_f64): Likewise. | |
13362 | (vpminqd_f64): Likewise. | |
13363 | (vpmins_f32): Likewise. | |
13364 | (vpminnm_f32): Likewise. | |
13365 | (vpminnmq_f32): Likewise. | |
13366 | (vpminnmq_f64): Likewise. | |
13367 | (vpminnmqd_f64): Likewise. | |
13368 | (vpminnms_f32): Likewise. | |
13369 | (vmla_f32): Likewise. | |
13370 | (vmlaq_f32): Likewise. | |
13371 | (vmlaq_f64): Likewise. | |
13372 | (vmls_f32): Likewise. | |
13373 | (vmlsq_f32): Likewise. | |
13374 | (vmlsq_f64): Likewise. | |
13375 | (vqtbl2_s8): Likewise. | |
13376 | (vqtbl2_u8): Likewise. | |
13377 | (vqtbl2_p8): Likewise. | |
13378 | (vqtbl2q_s8): Likewise. | |
13379 | (vqtbl2q_u8): Likewise. | |
13380 | (vqtbl2q_p8): Likewise. | |
13381 | (vqtbl3_s8): Likewise. | |
13382 | (vqtbl3_u8): Likewise. | |
13383 | (vqtbl3_p8): Likewise. | |
13384 | (vqtbl3q_s8): Likewise. | |
13385 | (vqtbl3q_u8): Likewise. | |
13386 | (vqtbl3q_p8): Likewise. | |
13387 | (vqtbl4_s8): Likewise. | |
13388 | (vqtbl4_u8): Likewise. | |
13389 | (vqtbl4_p8): Likewise. | |
13390 | (vqtbl4q_s8): Likewise. | |
13391 | (vqtbl4q_u8): Likewise. | |
13392 | (vqtbl4q_p8): Likewise. | |
13393 | (vqtbx2_s8): Likewise. | |
13394 | (vqtbx2_u8): Likewise. | |
13395 | (vqtbx2_p8): Likewise. | |
13396 | (vqtbx2q_s8): Likewise. | |
13397 | (vqtbx2q_u8): Likewise. | |
13398 | (vqtbx2q_p8): Likewise. | |
13399 | (vqtbx3_s8): Likewise. | |
13400 | (vqtbx3_u8): Likewise. | |
13401 | (vqtbx3_p8): Likewise. | |
13402 | (vqtbx3q_s8): Likewise. | |
13403 | (vqtbx3q_u8): Likewise. | |
13404 | (vqtbx3q_p8): Likewise. | |
13405 | (vqtbx4_s8): Likewise. | |
13406 | (vqtbx4_u8): Likewise. | |
13407 | (vqtbx4_p8): Likewise. | |
13408 | (vqtbx4q_s8): Likewise. | |
13409 | (vqtbx4q_u8): Likewise. | |
13410 | (vqtbx4q_p8): Likewise. | |
13411 | (vrev16_p8): Likewise. | |
13412 | (vrev16_s8): Likewise. | |
13413 | (vrev16_u8): Likewise. | |
13414 | (vrev16q_p8): Likewise. | |
13415 | (vrev16q_s8): Likewise. | |
13416 | (vrev16q_u8): Likewise. | |
13417 | (vrev32_p8): Likewise. | |
13418 | (vrev32_p16): Likewise. | |
13419 | (vrev32_s8): Likewise. | |
13420 | (vrev32_s16): Likewise. | |
13421 | (vrev32_u8): Likewise. | |
13422 | (vrev32_u16): Likewise. | |
13423 | (vrev32q_p8): Likewise. | |
13424 | (vrev32q_p16): Likewise. | |
13425 | (vrev32q_s8): Likewise. | |
13426 | (vrev32q_s16): Likewise. | |
13427 | (vrev32q_u8): Likewise. | |
13428 | (vrev32q_u16): Likewise. | |
13429 | (vrev64_f32): Likewise. | |
13430 | (vrev64_p8): Likewise. | |
13431 | (vrev64_p16): Likewise. | |
13432 | (vrev64_s8): Likewise. | |
13433 | (vrev64_s16): Likewise. | |
13434 | (vrev64_s32): Likewise. | |
13435 | (vrev64_u8): Likewise. | |
13436 | (vrev64_u16): Likewise. | |
13437 | (vrev64_u32): Likewise. | |
13438 | (vrev64q_f32): Likewise. | |
13439 | (vrev64q_p8): Likewise. | |
13440 | (vrev64q_p16): Likewise. | |
13441 | (vrev64q_s8): Likewise. | |
13442 | (vrev64q_s16): Likewise. | |
13443 | (vrev64q_s32): Likewise. | |
13444 | (vrev64q_u8): Likewise. | |
13445 | (vrev64q_u16): Likewise. | |
13446 | (vrev64q_u32): Likewise. | |
13447 | (vsha1cq_u32): Likewise. | |
13448 | (vsha1mq_u32): Likewise. | |
13449 | (vsha1pq_u32): Likewise. | |
13450 | (vsha1h_u32): Likewise. | |
13451 | (vsha1su0q_u32): Likewise. | |
13452 | (vsha1su1q_u32): Likewise. | |
13453 | (vsha256hq_u32): Likewise. | |
13454 | (vsha256h2q_u32): Likewise. | |
13455 | (vsha256su0q_u32): Likewise. | |
13456 | (vsha256su1q_u32): Likewise. | |
13457 | (vmull_p64): Likewise. | |
13458 | (vmull_high_p64): Likewise. | |
13459 | (vsqrt_f32): Likewise. | |
13460 | (vsqrtq_f32): Likewise. | |
13461 | (vsqrt_f64): Likewise. | |
13462 | (vsqrtq_f64): Likewise. | |
13463 | (vst1_f32): Likewise. | |
13464 | (vst1_f64): Likewise. | |
13465 | (vst1_p8): Likewise. | |
13466 | (vst1_p16): Likewise. | |
13467 | (vst1_p64): Likewise. | |
13468 | (vst1_s8): Likewise. | |
13469 | (vst1_s16): Likewise. | |
13470 | (vst1_s32): Likewise. | |
13471 | (vst1_s64): Likewise. | |
13472 | (vst1_u8): Likewise. | |
13473 | (vst1_u16): Likewise. | |
13474 | (vst1_u32): Likewise. | |
13475 | (vst1_u64): Likewise. | |
13476 | (vst1q_f32): Likewise. | |
13477 | (vst1q_f64): Likewise. | |
13478 | (vst1q_p8): Likewise. | |
13479 | (vst1q_p16): Likewise. | |
13480 | (vst1q_p64): Likewise. | |
13481 | (vst1q_s8): Likewise. | |
13482 | (vst1q_s16): Likewise. | |
13483 | (vst1q_s32): Likewise. | |
13484 | (vst1q_s64): Likewise. | |
13485 | (vst1q_u8): Likewise. | |
13486 | (vst1q_u16): Likewise. | |
13487 | (vst1q_u32): Likewise. | |
13488 | (vst1q_u64): Likewise. | |
13489 | (vst1_s64_x2): Likewise. | |
13490 | (vst1_u64_x2): Likewise. | |
13491 | (vst1_f64_x2): Likewise. | |
13492 | (vst1_s8_x2): Likewise. | |
13493 | (vst1_p8_x2): Likewise. | |
13494 | (vst1_s16_x2): Likewise. | |
13495 | (vst1_p16_x2): Likewise. | |
13496 | (vst1_s32_x2): Likewise. | |
13497 | (vst1_u8_x2): Likewise. | |
13498 | (vst1_u16_x2): Likewise. | |
13499 | (vst1_u32_x2): Likewise. | |
13500 | (vst1_f16_x2): Likewise. | |
13501 | (vst1_f32_x2): Likewise. | |
13502 | (vst1_p64_x2): Likewise. | |
13503 | (vst1q_s8_x2): Likewise. | |
13504 | (vst1q_p8_x2): Likewise. | |
13505 | (vst1q_s16_x2): Likewise. | |
13506 | (vst1q_p16_x2): Likewise. | |
13507 | (vst1q_s32_x2): Likewise. | |
13508 | (vst1q_s64_x2): Likewise. | |
13509 | (vst1q_u8_x2): Likewise. | |
13510 | (vst1q_u16_x2): Likewise. | |
13511 | (vst1q_u32_x2): Likewise. | |
13512 | (vst1q_u64_x2): Likewise. | |
13513 | (vst1q_f16_x2): Likewise. | |
13514 | (vst1q_f32_x2): Likewise. | |
13515 | (vst1q_f64_x2): Likewise. | |
13516 | (vst1q_p64_x2): Likewise. | |
13517 | (vst1_s64_x3): Likewise. | |
13518 | (vst1_u64_x3): Likewise. | |
13519 | (vst1_f64_x3): Likewise. | |
13520 | (vst1_s8_x3): Likewise. | |
13521 | (vst1_p8_x3): Likewise. | |
13522 | (vst1_s16_x3): Likewise. | |
13523 | (vst1_p16_x3): Likewise. | |
13524 | (vst1_s32_x3): Likewise. | |
13525 | (vst1_u8_x3): Likewise. | |
13526 | (vst1_u16_x3): Likewise. | |
13527 | (vst1_u32_x3): Likewise. | |
13528 | (vst1_f16_x3): Likewise. | |
13529 | (vst1_f32_x3): Likewise. | |
13530 | (vst1_p64_x3): Likewise. | |
13531 | (vst1q_s8_x3): Likewise. | |
13532 | (vst1q_p8_x3): Likewise. | |
13533 | (vst1q_s16_x3): Likewise. | |
13534 | (vst1q_p16_x3): Likewise. | |
13535 | (vst1q_s32_x3): Likewise. | |
13536 | (vst1q_s64_x3): Likewise. | |
13537 | (vst1q_u8_x3): Likewise. | |
13538 | (vst1q_u16_x3): Likewise. | |
13539 | (vst1q_u32_x3): Likewise. | |
13540 | (vst1q_u64_x3): Likewise. | |
13541 | (vst1q_f16_x3): Likewise. | |
13542 | (vst1q_f32_x3): Likewise. | |
13543 | (vst1q_f64_x3): Likewise. | |
13544 | (vst1q_p64_x3): Likewise. | |
13545 | (vst2_s64): Likewise. | |
13546 | (vst2_u64): Likewise. | |
13547 | (vst2_f64): Likewise. | |
13548 | (vst2_s8): Likewise. | |
13549 | (vst2_p8): Likewise. | |
13550 | (vst2_s16): Likewise. | |
13551 | (vst2_p16): Likewise. | |
13552 | (vst2_s32): Likewise. | |
13553 | (vst2_u8): Likewise. | |
13554 | (vst2_u16): Likewise. | |
13555 | (vst2_u32): Likewise. | |
13556 | (vst2_f16): Likewise. | |
13557 | (vst2_f32): Likewise. | |
13558 | (vst2_p64): Likewise. | |
13559 | (vst2q_s8): Likewise. | |
13560 | (vst2q_p8): Likewise. | |
13561 | (vst2q_s16): Likewise. | |
13562 | (vst2q_p16): Likewise. | |
13563 | (vst2q_s32): Likewise. | |
13564 | (vst2q_s64): Likewise. | |
13565 | (vst2q_u8): Likewise. | |
13566 | (vst2q_u16): Likewise. | |
13567 | (vst2q_u32): Likewise. | |
13568 | (vst2q_u64): Likewise. | |
13569 | (vst2q_f16): Likewise. | |
13570 | (vst2q_f32): Likewise. | |
13571 | (vst2q_f64): Likewise. | |
13572 | (vst2q_p64): Likewise. | |
13573 | (vst3_s64): Likewise. | |
13574 | (vst3_u64): Likewise. | |
13575 | (vst3_f64): Likewise. | |
13576 | (vst3_s8): Likewise. | |
13577 | (vst3_p8): Likewise. | |
13578 | (vst3_s16): Likewise. | |
13579 | (vst3_p16): Likewise. | |
13580 | (vst3_s32): Likewise. | |
13581 | (vst3_u8): Likewise. | |
13582 | (vst3_u16): Likewise. | |
13583 | (vst3_u32): Likewise. | |
13584 | (vst3_f16): Likewise. | |
13585 | (vst3_f32): Likewise. | |
13586 | (vst3_p64): Likewise. | |
13587 | (vst3q_s8): Likewise. | |
13588 | (vst3q_p8): Likewise. | |
13589 | (vst3q_s16): Likewise. | |
13590 | (vst3q_p16): Likewise. | |
13591 | (vst3q_s32): Likewise. | |
13592 | (vst3q_s64): Likewise. | |
13593 | (vst3q_u8): Likewise. | |
13594 | (vst3q_u16): Likewise. | |
13595 | (vst3q_u32): Likewise. | |
13596 | (vst3q_u64): Likewise. | |
13597 | (vst3q_f16): Likewise. | |
13598 | (vst3q_f32): Likewise. | |
13599 | (vst3q_f64): Likewise. | |
13600 | (vst3q_p64): Likewise. | |
13601 | (vst4_s64): Likewise. | |
13602 | (vst4_u64): Likewise. | |
13603 | (vst4_f64): Likewise. | |
13604 | (vst4_s8): Likewise. | |
13605 | (vst4_p8): Likewise. | |
13606 | (vst4_s16): Likewise. | |
13607 | (vst4_p16): Likewise. | |
13608 | (vst4_s32): Likewise. | |
13609 | (vst4_u8): Likewise. | |
13610 | (vst4_u16): Likewise. | |
13611 | (vst4_u32): Likewise. | |
13612 | (vst4_f16): Likewise. | |
13613 | (vst4_f32): Likewise. | |
13614 | (vst4_p64): Likewise. | |
13615 | (vst4q_s8): Likewise. | |
13616 | (vst4q_p8): Likewise. | |
13617 | (vst4q_s16): Likewise. | |
13618 | (vst4q_p16): Likewise. | |
13619 | (vst4q_s32): Likewise. | |
13620 | (vst4q_s64): Likewise. | |
13621 | (vst4q_u8): Likewise. | |
13622 | (vst4q_u16): Likewise. | |
13623 | (vst4q_u32): Likewise. | |
13624 | (vst4q_u64): Likewise. | |
13625 | (vst4q_f16): Likewise. | |
13626 | (vst4q_f32): Likewise. | |
13627 | (vst4q_f64): Likewise. | |
13628 | (vst4q_p64): Likewise. | |
13629 | (vtbx4_s8): Likewise. | |
13630 | (vtbx4_u8): Likewise. | |
13631 | (vtbx4_p8): Likewise. | |
13632 | (vtrn_f32): Likewise. | |
13633 | (vtrn_p8): Likewise. | |
13634 | (vtrn_p16): Likewise. | |
13635 | (vtrn_s8): Likewise. | |
13636 | (vtrn_s16): Likewise. | |
13637 | (vtrn_s32): Likewise. | |
13638 | (vtrn_u8): Likewise. | |
13639 | (vtrn_u16): Likewise. | |
13640 | (vtrn_u32): Likewise. | |
13641 | (vtrnq_f32): Likewise. | |
13642 | (vtrnq_p8): Likewise. | |
13643 | (vtrnq_p16): Likewise. | |
13644 | (vtrnq_s8): Likewise. | |
13645 | (vtrnq_s16): Likewise. | |
13646 | (vtrnq_s32): Likewise. | |
13647 | (vtrnq_u8): Likewise. | |
13648 | (vtrnq_u16): Likewise. | |
13649 | (vtrnq_u32): Likewise. | |
13650 | (vrsqrte_f16): Likewise. | |
13651 | (vrsqrteq_f16): Likewise. | |
13652 | (vsqrt_f16): Likewise. | |
13653 | (vsqrtq_f16): Likewise. | |
13654 | (vabd_f16): Likewise. | |
13655 | (vabdq_f16): Likewise. | |
13656 | (vpadd_f16): Likewise. | |
13657 | (vpaddq_f16): Likewise. | |
13658 | (vpmax_f16): Likewise. | |
13659 | (vpmaxq_f16): Likewise. | |
13660 | (vpmaxnm_f16): Likewise. | |
13661 | (vpmaxnmq_f16): Likewise. | |
13662 | (vpmin_f16): Likewise. | |
13663 | (vpminq_f16): Likewise. | |
13664 | (vpminnm_f16): Likewise. | |
13665 | (vpminnmq_f16): Likewise. | |
13666 | (vrsqrts_f16): Likewise. | |
13667 | (vrsqrtsq_f16): Likewise. | |
13668 | ||
13669 | 2019-09-25 Richard Biener <rguenther@suse.de> | |
13670 | ||
13671 | PR tree-optimization/91896 | |
13672 | * tree-vect-loop.c (vectorizable_reduction): The single | |
13673 | def-use cycle optimization cannot apply when there's more | |
13674 | than one pattern stmt involved. | |
13675 | ||
13676 | 2019-09-24 Iain Sandoe <iain@sandoe.co.uk> | |
13677 | ||
13678 | * config/rs6000/rs6000.md (load_macho_picbase_<mode>): New, using | |
13679 | the 'P' mode iterator, replacing the (removed) SI and DI variants. | |
13680 | (reload_macho_picbase_<mode>): Likewise. | |
13681 | ||
13682 | 2019-09-24 Iain Sandoe <iain@sandoe.co.uk> | |
13683 | ||
13684 | * config/rs6000/rs6000.md: Move darwin.md include until | |
13685 | after the definition of the mode iterators. | |
13686 | ||
13687 | 2019-09-23 Martin Sebor <msebor@redhat.com> | |
13688 | ||
13689 | PR tree-optimization/91570 | |
13690 | * tree-ssa-strlen.c (get_range_strlen_dynamic): Handle null and | |
13691 | non-constant minlen, maxlen and maxbound. | |
13692 | ||
13693 | 2019-09-24 Richard Biener <rguenther@suse.de> | |
13694 | ||
13695 | * tree-vectorizer.h (_stmt_vec_info::const_cond_reduc_code): | |
13696 | Rename to... | |
13697 | (_stmt_vec_info::cond_reduc_code): ... this. | |
13698 | (_stmt_vec_info::induc_cond_initial_val): Add. | |
13699 | (STMT_VINFO_VEC_CONST_COND_REDUC_CODE): Rename to... | |
13700 | (STMT_VINFO_VEC_COND_REDUC_CODE): ... this. | |
13701 | (STMT_VINFO_VEC_INDUC_COND_INITIAL_VAL): Add. | |
13702 | * tree-vectorizer.c (vec_info::new_stmt_vec_info): Adjust. | |
13703 | * tree-vect-loop.c (get_initial_def_for_reduction): Pass in | |
13704 | the reduction code. | |
13705 | (vect_create_epilog_for_reduction): Drop special | |
13706 | induction condition reduction params, pass in reduction code | |
13707 | and simplify. | |
13708 | (vectorizable_reduction): Perform condition reduction kind | |
13709 | selection only at analysis time. Adjust passing on state. | |
13710 | ||
13711 | 2019-09-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
13712 | ||
13713 | * config/aarch64/aarch64.md (mov<mode>): Don't call | |
13714 | aarch64_split_dimode_const_store on volatile MEM. | |
13715 | ||
13716 | 2019-09-24 Stamatis Markianos-Wright <stam.markianos-wright@arm.com> | |
13717 | ||
13718 | * config/aarch64/aarch64-option-extensions.def (fp16fml): | |
13719 | Update hwcap string for fp16fml. | |
13720 | ||
13721 | 2019-09-24 Jakub Jelinek <jakub@redhat.com> | |
13722 | ||
13723 | PR middle-end/91866 | |
13724 | * match.pd (((T)(A)) + CST -> (T)(A + CST)): Formatting fix. | |
13725 | (((T)(A + CST1)) + CST2 -> (T)(A) + (T)CST1 + CST2): New optimization. | |
13726 | ||
13727 | 2019-09-24 Martin Liska <mliska@suse.cz> | |
13728 | ||
13729 | * cfgexpand.c (gimple_assign_rhs_to_tree): Use switch statement | |
13730 | instead of if-elseif-elseif-... | |
13731 | * gimple-expr.c (extract_ops_from_tree): Likewise. | |
13732 | * gimple.c (get_gimple_rhs_num_ops): Likewise. | |
13733 | * tree-ssa-forwprop.c (rhs_to_tree): Likewise. | |
13734 | ||
13735 | 2019-09-24 Martin Jambor <mjambor@suse.cz> | |
13736 | ||
13737 | PR ipa/91831 | |
13738 | * ipa-param-manipulation.c (carry_over_param): Make a method of | |
13739 | ipa_param_body_adjustments, remove now unnecessary argument. Also copy | |
13740 | in case of a context mismatch. | |
13741 | (ipa_param_body_adjustments::common_initialization): Adjust call to | |
13742 | carry_over_param. | |
13743 | * ipa-param-manipulation.h (class ipa_param_body_adjustments): Add | |
13744 | private method carry_over_param. | |
13745 | ||
13746 | 2019-09-24 Martin Jambor <mjambor@suse.cz> | |
13747 | ||
13748 | PR ipa/91832 | |
13749 | * ipa-sra.c (scan_expr_access): Check that offset is non-negative. | |
13750 | ||
13751 | 2019-09-24 Richard Biener <rguenther@suse.de> | |
13752 | ||
13753 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize MEM_REF | |
13754 | base. | |
13755 | ||
13756 | 2019-09-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
13757 | ||
13758 | * config/arm/t-arm (arm-builtins.o): Add dependency on | |
13759 | arm_acle_builtins.def. | |
13760 | ||
13761 | 2019-09-23 Richard Sandiford <richard.sandiford@arm.com> | |
13762 | ||
13763 | PR target/91823 | |
13764 | * config/rs6000/altivec.md (altivec_copysign_v4sf3): Generate | |
13765 | canonical CONST_INTs. Use gen_rtvec. | |
13766 | ||
13767 | 2019-09-23 Richard Biener <rguenther@suse.de> | |
13768 | ||
13769 | * tree-vect-loop.c (get_initial_def_for_reduction): Simplify, | |
13770 | avoid adjusting by + 0 or * 1. | |
13771 | (vect_create_epilog_for_reduction): Get reduction code only | |
13772 | when necessary. Deal with adjustment_def only when necessary. | |
13773 | ||
13774 | 2019-09-23 Richard Sandiford <richard.sandiford@arm.com> | |
13775 | ||
13776 | * config/aarch64/atomics.md (aarch64_store_exclusive_pair): Fix | |
13777 | memmodel index. | |
13778 | ||
13779 | 2019-09-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
13780 | ||
13781 | PR ipa/91835 | |
13782 | * lto-section-in.c (lto_section_name): Use "ipa_sra" instead of | |
13783 | "ipa-sra". | |
13784 | ||
13785 | 2019-09-22 Iain Sandoe <iain@sandoe.co.uk> | |
13786 | ||
13787 | * config/rs6000/rs6000.c (machopic_output_stub): Remove dead | |
13788 | code. Merge code blocks with common conditionals. Use declared | |
13789 | macro instead of a magic number for PIC level. | |
13790 | ||
13791 | 2019-09-21 Martin Sebor <msebor@redhat.com> | |
13792 | ||
13793 | PR middle-end/91830 | |
13794 | * gimple-ssa-warn-restrict.c (builtin_memref::set_base_and_offset): | |
13795 | Simplify computation of the offset of the referenced subobject. | |
13796 | ||
13797 | 2019-09-21 Iain Sandoe <iain@sandoe.co.uk> | |
13798 | ||
13799 | * config/darwin.c (machopic_legitimize_pic_address): Check | |
13800 | for lra not reload. | |
13801 | ||
13802 | 2019-09-21 Richard Sandiford <richard.sandiford@arm.com> | |
13803 | ||
13804 | * ira-conflicts.c (can_use_same_reg_p): New function. | |
13805 | (process_reg_shuffles): Take an insn parameter. Ignore cases | |
13806 | in which input operand op_num could seemingly never be allocated | |
13807 | to the same register as the destination. | |
13808 | (add_insn_allocno_copies): Update call to process_reg_shuffles. | |
13809 | ||
13810 | 2019-09-21 Richard Sandiford <richard.sandiford@arm.com> | |
13811 | ||
13812 | * simplify-rtx.c (neg_const_int): Replace with... | |
13813 | (neg_poly_int_rtx): ...this new function. | |
13814 | (simplify_binary_operation_1): Extend (minus x C) -> (plus X -C) | |
13815 | to all CONST_SCALAR_INTs and to CONST_POLY_INT. | |
13816 | (simplify_plus_minus): Likewise for constant terms here. | |
13817 | ||
13818 | 2019-09-20 Jonas Pfeil <jonas.pfeil@uli-ulm.de> | |
13819 | ||
13820 | * config/microblaze/microblaze.h (ASM_OUTPUT_SKIP): Use | |
13821 | HOST_WIDE_PRINT_UNSIGNED. | |
13822 | ||
13823 | 2019-09-20 John David Anglin <danglin@gcc.gnu.org> | |
13824 | ||
13825 | * config/pa/pa.c (pa_trampoline_init): Remove spurious extended | |
13826 | character. | |
13827 | ||
13828 | 2019-09-20 Maya Rashish <coypu@sdf.org> | |
13829 | ||
13830 | PR target/86811 | |
13831 | * config/vax/vax.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): | |
13832 | Define to speculation_safe_value_not_needed. | |
13833 | ||
13834 | 2019-09-20 Richard Biener <rguenther@suse.de> | |
13835 | Uros Bizjak <ubizjak@gmail.com> | |
13836 | ||
13837 | PR target/91814 | |
13838 | * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): Revert | |
13839 | previous change. | |
13840 | (general_scalar_chain::convert_op): Force not suitable memory | |
13841 | operands to a register. | |
13842 | ||
13843 | 2019-09-20 Richard Biener <rguenther@suse.de> | |
13844 | ||
13845 | PR tree-optimization/91821 | |
13846 | * tree-vect-loop.c (check_reduction_path): Check we can compute | |
13847 | reduc_idx. | |
13848 | (vect_is_simple_reduction): Set STMT_VINFO_REDUC_IDX. | |
13849 | * tree-vect-patterns.c (vect_reassociating_reduction_p): Return | |
13850 | operands in canonical order. | |
13851 | * tree-vectorizer.c (vec_info::new_stmt_vec_info): Initialize | |
13852 | STMT_VINFO_REDUC_IDX. | |
13853 | * tree-vectorizer.h (_stmt_vec_info::reduc_idx): New. | |
13854 | (STMT_VINFO_REDUC_IDX): Likewise. | |
13855 | ||
13856 | 2019-09-20 Eric Botcazou <ebotcazou@adacore.com> | |
13857 | ||
13858 | PR target/91269 | |
13859 | * config/sparc/sparc.h (HARD_REGNO_CALLER_SAVE_MODE): Define. | |
13860 | ||
13861 | 2019-09-20 Richard Biener <rguenther@suse.de> | |
13862 | ||
13863 | PR tree-optimization/91822 | |
13864 | * tree-vectorizer.h (vectorizable_condition): Restore for_reduction | |
13865 | parameter. | |
13866 | * tree-vect-loop.c (vectorizable_reduction): Adjust asserts | |
13867 | for reduc_index in nested cycles, adjust vectorizable_condition | |
13868 | calls. | |
13869 | * tree-vect-stmts.c (vectorizable_condition): Restore for_reduction | |
13870 | parameter. | |
13871 | (vect_analyze_stmt): Adjust. | |
13872 | (vect_transform_stmt): Likewise. | |
13873 | ||
13874 | 2019-09-20 Richard Biener <rguenther@suse.de> | |
13875 | ||
13876 | PR target/91767 | |
13877 | * config/i386/i386-features.c (general_scalar_chain::convert_registers): | |
13878 | Ensure there's a sequence point between allocating the new register | |
13879 | and passing a reference to a reg via regno_reg_rtx. | |
13880 | ||
13881 | 2019-09-20 Martin Jambor <mjambor@suse.cz> | |
13882 | ||
13883 | * coretypes.h (cgraph_edge): Declare. | |
13884 | * ipa-param-manipulation.c: Rewrite. | |
13885 | * ipa-param-manipulation.h: Likewise. | |
13886 | * Makefile.in (GTFILES): Added ipa-param-manipulation.h and ipa-sra.c. | |
13887 | (OBJS): Added ipa-sra.o. | |
13888 | * cgraph.h (ipa_replace_map): Removed fields old_tree, replace_p | |
13889 | and ref_p, added fields param_adjustments and performed_splits. | |
13890 | (struct cgraph_clone_info): Remove ags_to_skip and | |
13891 | combined_args_to_skip, new field param_adjustments. | |
13892 | (cgraph_node::create_clone): Changed parameters to use | |
13893 | ipa_param_adjustments. | |
13894 | (cgraph_node::create_virtual_clone): Likewise. | |
13895 | (cgraph_node::create_virtual_clone_with_body): Likewise. | |
13896 | (tree_function_versioning): Likewise. | |
13897 | (cgraph_build_function_type_skip_args): Removed. | |
13898 | * cgraph.c (cgraph_edge::redirect_call_stmt_to_callee): Convert to | |
13899 | using ipa_param_adjustments. | |
13900 | (clone_of_p): Likewise. | |
13901 | * cgraphclones.c (cgraph_build_function_type_skip_args): Removed. | |
13902 | (build_function_decl_skip_args): Likewise. | |
13903 | (duplicate_thunk_for_node): Adjust parameters using | |
13904 | ipa_param_body_adjustments, copy param_adjustments instead of | |
13905 | args_to_skip. | |
13906 | (cgraph_node::create_clone): Convert to using ipa_param_adjustments. | |
13907 | (cgraph_node::create_virtual_clone): Likewise. | |
13908 | (cgraph_node::create_version_clone_with_body): Likewise. | |
13909 | (cgraph_materialize_clone): Likewise. | |
13910 | (symbol_table::materialize_all_clones): Likewise. | |
13911 | * ipa-fnsummary.c (ipa_fn_summary_t::duplicate): Simplify | |
13912 | ipa_replace_map check. | |
13913 | * ipa-cp.c (get_replacement_map): Do not initialize removed fields. | |
13914 | (initialize_node_lattices): Make aware that some parameters might have | |
13915 | already been removed. | |
13916 | (want_remove_some_param_p): New function. | |
13917 | (create_specialized_node): Convert to using ipa_param_adjustments and | |
13918 | deal with possibly pre-existing adjustments. | |
13919 | * lto-cgraph.c (output_cgraph_opt_summary_p): Likewise. | |
13920 | (output_node_opt_summary): Do not stream removed fields. Stream | |
13921 | parameter adjustments instead of argumetns to skip. | |
13922 | (input_node_opt_summary): Likewise. | |
13923 | (input_node_opt_summary): Likewise. | |
13924 | * lto-section-in.c (lto_section_name): Added ipa-sra section. | |
13925 | * lto-streamer.h (lto_section_type): Likewise. | |
13926 | * tree-inline.h (copy_body_data): New fields killed_new_ssa_names and | |
13927 | param_body_adjs. | |
13928 | (copy_decl_to_var): Declare. | |
13929 | * tree-inline.c (update_clone_info): Do not remap old_tree. | |
13930 | (remap_gimple_stmt): Use ipa_param_body_adjustments to modify gimple | |
13931 | statements, walk all extra generated statements and remap their | |
13932 | operands. | |
13933 | (redirect_all_calls): Add killed SSA names to a hash set. | |
13934 | (remap_ssa_name): Do not remap killed SSA names. | |
13935 | (copy_arguments_for_versioning): Renames to copy_arguments_nochange, | |
13936 | half of functionality moved to ipa_param_body_adjustments. | |
13937 | (copy_decl_to_var): Make exported. | |
13938 | (copy_body): Destroy killed_new_ssa_names hash set. | |
13939 | (expand_call_inline): Remap performed splits. | |
13940 | (update_clone_info): Likewise. | |
13941 | (tree_function_versioning): Simplify tree_map processing. Updated to | |
13942 | accept ipa_param_adjustments and use ipa_param_body_adjustments. | |
13943 | * omp-simd-clone.c (simd_clone_vector_of_formal_parm_types): Adjust | |
13944 | for the new interface. | |
13945 | (simd_clone_clauses_extract): Likewise, make args an auto_vec. | |
13946 | (simd_clone_compute_base_data_type): Likewise. | |
13947 | (simd_clone_init_simd_arrays): Adjust for the new interface. | |
13948 | (simd_clone_adjust_argument_types): Likewise. | |
13949 | (struct modify_stmt_info): Likewise. | |
13950 | (ipa_simd_modify_stmt_ops): Likewise. | |
13951 | (ipa_simd_modify_function_body): Likewise. | |
13952 | (simd_clone_adjust): Likewise. | |
13953 | * tree-sra.c: Removed IPA-SRA. Include tree-sra.h. | |
13954 | (type_internals_preclude_sra_p): Make public. | |
13955 | * tree-sra.h: New file. | |
13956 | * ipa-inline-transform.c (save_inline_function_body): Update to | |
13957 | refelct new tree_function_versioning signature. | |
13958 | * ipa-prop.c (adjust_agg_replacement_values): Use a helper from | |
13959 | ipa_param_adjustments to get current parameter indices. | |
13960 | (ipcp_modif_dom_walker::before_dom_children): Likewise. | |
13961 | (ipcp_update_bits): Likewise. | |
13962 | (ipcp_update_vr): Likewise. | |
13963 | * ipa-split.c (split_function): Convert to using ipa_param_adjustments. | |
13964 | * ipa-sra.c: New file. | |
13965 | * multiple_target.c (create_target_clone): Update to reflet new type | |
13966 | of create_version_clone_with_body. | |
13967 | * trans-mem.c (ipa_tm_create_version): Update to reflect new type of | |
13968 | tree_function_versioning. | |
13969 | (modify_function): Update to reflect new type of | |
13970 | tree_function_versioning. | |
13971 | * params.def (PARAM_IPA_SRA_MAX_REPLACEMENTS): New. | |
13972 | * passes.def: Remove old IPA-SRA and add new one. | |
13973 | * tree-pass.h (make_pass_early_ipa_sra): Remove declaration. | |
13974 | (make_pass_ipa_sra): Declare. | |
13975 | * dbgcnt.def: Remove eipa_sra. Added ipa_sra_params and | |
13976 | ipa_sra_retvalues. | |
13977 | * doc/invoke.texi (ipa-sra-max-replacements): New. | |
13978 | ||
13979 | 2019-09-19 Martin Sebor <msebor@redhat.com> | |
13980 | ||
13981 | PR middle-end/91631 | |
13982 | * builtins.c (component_size): Correct trailing array computation, | |
13983 | rename to component_ref_size and move... | |
13984 | (compute_objsize): Adjust. | |
13985 | * gimple-ssa-warn-restrict.c (builtin_memref::refsize): New member. | |
13986 | (builtin_access::strict): Do not consider memmove. | |
13987 | (builtin_access::write_off): New function. | |
13988 | (builtin_memref::builtin_memref): Initialize refsize. | |
13989 | (builtin_memref::set_base_and_offset): Adjust refoff and compute | |
13990 | refsize. | |
13991 | (builtin_memref::offset_out_of_bounds): Use ooboff input values. | |
13992 | Handle refsize. | |
13993 | (builtin_access::builtin_access): Initialize dstoff to destination | |
13994 | refeence offset here instead of in maybe_diag_overlap. Adjust | |
13995 | referencess even to unrelated objects. Adjust sizrange of bounded | |
13996 | string functions to reflect bound. For strcat, adjust destination | |
13997 | sizrange by that of source. | |
13998 | (builtin_access::strcat_overlap): Adjust offsets and sizes | |
13999 | to reflect the increase in destination sizrange above. | |
14000 | (builtin_access::overlap): Do not set dstoff here but instead | |
14001 | in builtin_access::builtin_access. | |
14002 | (check_bounds_or_overlap): Use builtin_access::write_off. | |
14003 | (maybe_diag_access_bounds): Add argument. Add informational notes. | |
14004 | (dump_builtin_memref, dump_builtin_access): New functions. | |
14005 | * tree.c (component_ref_size): ...to here. | |
14006 | * tree.h (component_ref_size): Declare. | |
14007 | * tree-ssa-strlen (handle_builtin_strcat): Include the terminating | |
14008 | nul in the size of the source string. | |
14009 | ||
14010 | 2019-09-19 Lewis Hyatt <lhyatt@gmail.com> | |
14011 | ||
14012 | PR c/67224 | |
14013 | * doc/cpp.texi: Document support for extended characters in | |
14014 | identifiers. | |
14015 | * doc/cppopts.texi: Likewise. | |
14016 | ||
14017 | 2019-09-19 Richard Biener <rguenther@suse.de> | |
14018 | ||
14019 | * tree-vect-loop.c (vect_is_slp_reduction): Remove. | |
14020 | (check_reduction_path): New overload having the path as result. | |
14021 | (vect_is_simple_reduction): From the detected reduction | |
14022 | path build a SLP reduction chain if possible. | |
14023 | ||
14024 | 2019-09-19 Richard Biener <rguenther@suse.de> | |
14025 | ||
14026 | PR target/91814 | |
14027 | * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): | |
14028 | Force operand to a register if it isn't nonimmediate_operand. | |
14029 | ||
14030 | 2019-09-19 Wilco Dijkstra <wdijkstr@arm.com> | |
14031 | ||
14032 | * config/arm/arm.md (<logical_op>di3): Use <optab> and <CODE>. | |
14033 | * config/arm/iterators.md (optab): Add and, ior, xor entries. | |
14034 | (logical_op): Remove code attribute. | |
14035 | (logical_OP): Likewise. | |
14036 | ||
14037 | 2019-09-19 Martin Liska <mliska@suse.cz> | |
14038 | ||
14039 | * ipa-icf.c (sort_congruence_class_groups_by_decl_uid): | |
14040 | Use proper casting. | |
14041 | ||
14042 | 2019-09-19 Richard Henderson <richard.henderson@linaro.org> | |
14043 | ||
14044 | * config/aarch64/aarch64.c (aarch64_print_operand): Allow integer | |
14045 | registers with %R. | |
14046 | ||
14047 | * config/aarch64/aarch64.c (aarch64_gen_compare_reg): Add support | |
14048 | for NE comparison of TImode values. | |
14049 | (aarch64_emit_load_exclusive): Add support for TImode. | |
14050 | (aarch64_emit_store_exclusive): Likewise. | |
14051 | (aarch64_split_compare_and_swap): Disable strong_zero_p for TImode. | |
14052 | * config/aarch64/atomics.md (@atomic_compare_and_swap<ALLI_TI>): | |
14053 | Change iterator from ALLI to ALLI_TI. | |
14054 | (@atomic_compare_and_swap<JUST_TI>): New. | |
14055 | (@atomic_compare_and_swap<JUST_TI>_lse): New. | |
14056 | (aarch64_load_exclusive_pair): New. | |
14057 | (aarch64_store_exclusive_pair): New. | |
14058 | * config/aarch64/iterators.md (JUST_TI): New. | |
14059 | ||
14060 | * config/aarch64/aarch64 (aarch64_split_compare_and_swap): Disable | |
14061 | strong_zero_p for aarch64_track_speculation; unify some code paths; | |
14062 | use aarch64_gen_compare_reg instead of open-coding. | |
14063 | ||
14064 | * config/aarch64/aarch64.opt (-moutline-atomics): New. | |
14065 | * config/aarch64/aarch64.c (aarch64_atomic_ool_func): New. | |
14066 | (aarch64_ool_cas_names, aarch64_ool_swp_names): New. | |
14067 | (aarch64_ool_ldadd_names, aarch64_ool_ldset_names): New. | |
14068 | (aarch64_ool_ldclr_names, aarch64_ool_ldeor_names): New. | |
14069 | (aarch64_expand_compare_and_swap): Honor TARGET_OUTLINE_ATOMICS. | |
14070 | * config/aarch64/atomics.md (atomic_exchange<ALLI>): Likewise. | |
14071 | (atomic_<atomic_op><ALLI>): Likewise. | |
14072 | (atomic_fetch_<atomic_op><ALLI>): Likewise. | |
14073 | (atomic_<atomic_op>_fetch<ALLI>): Likewise. | |
14074 | * doc/invoke.texi: Document -moutline-atomics. | |
14075 | ||
14076 | 2019-09-19 Feng Xue <fxue@os.amperecomputing.com> | |
14077 | ||
14078 | * ipa-fnsummary.c (set_cond_stmt_execution_predicate): Do not compute | |
14079 | trivial predicate for condition branch. | |
14080 | (set_switch_stmt_execution_predicate): Do not compute trivial predicate | |
14081 | for switch case. | |
14082 | (compute_bb_predicates): Update predicate based on post-dominating | |
14083 | relationship. | |
14084 | (analyze_function_body): Calculate post-dominating information. | |
14085 | ||
14086 | 2019-09-19 Richard Sandiford <richard.sandiford@arm.com> | |
14087 | ||
14088 | * tree-vectorizer.h (vectorizable_condition): Take an int | |
14089 | reduction index instead of a boolean flag. | |
14090 | * tree-vect-stmts.c (vectorizable_condition): Likewise. | |
14091 | Swap the "then" and "else" values for EXTRACT_LAST_REDUCTION | |
14092 | reductions if the reduction accumulator is the "then" rather | |
14093 | than the "else" value. | |
14094 | (vect_analyze_stmt): Update call accordingly. | |
14095 | (vect_transform_stmt): Likewise. | |
14096 | * tree-vect-loop.c (vectorizable_reduction): Likewise, | |
14097 | asserting that the index is > 0. | |
14098 | ||
14099 | 2019-09-19 Martin Liska <mliska@suse.cz> | |
14100 | ||
14101 | * ipa-icf.c (sort_sem_items_by_decl_uid): Simplify comparator. | |
14102 | (sort_congruence_classes_by_decl_uid): Likewise. | |
14103 | (sort_congruence_class_groups_by_decl_uid): Use std::pair for | |
14104 | easier sorting. | |
14105 | (sem_item_optimizer::merge_classes): Likewise. | |
14106 | ||
14107 | 2019-09-19 Richard Biener <rguenther@suse.de> | |
14108 | ||
14109 | PR tree-optimization/91812 | |
14110 | * tree-ssa-phiprop.c (propagate_with_phi): Do not replace | |
14111 | volatile loads. | |
14112 | ||
14113 | 2019-09-19 Richard Sandiford <richard.sandiford@arm.com> | |
14114 | ||
14115 | * defaults.h (TARGET_UNIT): New macro. | |
14116 | (target_unit): New type. | |
14117 | * rtl.h (native_encode_rtx, native_decode_rtx) | |
14118 | (native_decode_vector_rtx, subreg_size_lsb): Declare. | |
14119 | (subreg_lsb_1): Turn into an inline wrapper around subreg_size_lsb. | |
14120 | * rtlanal.c (subreg_lsb_1): Delete. | |
14121 | (subreg_size_lsb): New function. | |
14122 | * simplify-rtx.c: Include rtx-vector-builder.h | |
14123 | (simplify_immed_subreg): Delete. | |
14124 | (native_encode_rtx, native_decode_vector_rtx, native_decode_rtx) | |
14125 | (simplify_const_vector_byte_offset, simplify_const_vector_subreg): New | |
14126 | functions. | |
14127 | (simplify_subreg): Use them. | |
14128 | (test_vector_subregs_modes, test_vector_subregs_repeating) | |
14129 | (test_vector_subregs_fore_back, test_vector_subregs_stepped) | |
14130 | (test_vector_subregs): New functions. | |
14131 | (test_vector_ops): Call test_vector_subregs for integer vector | |
14132 | modes with at least 2 elements. | |
14133 | ||
14134 | 2019-09-19 Richard Biener <rguenther@suse.de> | |
14135 | ||
14136 | * tree-parloops.c (parloops_is_slp_reduction): Do not set | |
14137 | LOOP_VINFO_OPERANDS_SWAPPED. | |
14138 | (parloops_is_simple_reduction): Likewise. | |
14139 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Do not | |
14140 | initialize operands_swapped. | |
14141 | (_loop_vec_info::~_loop_vec_info): Do not re-canonicalize stmts. | |
14142 | (vect_is_slp_reduction): Do not swap operands. | |
14143 | * tree-vectorizer.h (_loop_vec_info::operands_swapped): Remove. | |
14144 | (LOOP_VINFO_OPERANDS_SWAPPED): Likewise. | |
14145 | ||
14146 | 2019-09-19 Hongtao Liu <hongtao.liu@intel.com> | |
14147 | ||
14148 | PR target/87007 | |
14149 | * config/i386.md (*floatuns<SWI48:mode><MODEF:mode>2_avx512): | |
14150 | Add avx_partial_xmm_update. | |
14151 | ||
14152 | 2019-09-18 Jim Wilson <jimw@sifive.com> | |
14153 | ||
14154 | PR target/91683 | |
14155 | * config/riscv/riscv-protos.h (riscv_split_symbol): New bool parameter. | |
14156 | (riscv_move_integer): Likewise. | |
14157 | * config/riscv/riscv.c (riscv_split_integer): Pass FALSE for new | |
14158 | riscv_move_integer arg. | |
14159 | (riscv_legitimize_move): Likewise. | |
14160 | (riscv_force_temporary): New parameter in_splitter. Don't call | |
14161 | force_reg if true. | |
14162 | (riscv_unspec_offset_high): Pass FALSE for new riscv_force_temporary | |
14163 | arg. | |
14164 | (riscv_add_offset): Likewise. | |
14165 | (riscv_split_symbol): New parameter in_splitter. Pass to | |
14166 | riscv_force_temporary. | |
14167 | (riscv_legitimize_address): Pass FALSE for new riscv_split_symbol | |
14168 | arg. | |
14169 | (riscv_move_integer): New parameter in_splitter. New local | |
14170 | can_create_psuedo. Don't call riscv_split_integer or force_reg when | |
14171 | in_splitter TRUE. | |
14172 | (riscv_legitimize_const_move): Pass FALSE for new riscv_move_integer, | |
14173 | riscv_split_symbol, and riscv_force_temporary args. | |
14174 | * config/riscv/riscv.md (low<mode>+1): Pass TRUE for new | |
14175 | riscv_move_integer arg. | |
14176 | (low<mode>+2): Pass TRUE for new riscv_split_symbol arg. | |
14177 | ||
14178 | 2019-09-18 H.J. Lu <hongjiu.lu@intel.com> | |
14179 | ||
14180 | PR target/90878 | |
14181 | * config/i386/x86-tune-costs.h (skylake_cost): Restore SImode | |
14182 | hard register store cost to 6. | |
14183 | ||
14184 | 2019-09-18 H.J. Lu <hongjiu.lu@intel.com> | |
14185 | ||
14186 | PR target/91446 | |
14187 | * config/i386/x86-tune-costs.h (skylake_cost): Increase SImode | |
14188 | pseudo register store cost from 3 to 6 to make it the same as | |
14189 | QImode and HImode. | |
14190 | ||
14191 | 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com> | |
14192 | ||
14193 | PR target/91738 | |
14194 | * config/arm/arm.md (<logical_op>di3): Expand explicitly. | |
14195 | (one_cmpldi2): Likewise. | |
14196 | * config/arm/arm.c (const_ok_for_dimode_op): Return true if one | |
14197 | of the constant parts is simple. | |
14198 | * config/arm/iterators.md (LOGICAL): Add new code iterator. | |
14199 | (logical_op): Add new code attribute. | |
14200 | (logical_OP): Likewise. | |
14201 | * config/arm/predicates.md (arm_anddi_operand): Add predicate. | |
14202 | (arm_iordi_operand): Add predicate. | |
14203 | (arm_xordi_operand): Add predicate. | |
14204 | ||
14205 | 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com> | |
14206 | ||
14207 | * config/arm/arm.md (maddsidi4): Remove expander. | |
14208 | (mulsidi3adddi): Remove pattern. | |
14209 | (mulsidi3adddi_v6): Likewise. | |
14210 | (mulsidi3_nov6): Likewise. | |
14211 | (mulsidi3_v6): Likewise. | |
14212 | (umulsidi3): Remove expander. | |
14213 | (umulsidi3_nov6): Remove pattern. | |
14214 | (umulsidi3_v6): Likewise. | |
14215 | (umulsidi3adddi): Likewise. | |
14216 | (umulsidi3adddi_v6): Likewise. | |
14217 | (<Us>mulsidi3): Add combined expander. | |
14218 | (<Us>maddsidi4): Likewise. | |
14219 | (<US>mull): Add combined umull and smull pattern. | |
14220 | (<US>mlal): Likewise. | |
14221 | * config/arm/iterators.md (Us): Add new iterator. | |
14222 | ||
14223 | 2019-09-18 Richard Biener <rguenther@suse.de> | |
14224 | ||
14225 | * tree-vect-loop.c (vect_is_simple_reduction): Remove operand | |
14226 | swapping. | |
14227 | (vectorize_fold_left_reduction): Remove assert. | |
14228 | (vectorizable_reduction): Also expect COND_EXPR non-reduction | |
14229 | operand in position 2. Remove assert. | |
14230 | ||
14231 | 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com> | |
14232 | ||
14233 | * config/arm/arm.md (smulsi3_highpart): Use <US> and <SE> iterators. | |
14234 | (smulsi3_highpart_nov6): Remove pattern. | |
14235 | (smulsi3_highpart_v6): Likewise. | |
14236 | (umulsi3_highpart): Likewise. | |
14237 | (umulsi3_highpart_nov6): Likewise. | |
14238 | (umulsi3_highpart_v6): Likewise. | |
14239 | (<US>mull_high): Add new combined multiply pattern. | |
14240 | ||
14241 | 2019-09-18 Wilco Dijkstra <wdijkstr@arm.com> | |
14242 | ||
14243 | * config/arm/arm.md (arm_mulsi3): Remove pattern. | |
14244 | (arm_mulsi3_v6): Likewise. | |
14245 | (mulsi3addsi_v6): Likewise. | |
14246 | (mulsi3subsi): Likewise. | |
14247 | (mul): Add new multiply pattern. | |
14248 | (mla): Likewise. | |
14249 | (mls): Likewise. | |
14250 | ||
14251 | 2019-09-18 Richard Biener <rguenther@suse.de> | |
14252 | ||
14253 | * tree-parloops.c (report_ploop_op): Copy from report_vect_op. | |
14254 | (parloops_valid_reduction_input_p): Copy from | |
14255 | valid_reduction_input_p. | |
14256 | (parloops_is_slp_reduction): Copy from vect_is_slp_reduction. | |
14257 | (parloops_needs_fold_left_reduction_p): Copy from | |
14258 | needs_fold_left_reduction_p. | |
14259 | (parloops_is_simple_reduction): Copy from | |
14260 | vect_is_simple_reduction. | |
14261 | (parloops_force_simple_reduction): Copy from | |
14262 | vect_force_simple_reduction. | |
14263 | (gather_scalar_reductions): Adjust. | |
14264 | * tree-vect-loop.c (vect_force_simple_reduction): Make static. | |
14265 | * tree-vectorizer.h (vect_force_simple_reduction): Remove. | |
14266 | ||
14267 | 2019-09-18 Richard Biener <rguenther@suse.de> | |
14268 | ||
14269 | * tree-vectorizer.h (get_initial_def_for_reduction): Remove. | |
14270 | * tree-vect-loop.c (get_initial_def_for_reduction): Make | |
14271 | static. | |
14272 | (vect_create_epilog_for_reduction): Remove dead code. | |
14273 | ||
14274 | 2019-09-18 Richard Sandiford <richard.sandiford@arm.com> | |
14275 | ||
14276 | * varasm.c (assemble_real): Generate canonical const_ints. | |
14277 | ||
14278 | 2019-09-18 Richard Biener <rguenther@suse.de> | |
14279 | ||
14280 | PR lto/91763 | |
14281 | * lto-streamer-in.c (input_eh_regions): Move EH init to | |
14282 | lto_materialize_function. | |
14283 | * tree-streamer-in.c (lto_input_ts_function_decl_tree_pointers): | |
14284 | Likewise. | |
14285 | ||
14286 | 2019-09-18 Richard Sandiford <richard.sandiford@arm.com> | |
14287 | ||
14288 | * tree-ssa-ccp.c (get_value_for_expr): Check whether CONSTANTs | |
14289 | are INTEGER_CSTs. | |
14290 | ||
14291 | 2019-09-18 Richard Sandiford <richard.sandiford@arm.com> | |
14292 | ||
14293 | * gimplify.c (gimplify_decl_expr): Use poly_int_tree_p instead | |
14294 | of checking specifically for INTEGER_CST. | |
14295 | ||
14296 | 2019-09-18 Richard Sandiford <richard.sandiford@arm.com> | |
14297 | ||
14298 | * stor-layout.c (compute_record_mode): Operate on poly_uint64 | |
14299 | sizes instead of uhwi sizes. | |
14300 | ||
14301 | 2019-09-18 Richard Sandiford <richard.sandiford@arm.com> | |
14302 | ||
14303 | * dwarf2out.c (loc_list_from_tree_1): Handle POLY_INT_CST. | |
14304 | (add_const_value_attribute): Handle CONST_POLY_INT. | |
14305 | ||
14306 | 2019-09-18 Martin Liska <mliska@suse.cz> | |
14307 | ||
14308 | * dbgcnt.def (store_merging): New counter. | |
14309 | * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_stores): | |
14310 | Use it in store merging. | |
14311 | ||
14312 | 2019-09-17 Richard Sandiford <richard.sandiford@arm.com> | |
14313 | ||
14314 | * config/aarch64/aarch64.c (aarch64_sched_variable_issue): New | |
14315 | function. | |
14316 | (TARGET_SCHED_VARIABLE_ISSUE): New macro. | |
14317 | * config/arm/arm.c (arm_sched_variable_issue): New function. | |
14318 | (TARGET_SCHED_VARIABLE_ISSUE): New macro. | |
14319 | ||
14320 | 2019-09-17 Richard Sandiford <richard.sandiford@arm.com> | |
14321 | ||
14322 | * config/arm/types.md (no_reservation): New reservation. | |
14323 | * config/aarch64/falkor.md (falkor_other_0_nothing): Don't handle | |
14324 | no_insn here. | |
14325 | * config/aarch64/saphira.md (saphira_other_0_nothing): Likewise. | |
14326 | * config/aarch64/thunderx2t99.md (thunderx2t99_nothing): Likewise. | |
14327 | * config/aarch64/tsv110.md (tsv110_alu): Likewise. | |
14328 | * config/arm/arm1020e.md (1020alu_op): Likewise. | |
14329 | * config/arm/arm1026ejs.md (alu_op): Likewise. | |
14330 | * config/arm/arm1136jfs.md (11_alu_op): Likewise. | |
14331 | * config/arm/arm926ejs.md (9_alu_op): Likewise. | |
14332 | * config/arm/cortex-a15.md (cortex_a15_alu): Likewise. | |
14333 | * config/arm/cortex-a17.md (cortex_a17_alu): Likewise. | |
14334 | * config/arm/cortex-a5.md (cortex_a5_alu): Likewise. | |
14335 | * config/arm/cortex-a53.md (cortex_a53_alu): Likewise. | |
14336 | * config/arm/cortex-a57.md (cortex_a57_alu): Likewise. | |
14337 | * config/arm/cortex-a7.md (cortex_a7_alu_shift): Likewise. | |
14338 | * config/arm/cortex-a8.md (cortex_a8_alu): Likewise. | |
14339 | * config/arm/cortex-a9.md (cortex_a9_dp): Likewise. | |
14340 | * config/arm/cortex-m4.md (cortex_m4_alu): Likewise. | |
14341 | * config/arm/cortex-m7.md (cortex_m7_alu_simple): Likewise. | |
14342 | * config/arm/cortex-r4.md (cortex_r4_alu_shift_reg): Likewise. | |
14343 | * config/arm/fa526.md (526_alu_op): Likewise. | |
14344 | * config/arm/fa606te.md (606te_alu_op): Likewise. | |
14345 | * config/arm/fa626te.md (626te_alu_op): Likewise. | |
14346 | * config/arm/fa726te.md (726te_alu_op): Likewise. | |
14347 | * config/arm/xgene1.md (xgene1_nop): Likewise. | |
14348 | ||
14349 | 2019-09-17 Richard Sandiford <richard.sandiford@arm.com> | |
14350 | ||
14351 | * config/arm/thumb1.md (*thumb1_tablejump): Change type from | |
14352 | "no_insn" to "branch". | |
14353 | ||
14354 | 2019-09-17 Richard Sandiford <richard.sandiford@arm.com> | |
14355 | ||
14356 | * array-traits.h (array_traits<T[N]>::size): Remove parameter name. | |
14357 | ||
14358 | 2019-09-17 Richard Biener <rguenther@suse.de> | |
14359 | ||
14360 | PR debug/91772 | |
14361 | * dwarf2out.c (dwarf2out_late_global_decl): If early dwarf | |
14362 | was missing generate locations only once. | |
14363 | ||
14364 | 2019-09-17 Feng Xue <fxue@os.amperecomputing.com> | |
14365 | ||
14366 | PR ipa/91089 | |
14367 | * doc/invoke.texi (ipa-max-switch-predicate-bounds): Document new | |
14368 | option. | |
14369 | * params.def (PARAM_IPA_MAX_SWITCH_PREDICATE_BOUNDS): New. | |
14370 | * ipa-fnsummary.c (set_switch_stmt_execution_predicate): Add predicate | |
14371 | for switch default case using range analysis information. | |
14372 | ||
14373 | 2019-09-17 Christophe Lyon <christophe.lyon@linaro.org> | |
14374 | ||
14375 | PR target/91749 | |
14376 | * config/arm/arm.c (arm_valid_target_attribute_rec): Make sure the | |
14377 | mode attributed is supported by FDPIC. | |
14378 | ||
14379 | 2019-09-17 Richard Biener <rguenther@suse.de> | |
14380 | ||
14381 | PR tree-optimization/91790 | |
14382 | * tree-vect-stmts.c (vectorizable_load): For BB vectorization | |
14383 | use the correct DR for setting up realignment. | |
14384 | ||
14385 | 2019-09-16 Uroš Bizjak <ubizjak@gmail.com> | |
14386 | ||
14387 | PR target/91719 | |
14388 | * config/i386/i386.h (TARGET_USE_XCHG_FOR_ATOMIC_STORE): New macro. | |
14389 | * config/i386/x86-tune.def (X86_TUNE_USE_XCHG_FOR_ATOMIC_STORE): New. | |
14390 | * config/i386/sync.md (atomic_store<mode>): emit XCHG for | |
14391 | TARGET_USE_XCHG_FOR_ATOMIC_STORE. | |
14392 | ||
14393 | 2019-09-16 Jason Merrill <jason@redhat.com> | |
14394 | ||
14395 | * Makefile.in (build/genmatch.o): Depend on $(CPPLIB_H). | |
14396 | ||
14397 | 2019-09-16 Martin Liska <mliska@suse.cz> | |
14398 | ||
14399 | * gimple-fold.c (or_comparisons_1): Remove rules moved | |
14400 | to ... | |
14401 | * match.pd: ... here. | |
14402 | ||
14403 | 2019-09-16 Martin Liska <mliska@suse.cz> | |
14404 | ||
14405 | * gimple-fold.c (or_comparisons_1): Remove rules | |
14406 | moved to ... | |
14407 | * match.pd: ... here. | |
14408 | ||
14409 | 2019-09-16 Martin Liska <mliska@suse.cz> | |
14410 | ||
14411 | * genmatch.c (dt_node::append_simplify): Do not print | |
14412 | warning when we have duplicate patterns belonging | |
14413 | to a same simplify rule. | |
14414 | * gimple-fold.c (and_comparisons_1): Remove matching moved to match.pd. | |
14415 | (maybe_fold_comparisons_from_match_pd): Handle | |
14416 | tcc_comparison as a results. | |
14417 | * match.pd: Handle (X == CST1) && (X OP2 CST2) conditions. | |
14418 | ||
14419 | 2019-09-16 Li Jia He <helijia@linux.ibm.com> | |
14420 | Qi Feng <ffengqi@linux.ibm.com> | |
14421 | ||
14422 | PR middle-end/88784 | |
14423 | * match.pd (x > y && x != XXX_MIN): Optimize into 'x > y'. | |
14424 | (x > y && x == XXX_MIN): Optimize into 'false'. | |
14425 | (x <= y && x == XXX_MIN): Optimize into 'x == XXX_MIN'. | |
14426 | (x < y && x != XXX_MAX): Optimize into 'x < y'. | |
14427 | (x < y && x == XXX_MAX): Optimize into 'false'. | |
14428 | (x >= y && x == XXX_MAX): Optimize into 'x == XXX_MAX'. | |
14429 | (x > y || x != XXX_MIN): Optimize into 'x != XXX_MIN'. | |
14430 | (x <= y || x != XXX_MIN): Optimize into 'true'. | |
14431 | (x <= y || x == XXX_MIN): Optimize into 'x <= y'. | |
14432 | (x < y || x != XXX_MAX): Optimize into 'x != XXX_MAX'. | |
14433 | (x >= y || x != XXX_MAX): Optimize into 'true'. | |
14434 | (x >= y || x == XXX_MAX): Optimize into 'x >= y'. | |
14435 | ||
14436 | 2019-09-16 Li Jia He <helijia@linux.ibm.com> | |
14437 | Martin Liska <mliska@suse.cz> | |
14438 | ||
14439 | * gimple-fold.c (and_comparisons_1): Add type as first | |
14440 | argument. | |
14441 | (and_var_with_comparison): Likewise. | |
14442 | (and_var_with_comparison_1): Likewise. | |
14443 | (or_comparisons_1): Likewise. | |
14444 | (or_var_with_comparison): Likewise. | |
14445 | (or_var_with_comparison_1): Likewise. | |
14446 | (maybe_fold_and_comparisons): Call maybe_fold_comparisons_from_match_pd. | |
14447 | (maybe_fold_or_comparisons): Likewise. | |
14448 | (maybe_fold_comparisons_from_match_pd): New. | |
14449 | * gimple-fold.h (maybe_fold_and_comparisons): Add type argument. | |
14450 | (maybe_fold_or_comparisons): Likewise. | |
14451 | * gimple.c (gimple_size): Make it public and add num_ops argument. | |
14452 | (gimple_init): New function. | |
14453 | (gimple_alloc): Call gimple_init. | |
14454 | * gimple.h (gimple_size): New. | |
14455 | (gimple_init): Likewise. | |
14456 | * tree-if-conv.c (fold_or_predicates): Pass type. | |
14457 | * tree-ssa-ifcombine.c (ifcombine_ifandif): Likewise. | |
14458 | * tree-ssa-reassoc.c (eliminate_redundant_comparison): Likewise. | |
14459 | (optimize_vec_cond_expr): Likewise. | |
14460 | (ovce_extract_ops): Return type of conditional expression. | |
14461 | * tree-ssanames.c (init_ssa_name_imm_use): New. | |
14462 | (make_ssa_name_fn): Use init_ssa_name_imm_use. | |
14463 | * tree-ssanames.h (init_ssa_name_imm_use): New. | |
14464 | ||
14465 | 2019-09-16 Richard Biener <rguenther@suse.de> | |
14466 | ||
14467 | PR tree-optimization/91756 | |
14468 | PR tree-optimization/87132 | |
14469 | * tree-ssa-alias.h (enum translate_flags): New. | |
14470 | (get_continuation_for_phi): Use it instead of simple bool flag. | |
14471 | (walk_non_aliased_vuses): Likewise. | |
14472 | * tree-ssa-alias.c (maybe_skip_until): Adjust. | |
14473 | (get_continuation_for_phi): When looking across backedges only | |
14474 | disallow valueization. | |
14475 | (walk_non_aliased_vuses): Adjust. | |
14476 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid valueization | |
14477 | if requested. | |
14478 | ||
14479 | 2019-09-14 Kewen Lin <linkw@gcc.gnu.org> | |
14480 | ||
14481 | PR middle-end/80791 | |
14482 | * config/rs6000/rs6000.c (TARGET_HAVE_COUNT_REG_DECR_P): New macro. | |
14483 | (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise. | |
14484 | (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise. | |
14485 | * target.def (have_count_reg_decr_p): New hook. | |
14486 | (doloop_cost_for_generic): Likewise. | |
14487 | (doloop_cost_for_address): Likewise. | |
14488 | * doc/tm.texi.in (TARGET_HAVE_COUNT_REG_DECR_P): Likewise. | |
14489 | (TARGET_DOLOOP_COST_FOR_GENERIC): Likewise. | |
14490 | (TARGET_DOLOOP_COST_FOR_ADDRESS): Likewise. | |
14491 | * doc/tm.texi: Regenerate. | |
14492 | * tree-ssa-loop-ivopts.c (comp_cost::operator+=): Consider infinite cost | |
14493 | addend. | |
14494 | (record_group): Init doloop_p. | |
14495 | (add_candidate_1): Add optional argument doloop, change the handlings | |
14496 | accordingly. | |
14497 | (add_candidate): Likewise. | |
14498 | (generic_predict_doloop_p): Update attribute. | |
14499 | (force_expr_to_var_cost): Add costing for expressions COND_EXPR/LT_EXPR/ | |
14500 | LE_EXPR/GT_EXPR/GE_EXPR/EQ_EXPR/NE_EXPR/UNORDERED_EXPR/ORDERED_EXPR/ | |
14501 | UNLT_EXPR/UNLE_EXPR/UNGT_EXPR/UNGE_EXPR/UNEQ_EXPR/LTGT_EXPR/MAX_EXPR/ | |
14502 | MIN_EXPR. | |
14503 | (get_computation_cost): Update for doloop IV cand extra cost. | |
14504 | (determine_group_iv_cost_cond): Update for doloop IV cand. | |
14505 | (determine_iv_cost): Likewise. | |
14506 | (ivopts_estimate_reg_pressure): Likewise. | |
14507 | (may_eliminate_iv): Update handlings for doloop IV cand. | |
14508 | (add_iv_candidate_for_doloop): New function. | |
14509 | (find_iv_candidates): Call function add_iv_candidate_for_doloop. | |
14510 | (iv_ca_set_no_cp): Update for doloop IV cand. | |
14511 | (iv_ca_set_cp): Likewise. | |
14512 | (iv_ca_dump): Dump register cost. | |
14513 | (find_doloop_use): New function. | |
14514 | (analyze_and_mark_doloop_use): Likewise. | |
14515 | (tree_ssa_iv_optimize_loop): Call function analyze_and_mark_doloop_use. | |
14516 | ||
14517 | 2019-09-13 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
14518 | ||
14519 | PR middle-end/91708 | |
14520 | * cse.c (cse_insn): Do not replace anything with a | |
14521 | MEM. | |
14522 | ||
14523 | 2019-09-13 Ian Lance Taylor <iant@golang.org> | |
14524 | ||
14525 | * doc/invoke.texi (Optimize Options): Fix typo. | |
14526 | ||
14527 | 2019-09-12 Uroš Bizjak <ubizjak@gmail.com> | |
14528 | ||
14529 | PR tree-optimization/89386 | |
14530 | * config/i386/sse.md (smulhrs<mode>3): New expander. | |
14531 | (smulhrsv4hi3): Ditto. | |
14532 | ||
14533 | 2019-09-12 Richard Biener <rguenther@suse.de> | |
14534 | ||
14535 | PR tree-optimization/91750 | |
14536 | * tree-vect-loop.c (vectorizable_induction): Compute IV increments | |
14537 | in the type of the evolution. | |
14538 | ||
14539 | 2019-09-12 Yuliang Wang <yuliang.wang@arm.com> | |
14540 | ||
14541 | PR tree-optimization/89386 | |
14542 | * config/aarch64/aarch64-sve2.md (<su>mull<bt><Vwide>) | |
14543 | (<r>shrnb<mode>, <r>shrnt<mode>): New SVE2 patterns. | |
14544 | (<su>mulh<r>s<mode>3): New pattern for MULHRS. | |
14545 | * config/aarch64/iterators.md (UNSPEC_SMULLB, UNSPEC_SMULLT) | |
14546 | (UNSPEC_UMULLB, UNSPEC_UMULLT, UNSPEC_SHRNB, UNSPEC_SHRNT) | |
14547 | (UNSPEC_RSHRNB, UNSPEC_RSHRNT, UNSPEC_SMULHS, UNSPEC_SMULHRS) | |
14548 | UNSPEC_UMULHS, UNSPEC_UMULHRS): New unspecs. | |
14549 | (MULLBT, SHRNB, SHRNT, MULHRS): New int iterators. | |
14550 | (su, r): Handle the unspecs above. | |
14551 | (bt): New int attribute. | |
14552 | * internal-fn.def (IFN_MULHS, IFN_MULHRS): New internal functions. | |
14553 | * internal-fn.c (first_commutative_argument): Commutativity info for | |
14554 | above. | |
14555 | * optabs.def (smulhs_optab, smulhrs_optab, umulhs_optab) | |
14556 | (umulhrs_optab): New optabs. | |
14557 | * doc/md.texi (smulhs$var{m3}, umulhs$var{m3}) | |
14558 | (smulhrs$var{m3}, umulhrs$var{m3}): Documentation for the above. | |
14559 | * tree-vect-patterns.c (vect_recog_mulhs_pattern): New pattern | |
14560 | function. | |
14561 | (vect_vect_recog_func_ptrs): Add it. | |
14562 | ||
14563 | 2019-09-11 Michael Meissner <meissner@linux.ibm.com> | |
14564 | ||
14565 | * config/rs6000/predicates.md (non_add_cint_operand): Simplify the | |
14566 | code. | |
14567 | ||
14568 | 2019-09-11 Nathan Sidwell <nathan@acm.org> | |
14569 | ||
14570 | * tree.h (MARK_TS_TYPE_NON_COMMON): New. | |
14571 | * tree.c (tree_node_structure_for_code): Reformat and alphabetize. | |
14572 | ||
14573 | 2019-09-11 Richard Biener <rguenther@suse.de> | |
14574 | ||
14575 | * lto-opts.c (lto_write_options): Stream -g when debug is enabled. | |
14576 | * lto-wrapper.c (merge_and_complain): Pick up -g. | |
14577 | (append_compiler_options): Likewise. | |
14578 | (run_gcc): Re-instantiate handling -g0 at link-time. | |
14579 | * doc/invoke.texi (flto): Document debug info generation. | |
14580 | ||
14581 | 2019-09-11 Richard Biener <rguenther@suse.de> | |
14582 | ||
14583 | PR tree-optimization/90387 | |
14584 | * vr-values.c (vr_values::extract_range_basic): After inlining | |
14585 | simplify non-constant __builtin_constant_p to false. | |
14586 | ||
14587 | 2019-09-11 Eric Botcazou <ebotcazou@adacore.com> | |
14588 | ||
14589 | PR rtl-optimization/89795 | |
14590 | * rtlanal.c (nonzero_bits1) <SUBREG>: Do not propagate results from | |
14591 | inner REGs to paradoxical SUBREGs if WORD_REGISTER_OPERATIONS is set. | |
14592 | ||
14593 | 2019-09-11 Jakub Jelinek <jakub@redhat.com> | |
14594 | ||
14595 | PR tree-optimization/91723 | |
14596 | * tree-vect-stmts.c (vectorizable_call): Use types_compatible_p check | |
14597 | instead of pointer equality when checking if argument vectypes are | |
14598 | the same. | |
14599 | ||
14600 | PR middle-end/91725 | |
14601 | * match.pd ((A / (1 << B)) -> (A >> B)): Call tree_nonzero_bits instead | |
14602 | of get_nonzero_bits, only call it for integral types. | |
14603 | ||
14604 | 2019-09-11 Richard Biener <rguenther@suse.de> | |
14605 | ||
14606 | Revert | |
14607 | 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com> | |
14608 | ||
14609 | * match.pd: Add flag_unsafe_math_optimizations check | |
14610 | before deciding on the widest type in a binary math operation. | |
14611 | ||
14612 | 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> | |
14613 | ||
14614 | * doc/tm.texi.in: Document that exactly one of CALL_USED_REGISTERS | |
14615 | and CALL_REALLY_USED_REGISTERS must be defined, and that | |
14616 | CALL_REALLY_USED_REGISTERS is preferred. | |
14617 | * doc/tm.texi: Regenerate. | |
14618 | * hard-reg-set.h (target_hard_regs::x_call_really_used_regs): Delete. | |
14619 | (call_really_used_regs): Likewise. | |
14620 | * reginfo.c: Raise an #error if both CALL_USED_REGISTERS and | |
14621 | CALL_REALLY_USED_REGISTERS are defined. | |
14622 | (initial_call_used_regs): Use CALL_REALLY_USED_REGISTERS as the | |
14623 | initial value if defined. | |
14624 | (initial_call_really_used_regs): Delete. | |
14625 | (saved_call_really_used_regs): Likewise. | |
14626 | (CALL_REALLY_USED_REGNO_P): Likewise. | |
14627 | (init_reg_sets): Remove handling of call_really_used_regs. | |
14628 | (save_register_info, restore_register_info, globalize_reg): Likewise. | |
14629 | (init_reg_sets_1): Likewise. Use call_used_regs instead of | |
14630 | CALL_REALLY_USED_REGNO_P. Don't set call_used_regs for registers | |
14631 | outside operand_reg_set. | |
14632 | (fix_register): Don't change call_used_regs if | |
14633 | CALL_REALLY_USED_REGISTERS is defined. | |
14634 | * config/csky/csky.h (CALL_USED_REGISTERS): Delete. | |
14635 | * config/csky/csky.c (get_csky_live_regs): Use call_used_regs | |
14636 | instead of call_really_used_regs. | |
14637 | (csky_conditional_register_usage): Remove the old handling of | |
14638 | call_used_regs and change the handling of call_really_used_regs | |
14639 | to use call_used_regs instead. | |
14640 | * config/ia64/ia64.h (CALL_USED_REGISTERS): Delete. | |
14641 | * config/ia64/ia64.c (fix_range): Don't set call_used_regs when | |
14642 | making a register fixed. | |
14643 | * config/m32r/m32r.h (CALL_USED_REGISTERS): Delete. | |
14644 | * config/m32r/m32r.c (MUST_SAVE_REGISTER): Use call_used_regs | |
14645 | instead of call_really_used_regs. | |
14646 | (m32r_conditional_register_usage): Don't set call_used_regs when | |
14647 | making a register fixed. | |
14648 | * config/mips/mips.h (CALL_USED_REGISTERS): Delete. | |
14649 | * config/mips/mips.c (mips_global_pointer): Use call_used_regs | |
14650 | instead of call_really_used_regs. | |
14651 | (mips_interrupt_extra_call_saved_reg_p): Likewise. | |
14652 | (mips_cfun_call_saved_reg_p): Likewise. | |
14653 | (mips_swap_registers): Remove the old handling of call_used_regs | |
14654 | and change the handling of call_really_used_regs to use call_used_regs | |
14655 | instead. | |
14656 | (mips_conditional_register_usage): Likewise. | |
14657 | * config/mn10300/mn10300.h (CALL_USED_REGISTERS): Delete. | |
14658 | * config/mn10300/mn10300.c (fp_regs_to_save): Use call_used_regs | |
14659 | instead of call_really_used_regs. | |
14660 | (mn10300_get_live_callee_saved_regs): Likewise. | |
14661 | (mn10300_expand_prologue, mn10300_expand_epilogue): Likewise. | |
14662 | (mn10300_conditional_register_usage): Don't set call_used_regs when | |
14663 | making a register fixed. | |
14664 | * config/rs6000/rs6000.h (CALL_USED_REGISTERS): Delete. | |
14665 | * config/rs6000/rs6000.c (rs6000_conditional_register_usage): | |
14666 | Remove the old handling of call_used_regs and change the handling | |
14667 | of call_really_used_regs to use call_used_regs instead. | |
14668 | * config/s390/s390.h (CALL_USED_REGISTERS): Delete. | |
14669 | * config/s390/s390.c (s390_regs_ever_clobbered): Use call_used_regs | |
14670 | instead of call_really_used_regs. | |
14671 | (s390_register_info_gprtofpr, s390_register_info): Likewise. | |
14672 | (s390_hard_regno_rename_ok, s390_hard_regno_scratch_ok): Likewise. | |
14673 | (s390_emit_prologue, s300_set_up_by_prologue): Likewise. | |
14674 | (s390_can_use_return_insn, s390_optimize_prologue): Likewise. | |
14675 | (s390_conditional_register_usage): Remove the old handling of | |
14676 | call_used_regs and change the handling of call_really_used_regs | |
14677 | to use call_used_regs instead. | |
14678 | * config/sh/sh.h (CALL_USED_REGISTERS): Delete. | |
14679 | * config/sh/sh.c (output_stack_adjust, calc_live_regs): Likewise. | |
14680 | (sh_fix_range, reg_unused_after): Likewise. | |
14681 | (sh_conditional_register_usage): Remove the old handling of | |
14682 | call_used_regs and change the handling of call_really_used_regs | |
14683 | to use call_used_regs instead. | |
14684 | * config/sparc/sparc.h (CALL_USED_REGISTERS): Delete. | |
14685 | * config/sparc/sparc.c (sparc_conditional_register_usage): Don't set | |
14686 | call_used_regs when making a register fixed. | |
14687 | * config/tilegx/tilegx.h (CALL_USED_REGISTERS): Delete. | |
14688 | * config/tilegx/tilegx.c (tilegx_conditional_register_usage): Don't set | |
14689 | call_used_regs when making a register fixed. | |
14690 | * config/tilepro/tilepro.h (CALL_USED_REGISTERS): Delete. | |
14691 | * config/tilepro/tilepro.c (tilepro_conditional_register_usage): Don't | |
14692 | set call_used_regs when making a register fixed. | |
14693 | * config/visium/visium.h (CALL_USED_REGISTERS): Delete. | |
14694 | * config/visium/visium.c (visium_conditional_register_usage): Remove | |
14695 | the old handling of call_used_regs and change the handling of | |
14696 | call_really_used_regs to use call_used_regs instead. | |
14697 | ||
14698 | 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> | |
14699 | ||
14700 | * hard-reg-set.h (call_used_regs): Only define if IN_TARGET_CODE. | |
14701 | (call_used_or_fixed_reg_p): Expand definition of call_used_regs. | |
14702 | * reginfo.c (call_used_regs): New macro. | |
14703 | ||
14704 | 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> | |
14705 | ||
14706 | * config/alpha/alpha.c (alpha_compute_frame_layout): Remove redundant | |
14707 | fixed_regs test. | |
14708 | * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue) | |
14709 | (bpf_expand_epilogue): Likewise. | |
14710 | * config/c6x/c6x.c (c6x_save_reg): Likewise. | |
14711 | * config/ft32/ft32.c (ft32_expand_prologue): Likewise. | |
14712 | (ft32_expand_epilogue): Likewise. | |
14713 | * config/i386/i386.c (ix86_save_reg): Likewise. | |
14714 | * config/moxie/moxie.c (moxie_expand_prologue): Likewise. | |
14715 | (moxie_expand_epilogue): Likewise. | |
14716 | * config/tilegx/tilegx.c (need_to_save_reg): Likewise. | |
14717 | * config/tilepro/tilepro.c (need_to_save_reg): Likewise. | |
14718 | * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise. | |
14719 | ||
14720 | 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> | |
14721 | ||
14722 | * hard-reg-set.h (call_used_or_fixed_reg_p): New macro. | |
14723 | * cfgloopanal.c (init_set_costs): Use call_used_or_fixed_reg_p | |
14724 | instead of testing call_used_regs directly. | |
14725 | * config/aarch64/aarch64.c (aarch64_layout_frame): Likewise. | |
14726 | (aarch64_components_for_bb): Likewise. | |
14727 | * config/alpha/alpha.c (alpha_compute_frame_layout): Likewise. | |
14728 | * config/arc/arc.c (arc_must_save_register): Likewise. | |
14729 | (arc_epilogue_uses): Likewise. | |
14730 | * config/arm/arm.c (arm_option_override, use_return_insn): Likewise. | |
14731 | (legitimize_pic_address, callee_saved_reg_p): Likewise. | |
14732 | (arm_compute_save_reg0_reg12_mask): Likewise. | |
14733 | (arm_compute_save_core_reg_mask): Likewise. | |
14734 | (arm_get_vfp_saved_size, arm_compute_frame_layout): Likewise. | |
14735 | (arm_save_coproc_regs, thumb1_extra_regs_pushed): Likewise. | |
14736 | (cmse_nonsecure_entry_clear_before_return): Likewise. | |
14737 | (thumb1_expand_epilogue, arm_expand_epilogue_apcs_frame): Likewise. | |
14738 | (arm_expand_epilogue): Likewise. | |
14739 | * config/avr/avr.c (avr_regs_to_save, sequent_regs_live): Likewise. | |
14740 | (avr_function_arg_advance, avr_find_unused_d_reg): Likewise. | |
14741 | (_reg_unused_after): Likewise. | |
14742 | * config/bfin/bfin.c (must_save_p, expand_prologue_reg_save): Likewise. | |
14743 | (expand_epilogue_reg_restore, n_regs_saved_by_prologue): Likewise. | |
14744 | (add_to_reg, hwloop_optimize): Likewise. | |
14745 | * config/bpf/bpf.c (bpf_compute_frame_layout, bpf_expand_prologue) | |
14746 | (bpf_expand_epilogue): Likewise. | |
14747 | * config/c6x/c6x.c (c6x_save_reg, c6x_regno_reg_class): Likewise. | |
14748 | * config/cr16/cr16.c (cr16_compute_save_regs): Likewise. | |
14749 | * config/cris/cris.c (cris_reg_saved_in_regsave_area): Likewise. | |
14750 | * config/epiphany/epiphany.c (epiphany_init_reg_tables): Likewise. | |
14751 | (epiphany_compute_function_type, MUST_SAVE_REGISTER): Likewise. | |
14752 | (epiphany_output_mi_thunk, epiphany_start_function): Likewise. | |
14753 | * config/fr30/fr30.c (fr30_num_arg_regs): Likewise. | |
14754 | * config/frv/frv.c (frv_stack_info): Likewise. | |
14755 | * config/ft32/ft32.c (ft32_compute_frame): Likewise. | |
14756 | (ft32_expand_prologue, ft32_expand_epilogue): Likewise. | |
14757 | * config/gcn/gcn.c (gcn_compute_frame_offsets): Likewise. | |
14758 | (move_callee_saved_registers): Likewise. | |
14759 | * config/h8300/h8300.c (byte_reg): Likewise. | |
14760 | * config/i386/i386-options.c (ix86_set_current_function): Likewise. | |
14761 | * config/i386/i386.c (ix86_save_reg, ix86_expand_prologue): Likewise. | |
14762 | (ix86_expand_epilogue, x86_order_regs_for_local_alloc): Likewise. | |
14763 | * config/i386/predicates.md (sibcall_memory_operand): Likewise. | |
14764 | * config/ia64/ia64.c (emit_safe_across_calls, find_gr_spill): Likewise. | |
14765 | (next_scratch_gr_reg, ia64_compute_frame_size): Likewise. | |
14766 | * config/iq2000/iq2000.h (MUST_SAVE_REGISTER): Likewise. | |
14767 | * config/lm32/lm32.c (lm32_compute_frame_size): Likewise. | |
14768 | * config/m32c/m32c.c (need_to_save): Likewise. | |
14769 | * config/m68k/m68k.c (m68k_save_reg): Likewise. | |
14770 | * config/mcore/mcore.c (calc_live_regs): Likewise. | |
14771 | * config/microblaze/microblaze.c (microblaze_must_save_register): | |
14772 | Likewise. | |
14773 | * config/mmix/mmix.c (mmix_local_regno): Likewise. | |
14774 | (mmix_initial_elimination_offset, mmix_reorg): Likewise. | |
14775 | (mmix_use_simple_return, mmix_expand_prologue): Likewise. | |
14776 | (mmix_expand_epilogue): Likewise. | |
14777 | * config/moxie/moxie.c (moxie_compute_frame): Likewise. | |
14778 | (moxie_expand_prologue, moxie_expand_epilogue): Likewise. | |
14779 | * config/msp430/msp430.c (msp430_preserve_reg_p): Likewise. | |
14780 | * config/nds32/nds32.h (nds32_16bit_address_type): Likewise. | |
14781 | (NDS32_REQUIRED_CALLEE_SAVED_P): Likewise. | |
14782 | * config/nios2/nios2.c (prologue_saved_reg_p): Likewise. | |
14783 | * config/or1k/or1k.c (callee_saved_regno_p): Likewise. | |
14784 | * config/pa/pa.c (pa_expand_prologue, pa_expand_epilogue): Likewise. | |
14785 | * config/pdp11/pdp11.c (pdp11_saved_regno): Likewise. | |
14786 | * config/pru/pru.c (prologue_saved_reg_p): Likewise. | |
14787 | * config/riscv/riscv.c (riscv_save_reg_p): Likewise. | |
14788 | (riscv_epilogue_uses, riscv_hard_regno_mode_ok): Likewise. | |
14789 | * config/rl78/rl78.c (need_to_save): Likewise. | |
14790 | * config/rs6000/rs6000-logue.c (save_reg_p): Likewise. | |
14791 | (rs6000_stack_info, generate_set_vrsave): Likewise. | |
14792 | (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. | |
14793 | * config/rs6000/rs6000.c (rs6000_debug_reg_print): Likewise. | |
14794 | * config/rx/rx.c (rx_get_stack_layout): Likewise. | |
14795 | * config/s390/s390.c (s390_call_saved_register_used): Likewise. | |
14796 | * config/sh/sh.c (calc_live_regs, sh_output_mi_thunk): Likewise. | |
14797 | * config/sparc/sparc.c (save_global_or_fp_reg_p): Likewise. | |
14798 | (save_local_or_in_reg_p): Likewise. | |
14799 | * config/stormy16/stormy16.c (REG_NEEDS_SAVE): Likewise. | |
14800 | (xstormy16_epilogue_uses): Likewise. | |
14801 | * config/tilegx/tilegx.c (need_to_save_reg): Likewise. | |
14802 | * config/tilepro/tilepro.c (need_to_save_reg): Likewise. | |
14803 | * config/v850/v850.c (compute_register_save_size): Likewise. | |
14804 | * config/vax/vax.c (vax_expand_prologue): Likewise. | |
14805 | * config/visium/visium.c (visium_save_reg_p): Likewise. | |
14806 | * config/xtensa/xtensa.c (xtensa_call_save_reg): Likewise. | |
14807 | * cselib.c (cselib_process_insn): Likewise. | |
14808 | * df-scan.c (df_get_entry_block_def_set): Likewise. | |
14809 | * function.c (aggregate_value_p): Likewise. | |
14810 | * haifa-sched.c (alloc_global_sched_pressure_data): Likewise. | |
14811 | * ira-lives.c (process_bb_node_lives): Likewise. | |
14812 | * ira.c (do_reload): Likewise. | |
14813 | * lra-lives.c (process_bb_lives): Likewise. | |
14814 | * lra-remat.c (lra_remat): Likewise. | |
14815 | * lra.c (lra): Likewise. | |
14816 | * postreload.c (reload_combine_recognize_pattern): Likewise. | |
14817 | (reload_cse_move2add): Likewise. | |
14818 | * recog.c (peep2_find_free_register): Likewise. | |
14819 | * regrename.c (check_new_reg_p): Likewise. | |
14820 | * reload.c (find_equiv_reg): Likewise. | |
14821 | * reload1.c (reload, find_reg): Likewise. | |
14822 | * sel-sched.c (init_hard_regs_data): Likewise. | |
14823 | ||
14824 | 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> | |
14825 | ||
14826 | * config/frv/frv.c (frv_ifcvt_modify_tests): Use | |
14827 | regs_invalidated_by_call & ~fixed_reg_set instead of | |
14828 | call_used_or_fixed_regs & ~fixed_reg_set. | |
14829 | * config/sh/sh.c (output_stack_adjust): Likewise. | |
14830 | ||
14831 | 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> | |
14832 | ||
14833 | * hard-reg-set.h (target_hard_regs::x_call_used_reg_set): Delete. | |
14834 | (call_used_reg_set): Delete. | |
14835 | (call_used_or_fixed_regs): New macro. | |
14836 | * reginfo.c (init_reg_sets_1, globalize_reg): Remove initialization | |
14837 | of call_used_reg_set. | |
14838 | * caller-save.c (setup_save_areas): Use call_used_or_fixed_regs | |
14839 | instead of call_used_regs. | |
14840 | (save_call_clobbered_regs): Likewise. | |
14841 | * cfgcleanup.c (old_insns_match_p): Likewise. | |
14842 | * config/c6x/c6x.c (c6x_call_saved_register_used): Likewise. | |
14843 | * config/epiphany/epiphany.c (epiphany_conditional_register_usage): | |
14844 | Likewise. | |
14845 | * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. | |
14846 | * config/sh/sh.c (output_stack_adjust): Likewise. | |
14847 | * final.c (collect_fn_hard_reg_usage): Likewise. | |
14848 | * ira-build.c (ira_build): Likewise. | |
14849 | * ira-color.c (calculate_saved_nregs): Likewise. | |
14850 | (allocno_reload_assign, calculate_spill_cost): Likewise. | |
14851 | * ira-conflicts.c (ira_build_conflicts): Likewise. | |
14852 | * ira-costs.c (ira_tune_allocno_costs): Likewise. | |
14853 | * ira-lives.c (process_bb_node_lives): Likewise. | |
14854 | * ira.c (setup_reg_renumber): Likewise. | |
14855 | * lra-assigns.c (find_hard_regno_for_1, lra_assign): Likewise. | |
14856 | * lra-constraints.c (need_for_call_save_p): Likewise. | |
14857 | (need_for_split_p, inherit_in_ebb): Likewise. | |
14858 | * lra-lives.c (process_bb_lives): Likewise. | |
14859 | * lra-remat.c (call_used_input_regno_present_p): Likewise. | |
14860 | * postreload.c (reload_combine): Likewise. | |
14861 | * regrename.c (find_rename_reg): Likewise. | |
14862 | * reload1.c (reload_as_needed): Likewise. | |
14863 | * rtlanal.c (find_all_hard_reg_sets): Likewise. | |
14864 | * sel-sched.c (mark_unavailable_hard_regs): Likewise. | |
14865 | * shrink-wrap.c (requires_stack_frame_p): Likewise. | |
14866 | ||
14867 | 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> | |
14868 | ||
14869 | * hard-reg-set.h (target_hard_regs::x_no_caller_save_reg_set): Delete. | |
14870 | (no_caller_save_reg_set): Delete. | |
14871 | * caller-save.c (init_caller_save): Don't initialize it. | |
14872 | * ira-conflicts.c (ira_build_conflicts): Calculate | |
14873 | no_caller_save_reg_set locally from call_used_reg_set and savable_regs. | |
14874 | ||
14875 | 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> | |
14876 | ||
14877 | * hard-reg-set.h (target_hard_regs::x_call_fixed_reg_set): Delete. | |
14878 | (target_hard_regs::x_savable_regs): New field. | |
14879 | (call_fixed_reg_set): Delete. | |
14880 | (savable_regs): New macro, | |
14881 | * reginfo.c (globalize_reg): Don't set call_fixed_reg_set. | |
14882 | (init_reg_sets_1): Likewise. Initialize savable_regs. | |
14883 | * caller-save.c (init_caller_save): Invoke HARD_REGNO_CALLER_SAVE_MODE | |
14884 | for all registers. Set savable_regs instead of call_fixed_reg_set. | |
14885 | (setup_save_areas, save_call_clobbered_regs): Replace uses of | |
14886 | ~call_fixed_reg_set with ~fixed_reg_set & savable_regs. | |
14887 | * config/sh/sh.c (output_stack_adjust): Likewise. | |
14888 | ||
14889 | 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> | |
14890 | ||
14891 | * config/c6x/c6x-protos.h (c6x_set_return_address): Declare. | |
14892 | * config/c6x/c6x.h (REGNO_REG_CLASS): Move implementation to | |
14893 | * config/c6x/c6x.c (c6x_regno_reg_class): ...this new function. | |
14894 | ||
14895 | 2019-09-10 Richard Sandiford <richard.sandiford@arm.com> | |
14896 | ||
14897 | * rtl.h (get_call_rtx_from): Take a const rtx_insn * instead of an rtx. | |
14898 | * rtlanal.c (get_call_rtx_from): Likewise. | |
14899 | * dwarf2out.c (dwarf2out_var_location): Pass the insn rather | |
14900 | than the pattern to get_call_rtx_from. | |
14901 | * config/i386/i386-expand.h (ix86_notrack_prefixed_insn_p): Take | |
14902 | an rtx_insn * instead of an rtx. | |
14903 | * config/i386/i386-expand.c (ix86_notrack_prefixed_insn_p): Likewise. | |
14904 | ||
14905 | 2019-09-10 Martin Liska <mliska@suse.cz> | |
14906 | ||
14907 | * common.opt: Use newly added WarnRemoved. | |
14908 | * config/aarch64/aarch64.opt: Likewise. | |
14909 | * config/arm/arm.opt: Likewise. | |
14910 | * config/i386/i386.opt: Likewise. | |
14911 | * config/ia64/ia64.opt: Likewise. | |
14912 | * config/rs6000/rs6000.opt: Likewise. | |
14913 | * doc/options.texi: Document WarnRemoved properly. | |
14914 | * dwarf2out.c (gen_producer_string): Handle renamed | |
14915 | OPT_SPECIAL_warn_removed. | |
14916 | * lto-opts.c (lto_write_options): Likewise. | |
14917 | * lto-wrapper.c (merge_and_complain): Likewise. | |
14918 | * opts-common.c (decode_cmdline_option): Likewise. | |
14919 | (prune_options): Likewise. | |
14920 | (read_cmdline_option): Likewise. | |
14921 | (control_warning_option): Likewise. | |
14922 | * opts.c (print_filtered_help): Likewise. | |
14923 | * optc-gen.awk: Parse for WarnRemoved and make usage | |
14924 | of Deprecated an error. | |
14925 | * opth-gen.awk: Generate new OPT_SPECIAL_warn_removed. | |
14926 | ||
14927 | 2019-09-10 Arnaud Charlet <charlet@adacore.com> | |
14928 | ||
14929 | * doc/install.texi: Fix syntax for html generation. | |
14930 | ||
14931 | 2019-09-10 Jakub Jelinek <jakub@redhat.com> | |
14932 | ||
14933 | PR middle-end/91680 | |
14934 | * match.pd ((A / (1 << B)) -> (A >> B)): Allow widening cast from | |
14935 | the shift type to type. | |
14936 | ||
14937 | 2019-09-10 Christophe Lyon <christophe.lyon@st.com> | |
14938 | ||
14939 | * config/arm/arm.md (stack_protect_combined_set_insn): Handle | |
14940 | FDPIC mode. | |
14941 | (stack_protect_combined_test_insn): Likewise. | |
14942 | ||
14943 | 2019-09-10 Christophe Lyon <christophe.lyon@st.com> | |
14944 | Mickaël Guêné <mickael.guene@st.com> | |
14945 | ||
14946 | * config/arm/arm.c (arm_load_tp): Add FDPIC support. | |
14947 | * config/arm/arm.md (FDPIC_REGNUM): New constant. | |
14948 | (load_tp_soft_fdpic): New pattern. | |
14949 | (load_tp_soft): Disable in FDPIC mode. | |
14950 | ||
14951 | 2019-09-10 Christophe Lyon <christophe.lyon@st.com> | |
14952 | Mickaël Guêné <mickael.guene@st.com> | |
14953 | ||
14954 | * config/arm/arm.c (tls_reloc): Add TLS_GD32_FDPIC, | |
14955 | TLS_LDM32_FDPIC and TLS_IE32_FDPIC. | |
14956 | (arm_call_tls_get_addr): Add FDPIC support. | |
14957 | (legitimize_tls_address): Likewise. | |
14958 | (arm_emit_tls_decoration): Likewise. | |
14959 | ||
14960 | 2019-09-10 Christophe Lyon <christophe.lyon@st.com> | |
14961 | Mickaël Guêné <mickael.guene@st.com> | |
14962 | ||
14963 | * config/arm/arm.c (arm_asm_trampoline_template): Add FDPIC | |
14964 | support. | |
14965 | (arm_trampoline_init): Likewise. | |
14966 | (arm_trampoline_adjust_address): Likewise. | |
14967 | * config/arm/arm.h (TRAMPOLINE_SIZE): Likewise. | |
14968 | ||
14969 | 2019-09-10 Christophe Lyon <christophe.lyon@st.com> | |
14970 | Mickaël Guêné <mickael.guene@st.com> | |
14971 | ||
14972 | * config/arm/arm.c (arm_fdpic_local_funcdesc_p): New function. | |
14973 | (legitimize_pic_address): Enforce binding rules on function | |
14974 | pointers in FDPIC mode. | |
14975 | (arm_assemble_integer): Likewise. | |
14976 | ||
14977 | 2019-09-10 Christophe Lyon <christophe.lyon@st.com> | |
14978 | Mickaël Guêné <mickael.guene@st.com> | |
14979 | ||
14980 | * config/arm/arm.h (PIC_REGISTER_MAY_NEED_SAVING): New helper. | |
14981 | * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Handle | |
14982 | FDPIC. | |
14983 | ||
14984 | 2019-09-10 Christophe Lyon <christophe.lyon@st.com> | |
14985 | Mickaël Guêné <mickael.guene@st.com> | |
14986 | ||
14987 | * ginclude/unwind-arm-common.h (unwinder_cache): Add reserved5 | |
14988 | field. | |
14989 | ||
14990 | 2019-09-10 Christophe Lyon <christophe.lyon@st.com> | |
14991 | Mickaël Guêné <mickael.guene@st.com> | |
14992 | ||
14993 | * config/arm/arm-c.c (__FDPIC__): Define new pre-processor macro | |
14994 | in FDPIC mode. | |
14995 | * config/arm/arm-protos.h (arm_load_function_descriptor): Declare | |
14996 | new function. | |
14997 | * config/arm/arm.c (arm_option_override): Define pic register to | |
14998 | FDPIC_REGNUM. | |
14999 | (arm_function_ok_for_sibcall): Disable sibcall optimization if we | |
15000 | have no decl or go through PLT. | |
15001 | (calculate_pic_address_constant): New function. | |
15002 | (legitimize_pic_address): Call calculate_pic_address_constant. | |
15003 | (arm_load_pic_register): Handle TARGET_FDPIC. | |
15004 | (arm_is_segment_info_known): New function. | |
15005 | (arm_pic_static_addr): Add support for FDPIC. | |
15006 | (arm_load_function_descriptor): New function. | |
15007 | (arm_emit_call_insn): Add support for FDPIC. | |
15008 | (arm_assemble_integer): Add support for FDPIC. | |
15009 | * config/arm/arm.h (PIC_OFFSET_TABLE_REG_CALL_CLOBBERED): | |
15010 | Define. (FDPIC_REGNUM): New define. | |
15011 | * config/arm/arm.md (call): Add support for FDPIC. | |
15012 | (call_value): Likewise. | |
15013 | (restore_pic_register_after_call): New pattern. | |
15014 | (untyped_call): Disable if FDPIC. | |
15015 | (untyped_return): Likewise. | |
15016 | * config/arm/unspecs.md (UNSPEC_PIC_RESTORE): New. | |
15017 | ||
15018 | 2019-09-10 Christophe Lyon <christophe.lyon@st.com> | |
15019 | Mickaël Guêné <mickael.guene@st.com> | |
15020 | ||
15021 | * config.gcc: Handle arm*-*-uclinuxfdpiceabi. | |
15022 | * config/arm/bpabi.h (TARGET_FDPIC_ASM_SPEC): New. | |
15023 | (SUBTARGET_EXTRA_ASM_SPEC): Use TARGET_FDPIC_ASM_SPEC. | |
15024 | * config/arm/linux-eabi.h (FDPIC_CC1_SPEC): New. | |
15025 | (CC1_SPEC): Use FDPIC_CC1_SPEC. | |
15026 | (MUSL_DYNAMIC_LINKER): Add -fdpic suffix when needed. | |
15027 | * config/arm/uclinuxfdpiceabi.h: New file. | |
15028 | ||
15029 | 2019-09-10 Christophe Lyon <christophe.lyon@st.com> | |
15030 | ||
15031 | * config.gcc: Handle *-*-uclinuxfdpiceabi. | |
15032 | ||
15033 | 2019-09-10 Christophe Lyon <christophe.lyon@st.com> | |
15034 | Mickaël Guêné <mickael.guene@st.com> | |
15035 | ||
15036 | * config/arm/arm.opt: Add -mfdpic option. | |
15037 | * doc/invoke.texi: Add documentation for -mfdpic. | |
15038 | ||
15039 | 2019-09-09 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
15040 | ||
15041 | * expmed.c (extract_bit_field): Update function comment | |
15042 | regarding alt_rtl. | |
15043 | * expr.c (expand_expr_real): Update function comment | |
15044 | regarding alt_rtl. | |
15045 | (expand_misaligned_mem_ref): New helper function. | |
15046 | (expand_expr_real_2): Use expand_misaligned_mem_ref. | |
15047 | Remove duplicate assignment to "base" at case MEM_REF. | |
15048 | Remove a shadowed variable "unsignedp" at case VCE. | |
15049 | ||
15050 | 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> | |
15051 | ||
15052 | * regset.h (regs_invalidated_by_call_regset): Delete. | |
15053 | (fixed_reg_set_regset): Likewise. | |
15054 | * reginfo.c (regs_invalidated_by_call_regset): Likewise. | |
15055 | (fixed_reg_set_regset, persistent_obstack): Likewise. | |
15056 | (init_reg_sets_1, globalize_reg): Update accordingly. | |
15057 | * df.h (df_print_regset, df_print_word_regset): Take a const_bitmap | |
15058 | instead of a bitmap. | |
15059 | * df-core.c (df_print_regset, df_print_word_regset): Likewise. | |
15060 | * df-problems.c (df_rd_local_compute): Use regs_invalidated_by_call | |
15061 | instead of regs_invalidated_by_call_regset. | |
15062 | (df_lr_confluence_n, df_md_confluence_n): Likewise. | |
15063 | * df-scan.c (df_scan_start_dump): Likewise. | |
15064 | * dse.c (copy_fixed_regs): Likewise. | |
15065 | * config/sh/sh.c (sh_find_equiv_gbr_addr): Likewise. | |
15066 | ||
15067 | 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> | |
15068 | ||
15069 | * array-traits.h: New file. | |
15070 | * coretypes.h (array_traits, bitmap_view): New types. | |
15071 | * bitmap.h: Include "array-traits.h" | |
15072 | (bitmap_bit_p): Take a const_bitmap instead of a bitmap. | |
15073 | (base_bitmap_view, bitmap_view): New classes. | |
15074 | * bitmap.c (bitmap_bit_p): Take a const_bitmap instead of a bitmap. | |
15075 | * hard-reg-set.h: Include array-traits.h. | |
15076 | (array_traits<HARD_REG_SET>): New struct. | |
15077 | * regset.h (IOR_REG_SET_HRS): New macro. | |
15078 | * loop-iv.c (simplify_using_initial_values): Use IOR_REG_SET_HRS | |
15079 | rather than iterating over each hard register. | |
15080 | * sched-deps.c (sched_analyze_insn): Likewise. | |
15081 | * sel-sched-ir.c (setup_id_implicit_regs): Likewise. | |
15082 | ||
15083 | 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> | |
15084 | ||
15085 | * ira-int.h (ior_hard_reg_conflicts): Take a const_hard_reg_set | |
15086 | instead of a HARD_REG_SET *. | |
15087 | * ira-build.c (ior_hard_reg_conflicts): Likewise. | |
15088 | (ira_build): Update call accordingly. | |
15089 | * ira-emit.c (add_range_and_copies_from_move_list): Likewise. | |
15090 | ||
15091 | 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> | |
15092 | ||
15093 | * hard-reg-set.h (HARD_REG_SET::operator==): New function. | |
15094 | (HARD_REG_SET::operator!=): Likewise. | |
15095 | (hard_reg_set_equal_p): Delete. | |
15096 | * cfgcleanup.c (old_insns_match_p): Use == instead of | |
15097 | hard_reg_set_equal_p and != instead of !hard_reg_set_equal_p. | |
15098 | * ira-color.c (allocno_hard_regs_hasher::equal): Likewise. | |
15099 | (add_allocno_hard_regs_to_forest): Likewise. | |
15100 | (setup_allocno_available_regs_num): Likewise. | |
15101 | * ira.c (setup_pressure_classes): Likewise. | |
15102 | (setup_allocno_and_important_classes): Likewise. | |
15103 | (setup_reg_class_relations): Likewise. | |
15104 | * lra-lives.c (process_bb_lives): Likewise. | |
15105 | * reg-stack.c (change_stack, convert_regs_1): Likewise. | |
15106 | ||
15107 | 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> | |
15108 | ||
15109 | * hard-reg-set.h (IOR_COMPL_HARD_REG_SET): Delete. | |
15110 | * config/aarch64/cortex-a57-fma-steering.c (rename_single_chain): | |
15111 | Use "|~" instead of IOR_COMPL_HARD_REG_SET. | |
15112 | * config/aarch64/falkor-tag-collision-avoidance.c (init_unavailable): | |
15113 | Likewise. | |
15114 | * ira-build.c (ira_create_object, ira_set_allocno_class): Likewise. | |
15115 | * ira.c (setup_reg_renumber): Likewise. | |
15116 | * lra-assigns.c (find_hard_regno_for_1): Likewise. | |
15117 | * regrename.c (regrename_find_superclass): Likewise. | |
15118 | * reload1.c (find_reg): Likewise. | |
15119 | ||
15120 | 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> | |
15121 | ||
15122 | * hard-reg-set.h (AND_COMPL_HARD_REG_SET): Delete. | |
15123 | * caller-save.c (setup_save_areas): Use "&~" instead of | |
15124 | AND_COMPL_HARD_REG_SET. | |
15125 | (save_call_clobbered_regs): Likewise. | |
15126 | * config/epiphany/epiphany.c (epiphany_conditional_register_usage): | |
15127 | Likewise. | |
15128 | * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. | |
15129 | * config/gcn/gcn.c (gcn_md_reorg): Likewise. | |
15130 | * config/i386/i386.c (ix86_conditional_register_usage): Likewise. | |
15131 | * config/mips/mips.c (mips_class_max_nregs): Likewise. | |
15132 | (mips_conditional_register_usage): Likewise. | |
15133 | * config/sh/sh.c (output_stack_adjust): Likewise. | |
15134 | * ira-color.c (form_allocno_hard_regs_nodes_forest): Likewise. | |
15135 | (setup_profitable_hard_regs): Likewise. | |
15136 | (get_conflict_and_start_profitable_regs): Likewise. | |
15137 | * ira-conflicts.c (print_allocno_conflicts): Likewise. | |
15138 | (ira_build_conflicts): Likewise. | |
15139 | * ira-costs.c (restrict_cost_classes): Likewise. | |
15140 | (setup_regno_cost_classes_by_aclass): Likewise. | |
15141 | * ira-lives.c (process_bb_node_lives): Likewise. | |
15142 | * ira.c (setup_class_hard_regs, setup_reg_subclasses): Likewise. | |
15143 | (setup_class_subset_and_memory_move_costs, setup_pressure_classes) | |
15144 | (setup_allocno_and_important_classes, setup_class_translate_array) | |
15145 | (setup_reg_class_relations, setup_prohibited_class_mode_regs): | |
15146 | Likewise. | |
15147 | * lra-assigns.c (find_hard_regno_for_1): Likewise. | |
15148 | * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise. | |
15149 | (process_alt_operands, inherit_in_ebb): Likewise. | |
15150 | * lra-eliminations.c (update_reg_eliminate): Likewise. | |
15151 | * lra-lives.c (process_bb_lives): Likewise. | |
15152 | * reload1.c (update_eliminables_and_spill, reload_as_needed): Likewise. | |
15153 | * resource.c (find_dead_or_set_registers): Likewise. | |
15154 | (mark_target_live_regs): Likewise. | |
15155 | * sched-deps.c (get_implicit_reg_pending_clobbers): Likewise. | |
15156 | * sel-sched.c (mark_unavailable_hard_regs): Likewise. | |
15157 | (implicit_clobber_conflict_p): Likewise. | |
15158 | * shrink-wrap.c (requires_stack_frame_p): Likewise. | |
15159 | (try_shrink_wrapping): Likewise. | |
15160 | ||
15161 | 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> | |
15162 | ||
15163 | * hard-reg-set.h (HARD_REG_SET::operator|): New function. | |
15164 | (HARD_REG_SET::operator|=): Likewise. | |
15165 | (IOR_HARD_REG_SET): Delete. | |
15166 | * config/gcn/gcn.c (gcn_md_reorg): Use "|" instead of | |
15167 | IOR_HARD_REG_SET. | |
15168 | * config/m32c/m32c.c (m32c_register_move_cost): Likewise. | |
15169 | * config/s390/s390.c (s390_adjust_loop_scan_osc): Likewise. | |
15170 | * final.c (collect_fn_hard_reg_usage): Likewise. | |
15171 | * hw-doloop.c (scan_loop, optimize_loop): Likewise. | |
15172 | * ira-build.c (merge_hard_reg_conflicts): Likewise. | |
15173 | (ior_hard_reg_conflicts, create_cap_allocno, propagate_allocno_info) | |
15174 | (propagate_some_info_from_allocno): Likewise. | |
15175 | (copy_info_to_removed_store_destinations): Likewise. | |
15176 | * ira-color.c (add_allocno_hard_regs_to_forest, assign_hard_reg) | |
15177 | (allocno_reload_assign, ira_reassign_pseudos): Likewise. | |
15178 | (fast_allocation): Likewise. | |
15179 | * ira-conflicts.c (ira_build_conflicts): Likewise. | |
15180 | * ira-lives.c (make_object_dead, process_single_reg_class_operands) | |
15181 | (process_bb_node_lives): Likewise. | |
15182 | * ira.c (setup_pressure_classes, setup_reg_class_relations): Likewise. | |
15183 | * lra-assigns.c (find_hard_regno_for_1): Likewise. | |
15184 | (setup_live_pseudos_and_spill_after_risky_transforms): Likewise. | |
15185 | * lra-constraints.c (process_alt_operands, inherit_in_ebb): Likewise. | |
15186 | * lra-eliminations.c (spill_pseudos, update_reg_eliminate): Likewise. | |
15187 | * lra-lives.c (mark_pseudo_dead, check_pseudos_live_through_calls) | |
15188 | (process_bb_lives): Likewise. | |
15189 | * lra-spills.c (assign_spill_hard_regs): Likewise. | |
15190 | * postreload.c (reload_combine): Likewise. | |
15191 | * reginfo.c (init_reg_sets_1): Likewise. | |
15192 | * regrename.c (merge_overlapping_regs, find_rename_reg) | |
15193 | (merge_chains): Likewise. | |
15194 | * reload1.c (maybe_fix_stack_asms, order_regs_for_reload, find_reg) | |
15195 | (find_reload_regs, finish_spills, choose_reload_regs_init) | |
15196 | (emit_reload_insns): Likewise. | |
15197 | * reorg.c (redundant_insn): Likewise. | |
15198 | * resource.c (find_dead_or_set_registers, mark_set_resources) | |
15199 | (mark_target_live_regs): Likewise. | |
15200 | * rtlanal.c (find_all_hard_reg_sets): Likewise. | |
15201 | * sched-deps.c (sched_analyze_insn): Likewise. | |
15202 | * sel-sched.c (mark_unavailable_hard_regs): Likewise. | |
15203 | (find_best_reg_for_expr): Likewise. | |
15204 | * shrink-wrap.c (try_shrink_wrapping): Likewise. | |
15205 | ||
15206 | 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> | |
15207 | ||
15208 | * hard-reg-set.h (HARD_REG_SET::operator&): New function. | |
15209 | (HARD_REG_SET::operator&): Likewise. | |
15210 | (AND_HARD_REG_SET): Delete. | |
15211 | * caller-save.c (setup_save_areas): Use "&" instead of | |
15212 | AND_HARD_REG_SET. | |
15213 | (save_call_clobbered_regs): Likewise. | |
15214 | * config/gcn/gcn.c (gcn_md_reorg): Likewise. | |
15215 | * config/m32c/m32c.c (reduce_class): Likewise. | |
15216 | * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise. | |
15217 | * final.c (get_call_reg_set_usage): Likewise. | |
15218 | * ira-color.c (add_allocno_hard_regs_to_forest): Likewise. | |
15219 | (setup_left_conflict_sizes_p): Likewise. | |
15220 | * ira-conflicts.c (print_allocno_conflicts): Likewise. | |
15221 | (ira_build_conflicts): Likewise. | |
15222 | * ira-costs.c (restrict_cost_classes): Likewise. | |
15223 | * ira.c (setup_stack_reg_pressure_class, setup_class_translate_array) | |
15224 | (setup_reg_class_relations): Likewise. | |
15225 | * reginfo.c (init_reg_sets_1, record_subregs_of_mode): Likewise. | |
15226 | * reload1.c (maybe_fix_stack_asms, finish_spills): Likewise. | |
15227 | * resource.c (find_dead_or_set_registers): Likewise. | |
15228 | * sel-sched.c (mark_unavailable_hard_regs): Likewise. | |
15229 | ||
15230 | 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> | |
15231 | ||
15232 | * hard-reg-set.h (HARD_REG_SET::operator~): New function. | |
15233 | (COMPL_HARD_REG_SET): Delete. | |
15234 | * config/c6x/c6x.c (c6x_call_saved_register_used): Use ~ instead | |
15235 | of COMPL_HARD_REG_SET. | |
15236 | (try_rename_operands): Likewise. | |
15237 | * config/sh/sh.c (push_regs): Likewise. | |
15238 | * lra-assigns.c (find_hard_regno_for_1): Likewise. | |
15239 | * lra-constraints.c (contains_reg_p): Likewise. | |
15240 | * reload1.c (finish_spills, choose_reload_regs_init): Likewise. | |
15241 | ||
15242 | 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> | |
15243 | ||
15244 | * hard-reg-set.h (COPY_HARD_REG_SET): Delete. | |
15245 | * caller-save.c (save_call_clobbered_regs): Use assignment instead | |
15246 | of COPY_HARD_REG_SET. | |
15247 | * config/epiphany/epiphany.c (epiphany_compute_frame_size): Likewise. | |
15248 | (epiphany_conditional_register_usage): Likewise. | |
15249 | * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. | |
15250 | * config/gcn/gcn.c (gcn_md_reorg): Likewise. | |
15251 | * config/ia64/ia64.c (ia64_compute_frame_size): Likewise. | |
15252 | * config/m32c/m32c.c (m32c_register_move_cost): Likewise. | |
15253 | * config/m68k/m68k.c (m68k_conditional_register_usage): Likewise. | |
15254 | * config/mips/mips.c (mips_class_max_nregs): Likewise. | |
15255 | * config/pdp11/pdp11.c (pdp11_conditional_register_usage): Likewise. | |
15256 | * config/rs6000/rs6000.c (rs6000_register_move_cost): Likewise. | |
15257 | * config/sh/sh.c (output_stack_adjust): Likewise. | |
15258 | * final.c (collect_fn_hard_reg_usage): Likewise. | |
15259 | (get_call_reg_set_usage): Likewise. | |
15260 | * ira-build.c (ira_create_object, remove_low_level_allocnos) | |
15261 | (ira_flattening): Likewise. | |
15262 | * ira-color.c (add_allocno_hard_regs, add_allocno_hard_regs_to_forest) | |
15263 | (setup_left_conflict_sizes_p, setup_profitable_hard_regs) | |
15264 | (get_conflict_and_start_profitable_regs, allocno_reload_assign) | |
15265 | (ira_reassign_pseudos): Likewise. | |
15266 | * ira-conflicts.c (print_allocno_conflicts): Likewise. | |
15267 | (ira_build_conflicts): Likewise. | |
15268 | * ira-costs.c (restrict_cost_classes): Likewise. | |
15269 | (setup_regno_cost_classes_by_aclass): Likewise. | |
15270 | * ira.c (setup_class_hard_regs, setup_alloc_regs): Likewise. | |
15271 | (setup_reg_subclasses, setup_class_subset_and_memory_move_costs) | |
15272 | (setup_stack_reg_pressure_class, setup_pressure_classes) | |
15273 | (setup_allocno_and_important_classes, setup_class_translate_array) | |
15274 | (setup_reg_class_relations, setup_prohibited_class_mode_regs) | |
15275 | (ira_setup_eliminable_regset): Likewise. | |
15276 | * lra-assigns.c (find_hard_regno_for_1): Likewise. | |
15277 | (setup_live_pseudos_and_spill_after_risky_transforms): Likewise. | |
15278 | * lra-constraints.c (prohibited_class_reg_set_mode_p): Likewise. | |
15279 | (process_alt_operands, inherit_in_ebb): Likewise. | |
15280 | * lra-lives.c (process_bb_lives): Likewise. | |
15281 | * lra-spills.c (assign_spill_hard_regs): Likewise. | |
15282 | * lra.c (lra): Likewise. | |
15283 | * mode-switching.c (new_seginfo): Likewise. | |
15284 | * postreload.c (reload_combine): Likewise. | |
15285 | * reg-stack.c (straighten_stack): Likewise. | |
15286 | * reginfo.c (save_register_info, restore_register_info): Likewise. | |
15287 | (init_reg_sets_1, record_subregs_of_mode): Likewise | |
15288 | * regrename.c (create_new_chain, rename_chains): Likewise. | |
15289 | * reload1.c (order_regs_for_reload, find_reg): Likewise. | |
15290 | (find_reload_regs): Likewise. | |
15291 | * resource.c (find_dead_or_set_registers): Likewise. | |
15292 | (mark_target_live_regs): Likewise. | |
15293 | * sel-sched.c (mark_unavailable_hard_regs): Likewise. | |
15294 | ||
15295 | 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> | |
15296 | ||
15297 | * rtl.h (CALL_INSN_FUNCTION_USAGE): Document what SETs mean. | |
15298 | (note_pattern_stores): Declare. | |
15299 | (note_stores): Take an rtx_insn *. | |
15300 | * rtlanal.c (set_of): Use note_pattern_stores instead of note_stores. | |
15301 | (find_all_hard_reg_sets): Pass the insn rather than its pattern to | |
15302 | note_stores. Remove explicit handling of CALL_INSN_FUNCTION_USAGE. | |
15303 | (note_stores): Take an rtx_insn * as argument and process | |
15304 | CALL_INSN_FUNCTION_USAGE. Rename old function to... | |
15305 | (note_pattern_stores): ...this. | |
15306 | (find_first_parameter_load): Pass the insn rather than | |
15307 | its pattern to note_stores. | |
15308 | * alias.c (memory_modified_in_insn_p, init_alias_analysis): Likewise. | |
15309 | * caller-save.c (setup_save_areas, save_call_clobbered_regs) | |
15310 | (insert_one_insn): Likewise. | |
15311 | * combine.c (combine_instructions): Likewise. | |
15312 | (likely_spilled_retval_p): Likewise. | |
15313 | (try_combine): Use note_pattern_stores instead of note_stores. | |
15314 | (record_dead_and_set_regs): Pass the insn rather than its pattern | |
15315 | to note_stores. | |
15316 | (reg_dead_at_p): Likewise. | |
15317 | * config/bfin/bfin.c (workaround_speculation): Likewise. | |
15318 | * config/c6x/c6x.c (maybe_clobber_cond): Likewise. Take an rtx_insn * | |
15319 | rather than an rtx. | |
15320 | * config/frv/frv.c (frv_registers_update): Use note_pattern_stores | |
15321 | instead of note_stores. | |
15322 | (frv_optimize_membar_local): Pass the insn rather than its pattern | |
15323 | to note_stores. | |
15324 | * config/gcn/gcn.c (gcn_md_reorg): Likewise. | |
15325 | * config/i386/i386.c (ix86_avx_u128_mode_after): Likewise. | |
15326 | * config/mips/mips.c (vr4130_true_reg_dependence_p): Likewise. | |
15327 | (r10k_needs_protection_p, mips_sim_issue_insn): Likewise. | |
15328 | (mips_reorg_process_insns): Likewise. | |
15329 | * config/s390/s390.c (s390_regs_ever_clobbered): Likewise. | |
15330 | * config/sh/sh.c (flow_dependent_p): Likewise. Take rtx_insn *s | |
15331 | rather than rtxes. | |
15332 | * cse.c (delete_trivially_dead_insns): Pass the insn rather than | |
15333 | its pattern to note_stores. | |
15334 | * cselib.c (cselib_record_sets): Use note_pattern_stores instead | |
15335 | of note_stores. | |
15336 | * dce.c (mark_nonreg_stores): Remove the "body" parameter and pass | |
15337 | the insn to note_stores. | |
15338 | (prescan_insns_for_dce): Update call accordingly. | |
15339 | * ddg.c (mem_write_insn_p): Pass the insn rather than its pattern | |
15340 | to note_stores. | |
15341 | * df-problems.c (can_move_insns_across): Likewise. | |
15342 | * dse.c (emit_inc_dec_insn_before, replace_read): Likewise. | |
15343 | * function.c (assign_parm_setup_reg): Likewise. | |
15344 | * gcse-common.c (record_last_mem_set_info_common): Likewise. | |
15345 | * gcse.c (load_killed_in_block_p, compute_hash_table_work): Likewise. | |
15346 | (single_set_gcse): Likewise. | |
15347 | * ira.c (validate_equiv_mem): Likewise. | |
15348 | (update_equiv_regs): Use note_pattern_stores rather than note_stores | |
15349 | for no_equiv. | |
15350 | * loop-doloop.c (doloop_optimize): Pass the insn rather than its | |
15351 | pattern to note_stores. | |
15352 | * loop-invariant.c (calculate_loop_reg_pressure): Likewise. | |
15353 | * loop-iv.c (simplify_using_initial_values): Likewise. | |
15354 | * mode-switching.c (optimize_mode_switching): Likewise. | |
15355 | * optabs.c (emit_libcall_block_1): Likewise. | |
15356 | (expand_atomic_compare_and_swap): Likewise. | |
15357 | * postreload-gcse.c (load_killed_in_block_p): Likewise. | |
15358 | (record_opr_changes): Likewise. Remove explicit handling of | |
15359 | CALL_INSN_FUNCTION_USAGE. | |
15360 | * postreload.c (reload_combine, reload_cse_move2add): Likewise. | |
15361 | * regcprop.c (kill_clobbered_values): Likewise. | |
15362 | (copyprop_hardreg_forward_1): Pass the insn rather than its pattern | |
15363 | to note_stores. | |
15364 | * regrename.c (build_def_use): Likewise. | |
15365 | * reload1.c (reload): Use note_pattern_stores instead of note_stores | |
15366 | for mark_not_eliminable. | |
15367 | (reload_as_needed): Pass the insn rather than its pattern | |
15368 | to note_stores. | |
15369 | (emit_output_reload_insns): Likewise. | |
15370 | * resource.c (mark_target_live_regs): Likewise. | |
15371 | * sched-deps.c (init_insn_reg_pressure_info): Likewise. | |
15372 | * sched-rgn.c (sets_likely_spilled): Use note_pattern_stores | |
15373 | instead of note_stores. | |
15374 | * shrink-wrap.c (try_shrink_wrapping): Pass the insn rather than | |
15375 | its pattern to note_stores. | |
15376 | * stack-ptr-mod.c (pass_stack_ptr_mod::execute): Likewise. | |
15377 | * var-tracking.c (adjust_insn, add_with_sets): Likewise. | |
15378 | ||
15379 | 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> | |
15380 | ||
15381 | * hard-reg-set.h (HARD_REG_SET): Define using a typedef rather | |
15382 | than a #define. Use a structure rather than an array as the | |
15383 | fallback definition. Remove special cases for low array sizes. | |
15384 | (const_hard_reg_set): New typedef. | |
15385 | (hard_reg_set_subset_p): Use it instead of "const HARD_REG_SET". | |
15386 | (hard_reg_set_equal_p, hard_reg_set_intersect_p): Likewise. | |
15387 | (hard_reg_set_empty_p): Likewise. | |
15388 | (SET_HARD_REG_BIT): Use a function rather than a macro to | |
15389 | handle the case in which HARD_REG_SET is a structure. | |
15390 | (CLEAR_HARD_REG_BIT, TEST_HARD_REG_BIT, CLEAR_HARD_REG_SET) | |
15391 | (SET_HARD_REG_SET, COPY_HARD_REG_SET, COMPL_HARD_REG_SET) | |
15392 | (AND_HARD_REG_SET, AND_COMPL_HARD_REG_SET, IOR_HARD_REG_SET) | |
15393 | (IOR_COMPL_HARD_REG_SET): Likewise. | |
15394 | (hard_reg_set_iterator::pset): Constify the pointer target. | |
15395 | (hard_reg_set_iter_init): Take a const_hard_reg_set instead | |
15396 | of a "const HARD_REG_SET". Update the handling of non-integer | |
15397 | HARD_REG_SETs. | |
15398 | * recog.h: Test HARD_CONST instead of CLEAR_HARD_REG_SET. | |
15399 | * reload.h: Likewise. | |
15400 | * rtl.h (choose_hard_reg_mode): Remove unnecessary line break. | |
15401 | * regs.h (in_hard_reg_set_p): Take a const_hard_reg_set instead | |
15402 | of a "const HARD_REG_SET". | |
15403 | (overlaps_hard_reg_set_p, range_overlaps_hard_reg_set_p): Likewise. | |
15404 | (range_in_hard_reg_set_p): Likewise. | |
15405 | * ira-costs.c (restrict_cost_classes): Likewise. | |
15406 | * shrink-wrap.c (move_insn_for_shrink_wrap): Likewise. | |
15407 | * config/epiphany/resolve-sw-modes.c (pass_resolve_sw_modes::execute): | |
15408 | Pass a NO_REGS HARD_REG_SET rather than NULL to emit_set_fp_mode. | |
15409 | * config/ia64/ia64.c (rws_insn): In the CHECKING_P version, | |
15410 | use unsigned HOST_WIDEST_FAST_INT rather than HARD_REG_ELT_TYPE. | |
15411 | (rws_insn_set, rws_insn_test): In the CHECKING_P version, | |
15412 | take an unsigned int and open-code the HARD_REG_SET operations. | |
15413 | ||
15414 | 2019-09-09 Richard Sandiford <richard.sandiford@arm.com> | |
15415 | ||
15416 | * Makefile.in (OBJS): Remove bt-load.o. | |
15417 | * doc/invoke.texi (fbranch-target-load-optimize): Delete. | |
15418 | (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise. | |
15419 | * common.opt (fbranch-target-load-optimize): Mark as Ignore and | |
15420 | document that the option no longer does anything. | |
15421 | (fbranch-target-load-optimize2, fbtr-bb-exclusive): Likewise. | |
15422 | * target.def (branch_target_register_class): Delete. | |
15423 | (branch_target_register_callee_saved): Likewise. | |
15424 | * doc/tm.texi.in (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise. | |
15425 | (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise. | |
15426 | * doc/tm.texi: Regenerate. | |
15427 | * tree-pass.h (make_pass_branch_target_load_optimize1): Delete. | |
15428 | (make_pass_branch_target_load_optimize2): Likewise. | |
15429 | * passes.def (pass_branch_target_load_optimize1): Likewise. | |
15430 | (pass_branch_target_load_optimize2): Likewise. | |
15431 | * targhooks.h (default_branch_target_register_class): Likewise. | |
15432 | * targhooks.c (default_branch_target_register_class): Likewise. | |
15433 | * opt-suggestions.c (test_completion_valid_options): Remove | |
15434 | -fbtr-bb-exclusive from the list of test options. | |
15435 | * bt-load.c: Remove. | |
15436 | ||
15437 | 2019-09-09 Barnaby Wilks <barnaby.wilks@arm.com> | |
15438 | ||
15439 | * match.pd: Add flag_unsafe_math_optimizations check | |
15440 | before deciding on the widest type in a binary math operation. | |
15441 | ||
15442 | 2019-09-09 Martin Liska <mliska@suse.cz> | |
15443 | ||
15444 | * config/i386/i386.opt: Update comment of removed | |
15445 | options that are preserved only for backward | |
15446 | compatibility. | |
15447 | ||
15448 | 2019-09-09 Jakub Jelinek <jakub@redhat.com> | |
15449 | ||
15450 | PR target/87853 | |
15451 | * config/i386/emmintrin.h (_mm_cmpeq_epi8): Use casts to __v16qi | |
15452 | instead of __v16qs. | |
15453 | ||
15454 | PR target/91704 | |
15455 | * config/i386/avxintrin.h (__v32qs): New typedef. | |
15456 | * config/i386/avx2intrin.h (_mm256_cmpgt_epi8): Use casts to __v32qs | |
15457 | instead of __v32qi. | |
15458 | ||
15459 | 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com> | |
15460 | ||
15461 | * doc/invoke.texi (Option Summary): Cover eBPF. | |
15462 | (eBPF Options): New section. | |
15463 | * doc/extend.texi (BPF Built-in Functions): Likewise. | |
15464 | (BPF Kernel Helpers): Likewise. | |
15465 | ||
15466 | 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com> | |
15467 | ||
15468 | * config.gcc: Support for bpf-*-* targets. | |
15469 | * common/config/bpf/bpf-common.c: New file. | |
15470 | * config/bpf/t-bpf: Likewise. | |
15471 | * config/bpf/predicates.md: Likewise. | |
15472 | * config/bpf/constraints.md: Likewise. | |
15473 | * config/bpf/bpf.opt: Likewise. | |
15474 | * config/bpf/bpf.md: Likewise. | |
15475 | * config/bpf/bpf.h: Likewise. | |
15476 | * config/bpf/bpf.c: Likewise. | |
15477 | * config/bpf/bpf-protos.h: Likewise. | |
15478 | * config/bpf/bpf-opts.h: Likewise. | |
15479 | * config/bpf/bpf-helpers.h: Likewise. | |
15480 | * config/bpf/bpf-helpers.def: Likewise. | |
15481 | ||
15482 | 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com> | |
15483 | ||
15484 | * doc/sourcebuild.texi (Effective-Target Keywords): Document | |
15485 | indirect_calls. | |
15486 | ||
15487 | 2019-09-09 Jose E. Marchesi <jose.marchesi@oracle.com> | |
15488 | ||
15489 | * opt-functions.awk (integer_range_info): Make sure values are in | |
15490 | numeric context before operating with them. | |
15491 | ||
15492 | 2019-09-08 Segher Boessenkool <segher@kernel.crashing.org> | |
15493 | ||
15494 | * genemit.c (gen_split): Print the filename and line number where the | |
15495 | splitter (or peephole2) was defined, to the dump file. | |
15496 | ||
15497 | 2019-09-07 Jakub Jelinek <jakub@redhat.com> | |
15498 | ||
15499 | PR tree-optimization/91665 | |
15500 | * tree-vect-loop.c (vectorizable_reduction): Punt if base has type | |
15501 | incompatible with the type of PHI result. | |
15502 | ||
15503 | 2019-09-07 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
15504 | ||
15505 | PR target/91684 | |
15506 | * config/arm/arm.c (arm_block_set_aligned_non_vect): Use | |
15507 | gen_unaligned_storedi for 4-byte aligned addresses. | |
15508 | ||
15509 | 2019-09-06 Jim Wilson <jimw@sifive.com> | |
15510 | ||
15511 | * config/riscv/riscv.c (riscv_option_override): Revert 2019-08-30 | |
15512 | change. | |
15513 | ||
15514 | 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org> | |
15515 | ||
15516 | * config/rs6000/rs6000.md (unspec): Delete UNSPEC_MV_CR_OV. | |
15517 | ||
15518 | 2019-09-06 Segher Boessenkool <segher@kernel.crashing.org> | |
15519 | ||
15520 | * config/rs6000/rs6000.c (rs6000_rtx_costs) <case UNSPEC>: Delete. | |
15521 | * config/rs6000/rs6000.md (unspec): Delete UNSPEC_FRSP. | |
15522 | ||
15523 | 2019-09-06 Uroš Bizjak <ubizjak@gmail.com> | |
15524 | ||
15525 | PR target/91654 | |
15526 | * config/i386/x86-tune-costs.h (skylake_cost): Raise the | |
15527 | cost of SSE->integer and integer->SSE moves from 2 to 6. | |
15528 | (core_cost): Ditto. | |
15529 | ||
15530 | 2019-09-06 Jakub Jelinek <jakub@redhat.com> | |
15531 | ||
15532 | * function.c (assign_parm_find_data_types): Use RECORD_OR_UNION_TYPE_P | |
15533 | before testing TYPE_TRANSPARENT_AGGR. | |
15534 | * calls.c (initialize_argument_information, load_register_parameters): | |
15535 | Likewise. | |
15536 | ||
15537 | 2019-09-06 Richard Earnshaw <rearnsha@arm.com> | |
15538 | ||
15539 | * config/arm/arm.md (cmp_and): Add short-it variant for thumb2 with | |
15540 | high regs. | |
15541 | (cmp_ior): Likewise. | |
15542 | ||
15543 | 2019-09-06 Martin Liska <mliska@suse.cz> | |
15544 | ||
15545 | * doc/match-and-simplify.texi: Separate tuples with ;. | |
15546 | ||
15547 | 2019-09-06 Martin Liska <mliska@suse.cz> | |
15548 | ||
15549 | PR c++/91125 | |
15550 | * Makefile.in: Remove tlink.o. | |
15551 | * collect2.c (do_link): New function isolated | |
15552 | from do_tlink. | |
15553 | (main): Use. | |
15554 | * collect2.h (do_tlink): Remove declaration of do_tlink. | |
15555 | * doc/extend.texi: Remove documentation of -frepo. | |
15556 | * doc/invoke.texi: Likewise. | |
15557 | * doc/sourcebuild.texi: Remove cleanup-repo-files. | |
15558 | * tlink.c: Remove. | |
15559 | ||
15560 | 2019-09-05 Jakub Jelinek <jakub@redhat.com> | |
15561 | Jim Wilson <jimw@sifive.com> | |
15562 | ||
15563 | PR target/91635 | |
15564 | * config/riscv/riscv.md (zero_extendsidi2, zero_extendhi<GPR:mode>2, | |
15565 | extend<SHORT:mode><SUPERQI:mode>2): Don't split if | |
15566 | paradoxical_subreg_p (operands[0]). | |
15567 | (*lshrsi3_zero_extend_3+1, *lshrsi3_zero_extend_3+2): Add clobber and | |
15568 | use as intermediate value. | |
15569 | ||
15570 | 2019-09-05 Andrew Stubbs <ams@codesourcery.com> | |
15571 | ||
15572 | * config/gcn/gcn.md (*movti_insn): Set delayeduse for global_store. | |
15573 | (sync_compare_and_swap<mode>_insn): Likewise. | |
15574 | ||
15575 | 2019-09-05 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
15576 | ||
15577 | PR middle-end/91615 | |
15578 | * expr.c (expand_expr_real_1): Handle misaligned TARGET_MEM_REF | |
15579 | without movmisalign optab. | |
15580 | ||
15581 | 2019-09-05 Jakub Jelinek <jakub@redhat.com> | |
15582 | ||
15583 | PR middle-end/91001 | |
15584 | PR middle-end/91105 | |
15585 | PR middle-end/91106 | |
15586 | * calls.c (load_register_parameters): For TYPE_TRANSPARENT_AGGR | |
15587 | types, use type of their first field instead of type of | |
15588 | args[i].tree_value. | |
15589 | ||
15590 | 2019-09-05 Richard Biener <rguenther@suse.de> | |
15591 | ||
15592 | PR rtl-optimization/91656 | |
15593 | * postreload-gcse.c (record_last_mem_set_info): Revert addition | |
15594 | of early out. | |
15595 | ||
15596 | 2019-09-05 Richard Biener <rguenther@suse.de> | |
15597 | ||
15598 | PR middle-end/90501 | |
15599 | * tree-inline.c (declare_return_variable): Mark the return | |
15600 | slot as addressable after building an address of it. | |
15601 | ||
15602 | 2019-09-05 Arnaud Charlet <charlet@adacore.com> | |
15603 | ||
15604 | * doc/install.texi: Update and clarify requirements to build GNAT. | |
15605 | ||
15606 | 2019-09-05 Richard Sandiford <richard.sandiford@arm.com> | |
15607 | ||
15608 | PR middle-end/91577 | |
15609 | * cfgexpand.c (discover_nonconstant_array_refs): Force the source | |
15610 | of an IFN_LOAD_LANES call and the destination of an IFN_STORE_LANES | |
15611 | call to be in memory. | |
15612 | (pass_expand::execute): Call discover_nonconstant_array_refs before | |
15613 | setting currently_expanding_to_rtl. | |
15614 | ||
15615 | 2019-09-04 Caroline Tice <cmtice@google.com> | |
15616 | ||
15617 | * opts.c (finish_options): Disallow -fvtable-verify and -flto to be | |
15618 | specified together. | |
15619 | ||
15620 | 2019-09-04 Marek Polacek <polacek@redhat.com> | |
15621 | ||
15622 | * doc/invoke.texi: Remove -fdeduce-init-list documentation. | |
15623 | ||
15624 | 2019-09-04 Uroš Bizjak <ubizjak@gmail.com> | |
15625 | ||
15626 | PR target/32413 | |
15627 | * config/i386/i386.c (inline_secondary_memory_needed): Return true | |
15628 | for QI and HImode moves between SSE and general registers. | |
15629 | ||
15630 | 2019-09-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
15631 | ||
15632 | PR c/78736 | |
15633 | * doc/invoke.texi: Document -Wenum-conversion. | |
15634 | ||
15635 | 2019-09-04 Richard Biener <rguenther@suse.de> | |
15636 | ||
15637 | PR rtl-optimization/36262 | |
15638 | * postreload-gcse.c: Include intl.h and gcse.h. | |
15639 | (insert_expr_in_table): Insert at the head of cur_expr->avail_occr | |
15640 | to avoid linear list walk. | |
15641 | (record_last_mem_set_info): Gate off if not computing transparentness. | |
15642 | (get_bb_avail_insn): If transparentness isn't computed give up | |
15643 | early. | |
15644 | (gcse_after_reload_main): Skip compute_transp and extended PRE | |
15645 | if gcse_or_cprop_is_too_expensive says so. | |
15646 | ||
15647 | 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
15648 | ||
15649 | * config/msp430/msp430.c (msp430_init_sections): Remove handling of the | |
15650 | noinit section. | |
15651 | (msp430_select_section): Handle decls with the "noinit" attribute with | |
15652 | default_elf_select_section. | |
15653 | Handle SECCAT_RODATA_MERGE_* section types with | |
15654 | default_elf_select_section. | |
15655 | Add comments about handling of unsupported section types. | |
15656 | (msp430_section_type_flags): Remove handling of the noinit section. | |
15657 | ||
15658 | 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
15659 | ||
15660 | * config/msp430/msp430.c (msp430_attr): Remove warnings about | |
15661 | conflicting msp430-specific attributes. | |
15662 | (msp430_section_attr): Likewise. | |
15663 | Add warnings about conflicts with generic "noinit" and "section" | |
15664 | attributes. | |
15665 | Fix grammar in -mlarge error message. | |
15666 | (msp430_data_attr): Rename to msp430_persist_attr. | |
15667 | Add warnings about conflicts with generic "noinit" and "section" | |
15668 | attributes. | |
15669 | Add warning for when variable is not initialized. | |
15670 | Chain conditionals which prevent the attribute being added. | |
15671 | (ATTR_EXCL): New helper. | |
15672 | (attr_reent_exclusions): New exclusion table. | |
15673 | (attr_naked_exclusions): Likewise. | |
15674 | (attr_crit_exclusions): Likewise. | |
15675 | (attr_lower_exclusions): Likewise. | |
15676 | (attr_upper_exclusions): Likewise. | |
15677 | (attr_either_exclusions): Likewise. | |
15678 | (attr_persist_exclusions): Likewise. | |
15679 | (msp430_attribute_table): Update with exclusion rules. | |
15680 | (msp430_output_aligned_decl_common): Don't output common symbol if decl | |
15681 | has a section. | |
15682 | ||
15683 | 2019-09-03 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
15684 | ||
15685 | * config/msp430/msp430.c (TARGET_HANDLE_GENERIC_ATTRIBUTE): Define. | |
15686 | (msp430_handle_generic_attribute): New function. | |
15687 | * doc/tm.texi: Regenerate. | |
15688 | * doc/tm.texi.in: Add TARGET_HANDLE_GENERIC_ATTRIBUTE. | |
15689 | * hooks.c (hook_tree_treeptr_tree_tree_int_boolptr_null): New. | |
15690 | * hooks.h (hook_tree_treeptr_tree_tree_int_boolptr_null): New. | |
15691 | * target.def: Define new hook TARGET_HANDLE_GENERIC_ATTRIBUTE. | |
15692 | ||
15693 | 2019-09-03 Kamlesh Kumar <kamleshbhalui@gmail.com> | |
15694 | ||
15695 | PR tree-optimization/91504 | |
15696 | * match.pd: Add ((~a & b) ^a) --> (a | b). | |
15697 | ||
15698 | 2019-09-03 Jakub Jelinek <jakub@redhat.com> | |
15699 | ||
15700 | PR target/91604 | |
15701 | * config/i386/i386-expand.c (split_double_mode): If there is more than | |
15702 | one MEM operand and they are rtx_equal_p, reuse lo_half/hi_half from | |
15703 | already split matching MEM operand instead of calling adjust_address | |
15704 | again. | |
15705 | ||
15706 | 2019-09-03 Ulrich Weigand <uweigand@de.ibm.com> | |
15707 | ||
15708 | * config.gcc: Obsolete spu target. Remove references to spu. | |
15709 | * configure.ac: Remove references to spu. | |
15710 | * configure: Regenerate. | |
15711 | * config/spu/: Remove directory. | |
15712 | * common/config/spu/: Remove directory. | |
15713 | ||
15714 | * doc/extend.texi: Remove references to spu. | |
15715 | * doc/invoke.texi: Likewise. | |
15716 | * doc/md.texi: Likewise. | |
15717 | * doc/sourcebuild.texi: Likewise. | |
15718 | ||
15719 | 2019-09-03 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
15720 | ||
15721 | PR middle-end/91603 | |
15722 | PR middle-end/91612 | |
15723 | PR middle-end/91613 | |
15724 | * expr.c (expand_expr_real_1): Handle unaligned decl_rtl | |
15725 | and SSA_NAME referring to CONSTANT_P correctly. | |
15726 | ||
15727 | 2019-09-03 Richard Biener <rguenther@suse.de> | |
15728 | ||
15729 | * tree-ssa-sccvn.h (vn_nary_op_lookup): Remove. | |
15730 | (vn_nary_op_insert): Likewise. | |
15731 | * tree-ssa-sccvn.c (init_vn_nary_op_from_op): Remove. | |
15732 | (vn_nary_op_lookup): Likewise. | |
15733 | (vn_nary_op_insert): Likewise. | |
15734 | ||
15735 | 2019-09-03 Ilya Leoshkevich <iii@linux.ibm.com> | |
15736 | ||
15737 | * config/s390/s390.c (s390_canonicalize_comparison): Use XEXP | |
15738 | (*op0, 1) instead of XEXP (*op1, 0). | |
15739 | ||
15740 | 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
15741 | ||
15742 | * config/aarch64/aarch64.md (UNSPEC_FJCVTZS): Define. | |
15743 | (aarch64_fjcvtzs): New define_insn. | |
15744 | * config/aarch64/aarch64.h (TARGET_JSCVT): Define. | |
15745 | * config/aarch64/aarch64-builtins.c (aarch64_builtins): | |
15746 | Add AARCH64_JSCVT. | |
15747 | (aarch64_init_builtins): Initialize __builtin_aarch64_jcvtzs. | |
15748 | (aarch64_expand_builtin): Handle AARCH64_JSCVT. | |
15749 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define | |
15750 | __ARM_FEATURE_JCVT where appropriate. | |
15751 | * config/aarch64/arm_acle.h (__jcvt): Define. | |
15752 | ||
15753 | 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
15754 | ||
15755 | * config/aarch64/aarch64.md ("unspec"): Add UNSPEC_FRINT32Z, | |
15756 | UNSPEC_FRINT32X, UNSPEC_FRINT64Z, UNSPEC_FRINT64X. | |
15757 | (aarch64_<frintnzs_op><mode>): New define_insn. | |
15758 | * config/aarch64/aarch64.h (TARGET_FRINT): Define. | |
15759 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define | |
15760 | __ARM_FEATURE_FRINT when appropriate. | |
15761 | * config/aarch64/aarch64-simd-builtins.def: Add builtins for frint32z, | |
15762 | frint32x, frint64z, frint64x. | |
15763 | * config/aarch64/arm_acle.h (__rint32zf, __rint32z, __rint64zf, | |
15764 | __rint64z, __rint32xf, __rint32x, __rint64xf, __rint64x): Define. | |
15765 | * config/aarch64/arm_neon.h (vrnd32z_f32, vrnd32zq_f32, vrnd32z_f64, | |
15766 | vrnd32zq_f64, vrnd32x_f32, vrnd32xq_f32, vrnd32x_f64, vrnd32xq_f64, | |
15767 | vrnd64z_f32, vrnd64zq_f32, vrnd64z_f64, vrnd64zq_f64, vrnd64x_f32, | |
15768 | vrnd64xq_f32, vrnd64x_f64, vrnd64xq_f64): Define. | |
15769 | * config/aarch64/iterators.md (VSFDF): Define. | |
15770 | (FRINTNZX): Likewise. | |
15771 | (frintnzs_op): Likewise. | |
15772 | ||
15773 | 2019-09-03 Dennis Zhang <dennis.zhang@arm.com> | |
15774 | ||
15775 | * config/aarch64/aarch64-cores.def (AARCH64_CORE): New entries | |
15776 | for Cortex-A77, Cortex-A76AE, Cortex-A65, Cortex-A65AE, and | |
15777 | Cortex-A34. | |
15778 | * config/aarch64/aarch64-tune.md: Regenerated. | |
15779 | * doc/invoke.texi: Document the new processors. | |
15780 | ||
15781 | 2019-09-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
15782 | ||
15783 | * config/aarch64/aarch64-option-extensions.def (sb): Add feature | |
15784 | string. | |
15785 | (ssbs): Likewise. | |
15786 | (sve2): Likewise. | |
15787 | (sve2-sm4): Likewise. | |
15788 | (sveaes): Likewise. | |
15789 | (svesha3): Likewise. | |
15790 | (svebitperm): Likewise. | |
15791 | ||
15792 | 2019-09-03 Jakub Jelinek <jakub@redhat.com> | |
15793 | Richard Biener <rguenther@suse.de> | |
15794 | ||
15795 | PR tree-optimization/91597 | |
15796 | * tree-vrp.c (extract_range_from_binary_expr): Remove unsafe | |
15797 | BIT_AND_EXPR optimization for pointers, even if both operand | |
15798 | ranges don't include NULL, the result can be NULL. | |
15799 | ||
15800 | 2019-09-02 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
15801 | ||
15802 | PR middle-end/91605 | |
15803 | * expr.c (addr_expr_of_non_mem_decl_p_1): Refactor into... | |
15804 | (non_mem_decl_p): ...this. | |
15805 | (mem_ref_refers_to_non_mem_p): Handle DECL_P as well as MEM_REF. | |
15806 | (expand_assignment): Call mem_ref_referes_to_non_mem_p | |
15807 | unconditionally as before. | |
15808 | ||
15809 | 2019-09-02 Eric Botcazou <ebotcazou@adacore.com> | |
15810 | ||
15811 | PR target/91323 | |
15812 | * doc/generic.texi (LTGT_EXPR): Merge with other comparison operators. | |
15813 | * rtl.def (LTGT): Likewise. Add note about floating-point exceptions. | |
15814 | * tree.def (LTGT_EXPR): Likewise. | |
15815 | * config/sparc/sparc.c (select_cc_mode): Return CCFPEmode for LTGT. | |
15816 | ||
15817 | 2019-09-02 Jakub Jelinek <jakub@redhat.com> | |
15818 | ||
15819 | PR go/91617 | |
15820 | * fold-const.c (range_check_type): For enumeral and boolean | |
15821 | type, pass 1 to type_for_size langhook instead of | |
15822 | TYPE_UNSIGNED (etype). Return unsigned_type_for result whenever | |
15823 | etype isn't TYPE_UNSIGNED INTEGER_TYPE. | |
15824 | (build_range_check): Don't call unsigned_type_for for pointer types. | |
15825 | * match.pd (X / C1 op C2): Don't call unsigned_type_for on | |
15826 | range_check_type result. | |
15827 | ||
15828 | 2019-09-02 Eric Botcazou <ebotcazou@adacore.com> | |
15829 | ||
15830 | * gimple-ssa-strength-reduction.c (valid_mem_ref_cand_p): New function. | |
15831 | (replace_ref): Do not replace a chain of only two candidates which are | |
15832 | valid memory references. | |
15833 | ||
15834 | 2019-09-02 Martin Liska <mliska@suse.cz> | |
15835 | ||
15836 | * tree-switch-conversion.c (jump_table_cluster::find_jump_tables): | |
15837 | Bail out when we'll end up with the same number of clusters as | |
15838 | at the beginning. | |
15839 | (bit_test_cluster::find_bit_tests): Likewise for bit tests. | |
15840 | (jump_table_cluster::can_be_handled): Remove the guard | |
15841 | as it's already handled in ::is_enabled. Allocate output | |
15842 | after early bail out. | |
15843 | ||
15844 | 2019-09-02 Martin Liska <mliska@suse.cz> | |
15845 | ||
15846 | PR gcov-profile/91601 | |
15847 | * gcov.c (path_contains_zero_cycle_arc): Rename to ... | |
15848 | (path_contains_zero_or_negative_cycle_arc): ... this and handle | |
15849 | also negative edges. | |
15850 | (circuit): Handle also negative edges as they can happen | |
15851 | in some situations. | |
15852 | ||
15853 | 2019-09-01 Eric Botcazou <ebotcazou@adacore.com> | |
15854 | ||
15855 | PR target/91472 | |
15856 | * config/sparc/sparc.c (sparc_cannot_force_const_mem): Return true | |
15857 | during LRA/reload in PIC mode if the PIC register hasn't been used yet. | |
15858 | (sparc_pic_register_p): Test reload_in_progress for consistency's sake. | |
15859 | ||
15860 | 2019-09-01 Jakub Jelinek <jakub@redhat.com> | |
15861 | ||
15862 | PR middle-end/91623 | |
15863 | * optabs.c (expand_vec_cond_expr): If op0 is a VECTOR_CST and only | |
15864 | EQ_EXPR/NE_EXPR is supported, verify that op0 only contains | |
15865 | zeros or negative elements and use NE_EXPR instead of LT_EXPR against | |
15866 | zero vector. | |
15867 | ||
15868 | PR lto/91572 | |
15869 | * tree.c (find_decls_types_in_node): Also walk TREE_PURPOSE of | |
15870 | GIMPLE_ASM TREE_LIST operands. | |
15871 | ||
15872 | 2019-08-31 Gerald Pfeifer <gerald@pfeifer.com> | |
15873 | ||
15874 | * doc/generic.texi (Unary and Binary Expressions): Mark up | |
15875 | an instance of TYPE_MIN. | |
15876 | ||
15877 | 2019-08-31 Stafford Horne <shorne@gmail.com> | |
15878 | ||
15879 | * config/or1k/constraints.md (t): New constraint. | |
15880 | * config/or1k/or1k.h (GOT_REGS): New register class. | |
15881 | * config/or1k/or1k.md (set_got_tmp, set_got): Use t contraint. | |
15882 | ||
15883 | 2019-08-30 Jim Wilson <jimw@sifive.com> | |
15884 | ||
15885 | * config/riscv/riscv.c (riscv_option_override): If -msave-restore | |
15886 | and -fpic and -mplt then disable -msave-restore and warn. | |
15887 | ||
15888 | 2019-08-30 Martin Sebor <msebor@redhat.com> | |
15889 | ||
15890 | PR middle-end/91599 | |
15891 | * tree-ssa-strlen.c (handle_store): Use a fallback location if | |
15892 | the statement doesn't have one. | |
15893 | * gimple-pretty-print.c (percent_G_format): Same. | |
15894 | ||
15895 | PR middle-end/91584 | |
15896 | * tree-vrp.c (vrp_prop::check_mem_ref): Normalize type domain bounds | |
15897 | before using them to validate MEM_REF offset. | |
15898 | ||
15899 | 2019-08-30 Marek Polacek <polacek@redhat.com> | |
15900 | ||
15901 | * doc/invoke.texi (-Wvolatile): Use @code for volatile. | |
15902 | ||
15903 | 2019-08-30 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
15904 | ||
15905 | * config/arm/arm.md (unaligned_loaddi, | |
15906 | unaligned_storedi): New unspec insn patterns. | |
15907 | * config/arm/neon.md (unaligned_storev8qi): Likewise. | |
15908 | * config/arm/arm.c (gen_cpymem_ldrd_strd): Use unaligned_loaddi | |
15909 | and unaligned_storedi for 4-byte aligned memory. | |
15910 | (arm_block_set_aligned_vect): Use unaligned_storev8qi for | |
15911 | 4-byte aligned memory. | |
15912 | ||
15913 | 2019-08-30 Martin Jambor <mjambor@suse.cz> | |
15914 | ||
15915 | tree-optimization/91579 | |
15916 | * tree-tailcall.c (tailr_arg_needs_copy): New variable. | |
15917 | (find_tail_calls): Allocate tailr_arg_needs_copy and set its bits as | |
15918 | appropriate. | |
15919 | (arg_needs_copy_p): Removed. | |
15920 | (eliminate_tail_call): Test tailr_arg_needs_copy instead of calling | |
15921 | arg_needs_copy_p. | |
15922 | (tree_optimize_tail_calls_1): Likewise. Free tailr_arg_needs_copy. | |
15923 | ||
15924 | 2019-08-29 Uroš Bizjak <ubizjak@gmail.com> | |
15925 | ||
15926 | * config/i386/i386-features.c | |
15927 | (general_scalar_chain::compute_convert_gain): | |
15928 | Correct cost for double-word shifts. | |
15929 | (general_scalar_to_vector_candidate_p): Reject count operands | |
15930 | greater or equal to mode bitsize. | |
15931 | ||
15932 | 2019-08-29 Uroš Bizjak <ubizjak@gmail.com> | |
15933 | ||
15934 | * config/i386/i386.c (inline_secondary_memory_needed): Return true | |
15935 | for moves between SSE and non-general registers and between | |
15936 | mask and non-general registers. | |
15937 | (ix86_register_move_cost): Remove stalled comment. | |
15938 | ||
15939 | 2019-08-29 Richard Biener <rguenther@suse.de> | |
15940 | ||
15941 | * config/i386/i386-features.c (general_scalar_chain::convert_insn): | |
15942 | Guard debug work with MAY_HAVE_DEBUG_BIND_INSNS. | |
15943 | ||
15944 | 2019-08-29 Richard Biener <rguenther@suse.de> | |
15945 | ||
15946 | PR bootstrap/91580 | |
15947 | * config/i386/i386-features.c (general_scalar_chain::convert_insn): | |
15948 | Do not emit scalar copies for debug-insns, instead replace | |
15949 | their uses with the reg copy used in the chain or reset them | |
15950 | if there is a reaching definition outside of the chain as well. | |
15951 | ||
15952 | 2019-08-29 Jakub Jelinek <jakub@redhat.com> | |
15953 | ||
15954 | PR target/91560 | |
15955 | * config/i386/i386-expand.c (expand_vec_perm_movs, | |
15956 | expand_vec_perm_blend, expand_vec_perm_vpermil, | |
15957 | expand_vec_perm_pshufb, expand_vec_perm_1, | |
15958 | expand_vec_perm_pshuflw_pshufhw, expand_vec_perm_palignr, | |
15959 | expand_vec_perm_interleave2, expand_vec_perm_vpermq_perm_1, | |
15960 | expand_vec_perm_vperm2f128, expand_vec_perm_interleave3, | |
15961 | expand_vec_perm_vperm2f128_vblend, expand_vec_perm_2vperm2f128_vshuf, | |
15962 | expand_vec_perm_even_odd, expand_vec_perm_broadcast): Adjust function | |
15963 | comments - replace ix86_expand_vec_perm_builtin_1 with | |
15964 | ix86_expand_vec_perm_const_1. | |
15965 | (expand_vec_perm2_vperm2f128_vblend): New function. | |
15966 | (ix86_expand_vec_perm_const_1): New forward declaration. Call | |
15967 | expand_vec_perm2_vperm2f128_vblend as last resort. | |
15968 | (canonicalize_perm): Formatting fix. | |
15969 | ||
15970 | PR tree-optimization/91351 | |
15971 | * tree-cfg.c (generate_range_test): Use range_check_type instead of | |
15972 | unsigned_type_for. | |
15973 | * tree-cfgcleanup.c (convert_single_case_switch): Punt if | |
15974 | range_check_type returns NULL. | |
15975 | * tree-switch-conversion.c (switch_conversion::build_one_array): | |
15976 | Use range_check_type instead of unsigned_type_for, don't perform | |
15977 | linear opt if it returns NULL. | |
15978 | (bit_test_cluster::find_bit_tests): Formatting fix. | |
15979 | (bit_test_cluster::emit): Use range_check_type instead of | |
15980 | unsigned_type_for. | |
15981 | (switch_decision_tree::try_switch_expansion): Punt if range_check_type | |
15982 | returns NULL. | |
15983 | ||
15984 | 2019-08-29 Richard Biener <rguenther@suse.de> | |
15985 | ||
15986 | PR tree-optimization/91568 | |
15987 | * tree-vectorizer.h (_slp_tree::max_nunits): Add. | |
15988 | (vect_update_max_nunits): Add overload for poly_uint64. | |
15989 | * tree-vect-slp.c (vect_create_new_slp_node): Initialize it. | |
15990 | (vect_build_slp_tree): Record max_nunits into the subtree | |
15991 | and merge it upwards. | |
15992 | (vect_print_slp_tree): Print max_nunits. | |
15993 | ||
15994 | 2019-08-28 Marek Polacek <polacek@redhat.com> | |
15995 | ||
15996 | Implement P1152R4: Deprecating some uses of volatile. | |
15997 | PR c++/91361 | |
15998 | * doc/invoke.texi: Document -Wvolatile. | |
15999 | ||
16000 | 2019-08-28 Marek Polacek <polacek@redhat.com> | |
16001 | ||
16002 | PR c++/91360 - Implement C++20 P1143R2: constinit. | |
16003 | * doc/invoke.texi: Document -Wc++20-compat. | |
16004 | ||
16005 | 2019-08-28 Martin Sebor <msebor@redhat.com> | |
16006 | ||
16007 | PR tree-optimization/91457 | |
16008 | * builtins.c (component_size): New function. | |
16009 | (compute_objsize): Add argument. Handle ARRAY_REF and COMPONENT_REF. | |
16010 | * builtins.h (compute_objsize): Add argument. | |
16011 | * tree-ssa-strlen.c (handle_store): Handle no-warning bit. | |
16012 | * tree-vrp.c (vrp_prop::check_array_ref): Return warning result. | |
16013 | (vrp_prop::check_mem_ref): Same. | |
16014 | (vrp_prop::search_for_addr_array): Set no-warning bit. | |
16015 | (check_array_bounds): Same. | |
16016 | ||
16017 | 2019-08-28 Martin Sebor <msebor@redhat.com> | |
16018 | ||
16019 | PR driver/80545 | |
16020 | * opts-common.c (option_enabled): Correct checking for language | |
16021 | options. | |
16022 | ||
16023 | 2019-08-28 Uroš Bizjak <ubizjak@gmail.com> | |
16024 | ||
16025 | * config/i386/i386.c (ix86_register_move_cost): Do not | |
16026 | limit the cost of moves to/from XMM register to minimum 8. | |
16027 | ||
16028 | 2019-08-28 Martin Jambor <mjambor@suse.cz> | |
16029 | ||
16030 | PR ipa/91468 | |
16031 | * ipa-cp.c (merge_agg_lats_step): Removed redundant test, made a | |
16032 | checking assert a normal assert to test it really is redundant. | |
16033 | * ipa-prop.c (compute_complex_assign_jump_func): Removed | |
16034 | redundant test. | |
16035 | (update_jump_functions_after_inlining): Removed combining unary | |
16036 | arithmetic operations with an ancestor jump function. | |
16037 | (ipcp_modif_dom_walker::before_dom_children): Fix wrong use of rhs | |
16038 | instead of t. | |
16039 | ||
16040 | 2019-08-28 Richard Biener <rguenther@suse.de> | |
16041 | ||
16042 | * config/i386/i386-features.c (convert_scalars_to_vector): Do not | |
16043 | add the MD problem. | |
16044 | ||
16045 | 2019-08-28 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
16046 | Richard Biener <rguenther@suse.de> | |
16047 | ||
16048 | * expr.c (expand_assignment): Handle misaligned DECLs. | |
16049 | (expand_expr_real_1): Handle FUNCTION_DECL as unaligned. | |
16050 | * function.c (assign_parm_adjust_stack_rtl): Check movmisalign optab | |
16051 | too. | |
16052 | (assign_parm_setup_stack): Allocate properly aligned stack slots. | |
16053 | * varasm.c (build_constant_desc): Align constants of misaligned types. | |
16054 | * config/arm/predicates.md (aligned_operand): New predicate. | |
16055 | * config/arm/arm.md (movdi, movsi, movhi, movhf, movsf, movdf): Use | |
16056 | aligned_operand to check restrictions on memory addresses. | |
16057 | * config/arm/neon.md (movti, mov<VSTRUCT>, mov<VH>): Likewise. | |
16058 | * config/arm/vec-common.md (mov<VALL>): Likewise. | |
16059 | ||
16060 | 2019-08-28 Jakub Jelinek <jakub@redhat.com> | |
16061 | ||
16062 | PR libgomp/91530 | |
16063 | * config/i386/sse.md (vec_shl_<mode>, vec_shr_<mode>): Use | |
16064 | V_128 iterator instead of VI_128. | |
16065 | ||
16066 | 2019-08-28 Martin Liska <mliska@suse.cz> | |
16067 | ||
16068 | PR tree-optimization/90970 | |
16069 | * builtins.c (check_access): Remove assignment to maxread | |
16070 | as it hasn't been used since when it was introduced in r255755. | |
16071 | ||
16072 | 2019-08-27 Martin Sebor <msebor@redhat.com> | |
16073 | ||
16074 | PR tree-optimization/91567 | |
16075 | * gimple-ssa-sprintf.c (get_string_length): Handle more forms of lengths | |
16076 | of unknown strings. | |
16077 | * vr-values.c (vr_values::extract_range_basic): Set strlen upper bound | |
16078 | to PTRDIFF_MAX - 2. | |
16079 | ||
16080 | 2019-08-27 Jeff Law <law@redhat.com> | |
16081 | ||
16082 | * tree-ssa-strlen.c (printf_strlen_execute): Initialize | |
16083 | the loop optimizer and SCEV before sizing ssa_ver_to_stridx. | |
16084 | ||
16085 | 2019-08-27 Uroš Bizjak <ubizjak@gmail.com> | |
16086 | ||
16087 | PR target/91528 | |
16088 | * config/i386/i386-features.c (convert_scalars_to_vector): | |
16089 | Update crtl->stack_realign_needed, crtl->stack_realign_tried and | |
16090 | crtl->stack_realign_processed. Update crtl->drap_reg by calling | |
16091 | targetm.calls.get_drap_rtx. If drap_rtx is non-null then | |
16092 | Update crtl->args.internal_arg_pointer and call fixup_tail_calls. | |
16093 | ||
16094 | 2019-08-27 Richard Biener <rguenther@suse.de> | |
16095 | ||
16096 | * config/i386/i386-features.h | |
16097 | (general_scalar_chain::~general_scalar_chain): Add. | |
16098 | (general_scalar_chain::insns_conv): New bitmap. | |
16099 | (general_scalar_chain::n_sse_to_integer): New. | |
16100 | (general_scalar_chain::n_integer_to_sse): Likewise. | |
16101 | (general_scalar_chain::make_vector_copies): Adjust signature. | |
16102 | * config/i386/i386-features.c | |
16103 | (general_scalar_chain::general_scalar_chain): Outline, | |
16104 | initialize new members. | |
16105 | (general_scalar_chain::~general_scalar_chain): New. | |
16106 | (general_scalar_chain::mark_dual_mode_def): Record insns | |
16107 | we need to insert conversions at and count them. | |
16108 | (general_scalar_chain::compute_convert_gain): Account | |
16109 | for conversion instructions at chain boundary. | |
16110 | (general_scalar_chain::make_vector_copies): Generate a single | |
16111 | copy for a def by a specific insn. | |
16112 | (general_scalar_chain::convert_registers): First populate | |
16113 | defs_map, then make copies at out-of chain insns. | |
16114 | ||
16115 | 2019-08-27 Richard Earnshaw <rearnsha@arm.com> | |
16116 | ||
16117 | * config/arm/arm.md (stack_protect_set_insn): Add security-related | |
16118 | comment. | |
16119 | * config/aarch64/aarch64.md (stack_protect_set_<mode>): Likewise. | |
16120 | ||
16121 | 2019-08-27 Martin Liska <mliska@suse.cz> | |
16122 | ||
16123 | * cgraph.c (cgraph_node::remove): Remove dead assignment before | |
16124 | loop. | |
16125 | * config/i386/i386-features.c (scalar_chain::emit_conversion_insns): | |
16126 | Enclose in anonymous namespace. | |
16127 | * config/i386/x86-tune-costs.h (struct processor_costs): Wrap | |
16128 | hard_register initialization in braces. | |
16129 | * tree-vrp.h (value_range_base::supports_type_p): Return false | |
16130 | for function with boolean return type. | |
16131 | ||
16132 | 2019-08-26 Uroš Bizjak <ubizjak@gmail.com> | |
16133 | ||
16134 | * config/i386/i386.c (emit_i387_cw_initialization) | |
16135 | <case I387_CW_ROUNDEVEN>: Fix masking operand value. | |
16136 | ||
16137 | 2019-08-26 Martin Sebor <msebor@redhat.com> | |
16138 | ||
16139 | PR c++/83431 | |
16140 | * gimple-ssa-sprintf.c (pass_data_sprintf_length): Remove object. | |
16141 | (sprintf_dom_walker): Remove class. | |
16142 | (get_int_range): Make argument const. | |
16143 | (directive::fmtfunc, directive::set_precision): Same. | |
16144 | (format_none): Same. | |
16145 | (build_intmax_type_nodes): Same. | |
16146 | (adjust_range_for_overflow): Same. | |
16147 | (format_floating): Same. | |
16148 | (format_character): Same. | |
16149 | (format_string): Same. | |
16150 | (format_plain): Same. | |
16151 | (get_int_range): Cast away constness. | |
16152 | (format_integer): Same. | |
16153 | (get_string_length): Call get_range_strlen_dynamic. Handle | |
16154 | null lendata.maxbound. | |
16155 | (should_warn_p): Adjust argument scope qualifier. | |
16156 | (maybe_warn): Same. | |
16157 | (format_directive): Same. | |
16158 | (parse_directive): Same. | |
16159 | (is_call_safe): Same. | |
16160 | (try_substitute_return_value): Same. | |
16161 | (sprintf_dom_walker::handle_printf_call): Rename... | |
16162 | (handle_printf_call): ...to this. Initialize target to host charmap | |
16163 | here instead of in pass_sprintf_length::execute. | |
16164 | (struct call_info): Make global. | |
16165 | (sprintf_dom_walker::compute_format_length): Make global. | |
16166 | (sprintf_dom_walker::handle_gimple_call): Same. | |
16167 | * passes.def (pass_sprintf_length): Replace with pass_strlen. | |
16168 | * print-rtl.c (print_pattern): Reduce the number of spaces to | |
16169 | avoid -Wformat-truncation. | |
16170 | * tree-pass.h (make_pass_warn_printf): New function. | |
16171 | * tree-ssa-strlen.c (strlen_optimize): New variable. | |
16172 | (get_string_length): Add comments. | |
16173 | (get_range_strlen_dynamic): New function. | |
16174 | (check_and_optimize_call): New function. | |
16175 | (handle_integral_assign): New function. | |
16176 | (strlen_check_and_optimize_stmt): Factor code out into | |
16177 | strlen_check_and_optimize_call and handle_integral_assign. | |
16178 | (strlen_dom_walker::evrp): New member. | |
16179 | (strlen_dom_walker::before_dom_children): Use evrp member. | |
16180 | (strlen_dom_walker::after_dom_children): Use evrp member. | |
16181 | (printf_strlen_execute): New function. | |
16182 | (pass_strlen::gate): Update to handle printf calls. | |
16183 | (dump_strlen_info): New function. | |
16184 | (pass_data_warn_printf): New variable. | |
16185 | (pass_warn_printf): New class. | |
16186 | * tree-ssa-strlen.h (get_range_strlen_dynamic): Declare. | |
16187 | (handle_printf_call): Same. | |
16188 | * tree-vrp.c (value_range_base::type): Adjust assertion. | |
16189 | * vr-values.c (vr_values::update_value_range): Use type of the first | |
16190 | argument rather than the second. | |
16191 | ||
16192 | 2019-08-26 Richard Biener <rguenther@suse.de> | |
16193 | ||
16194 | * config/i386/i386-features.c (general_remove_non_convertible_regs): | |
16195 | Remove. | |
16196 | (convert_scalars_to_vector): Do not call it. | |
16197 | ||
16198 | 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com> | |
16199 | Uros Bizjak <ubizjak@gmail.com> | |
16200 | ||
16201 | * builtins.c (mathfn_built_in_2): Change CASE_MATHFN to | |
16202 | CASE_MATHFN_FLOATN for roundeven. | |
16203 | * config/i386/i386.c (ix86_i387_mode_needed): Add case | |
16204 | I387_ROUNDEVEN. | |
16205 | (ix86_mode_needed): Likewise. | |
16206 | (ix86_mode_after): Likewise. | |
16207 | (ix86_mode_entry): Likewise. | |
16208 | (ix86_mode_exit): Likewise. | |
16209 | (ix86_emit_mode_set): Likewise. | |
16210 | (emit_i387_cw_initialization): Add case I387_CW_ROUNDEVEN. | |
16211 | * config/i386/i386.h (ix86_stack_slot): Add SLOT_CW_ROUNDEVEN. | |
16212 | (ix86_entity): Add I387_ROUNDEVEN. | |
16213 | (NUM_MODES_FOR_MODE_SWITCHING): Add I387_CW_ANY. | |
16214 | * config/i386/i386.md: Define UNSPEC_FRNDINT_ROUNDEVEN. | |
16215 | (define_int_iterator): Likewise. | |
16216 | (define_int_attr): Likewise for rounding_insn, rounding and ROUNDING. | |
16217 | (define_constant): Define ROUND_ROUNDEVEN mode. | |
16218 | (define_attr): Add roundeven mode for i387_cw. | |
16219 | (<rouding_insn><mode>2): Add condition for ROUND_ROUNDEVEN. | |
16220 | * internal-fn.def (ROUNDEVEN): New builtin function. | |
16221 | * optabs.def (roundeven_optab): New optab. | |
16222 | ||
16223 | 2019-08-26 Tejas Joshi <tejasjoshi9673@gmail.com> | |
16224 | ||
16225 | * builtins.c (mathfn_built_in_2): Added CASE_MATHFN_FLOATN | |
16226 | for ROUNDEVEN. | |
16227 | * builtins.def: Added function definitions for roundeven function | |
16228 | variants. | |
16229 | * fold-const-call.c (fold_const_call_ss): Added case for roundeven | |
16230 | function call. Adjust condition for floor, ceil, trunc and round. | |
16231 | * fold-const.c (negate_mathfn_p): Added case for roundeven function. | |
16232 | (tree_call_nonnegative_warnv_p): Added case for roundeven function. | |
16233 | (integer_valued_real_call_p): Added case for roundeven function. | |
16234 | * real.c (is_even): New function. Returns true if real number is even, | |
16235 | otherwise returns false. | |
16236 | (is_halfway_below): New function. Returns true if real number is | |
16237 | halfway between two integers, else return false. | |
16238 | (real_roundeven): New function. Round real number to nearest integer, | |
16239 | rounding halfway cases towards even. | |
16240 | * real.h (real_value): Added descriptive comments. Added function | |
16241 | declaration for roundeven function. | |
16242 | * doc/extend.texi (Other Builtins): List roundeven variants among | |
16243 | functions which can be handled as builtins. | |
16244 | ||
16245 | 2019-08-26 Richard Biener <rguenther@suse.de> | |
16246 | ||
16247 | PR target/91522 | |
16248 | PR target/91527 | |
16249 | * config/i386/i386-features.h (general_scalar_chain::defs_map): | |
16250 | New member. | |
16251 | (general_scalar_chain::replace_with_subreg): Remove. | |
16252 | (general_scalar_chain::replace_with_subreg_in_insn): Likewise. | |
16253 | (general_scalar_chain::convert_reg): Adjust signature. | |
16254 | * config/i386/i386-features.c (scalar_chain::add_insn): Do not | |
16255 | iterate over all defs of a reg. | |
16256 | (general_scalar_chain::replace_with_subreg): Remove. | |
16257 | (general_scalar_chain::replace_with_subreg_in_insn): Likewise. | |
16258 | (general_scalar_chain::make_vector_copies): Populate defs_map, | |
16259 | place copy only after defs that are used as vectors in the chain. | |
16260 | (general_scalar_chain::convert_reg): Emit a copy for a specific | |
16261 | def in a specific instruction. | |
16262 | (general_scalar_chain::convert_op): All reg uses are converted here. | |
16263 | (general_scalar_chain::convert_insn): Emit copies for scalar | |
16264 | uses of defs here. Replace uses with the copies we created. | |
16265 | Replace and convert the def. Adjust REG_DEAD notes, remove | |
16266 | REG_EQUIV/EQUAL notes. | |
16267 | (general_scalar_chain::convert_registers): Only handle copies | |
16268 | into the chain here. | |
16269 | ||
16270 | 2019-08-26 Robin Dapp <rdapp@linux.ibm.com> | |
16271 | ||
16272 | * match.pd: Add (T)(A) + CST -> (T)(A + CST). | |
16273 | ||
16274 | 2019-08-26 Robin Dapp <rdapp@linux.ibm.com> | |
16275 | ||
16276 | * gimple-loop-versioning.cc (loop_versioning::record_address_fragment): | |
16277 | Add nop_convert case. | |
16278 | * tree-ssa-propagate.c (substitute_and_fold_dom_walker::before_dom_children): | |
16279 | Fold all statements if requested. | |
16280 | * tree-ssa-propagate.h (class substitute_and_fold_engine): | |
16281 | Allow to fold all statements. | |
16282 | * tree-vrp.c (class vrp_folder): | |
16283 | Let substitute_and_fold_engine fold all statements. | |
16284 | ||
16285 | 2019-08-26 Richard Biener <rguenther@suse.de> | |
16286 | ||
16287 | PR tree-optimization/91526 | |
16288 | * passes.def: Note that after late FRE we do TODO_update_address_taken. | |
16289 | * tree-ssa-sccvn.c (pass_fre::execute): In late mode schedule | |
16290 | TODO_update_address_taken. | |
16291 | ||
16292 | 2019-08-26 Gerald Pfeifer <gerald@pfeifer.com> | |
16293 | ||
16294 | * config/i386/gmm_malloc.h: Only use <errno.h> and errno if | |
16295 | __STDC_HOSTED__. | |
16296 | ||
16297 | 2019-08-23 Mihailo Stojanovic <mistojanovic@wavecomp.com> | |
16298 | ||
16299 | * config/mips/mips.md (mips_get_fcsr, *mips_get_fcsr): Use SI | |
16300 | machine mode for unspec_volatile operand. | |
16301 | ||
16302 | 2019-08-23 Wilco Dijkstra <wdijkstr@arm.com> | |
16303 | ||
16304 | * doc/invoke.texi (mneon-for-64bits): Deprecate option. | |
16305 | * config/arm/arm.opt (mneon-for-64bits): Deprecate option. | |
16306 | * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove. | |
16307 | (prefer_neon_for_64bits): Remove. | |
16308 | * config/arm/arm.c (prefer_neon_for_64bits): Remove. | |
16309 | (tune_params): Remove PREF_NEON_64_FALSE uses. | |
16310 | (arm_option_override): Remove prefer_neon selection code. | |
16311 | (arm_print_tune_info): Remove prefer_neon_for_64bits. | |
16312 | * config/arm/arm-protos.h (tune_params): Remove | |
16313 | prefer_neon_for_64bits. | |
16314 | (prefer_neon_for_64bits): Remove. | |
16315 | ||
16316 | 2019-08-23 Iain Sandoe <iain@sandoe.co.uk> | |
16317 | ||
16318 | PR pch/61250 | |
16319 | * ggc-page.c (ggc_pch_read): Read the ggc_pch_ondisk structure | |
16320 | and issue any diagnostics needed before collecting the pre-PCH | |
16321 | state. | |
16322 | ||
16323 | 2019-08-23 Jakub Jelinek <jakub@redhat.com> | |
16324 | ||
16325 | PR middle-end/91283 | |
16326 | * common.opt (fexcess-precision=): Add Optimization flag. Use | |
16327 | flag_excess_precision variable instead of | |
16328 | flag_excess_precision_cmdline. | |
16329 | * flags.h (class target_flag_state): Remove x_flag_excess_precision | |
16330 | member. | |
16331 | (flag_excess_precision): Don't define. | |
16332 | * langhooks.c (lhd_post_options): Set flag_excess_precision instead of | |
16333 | flag_excess_precision_cmdline. Remove comment. | |
16334 | * opts.c (set_fast_math_flags): Use frontend_set_flag_excess_precision | |
16335 | and x_flag_excess_precision instead of | |
16336 | frontend_set_flag_excess_precision_cmdline and | |
16337 | x_flag_excess_precision_cmdline. | |
16338 | (fast_math_flags_set_p): Use x_flag_excess_precision instead of | |
16339 | x_flag_excess_precision_cmdline. | |
16340 | * toplev.c (init_excess_precision): Remove. | |
16341 | (lang_dependent_init_target): Don't call it. | |
16342 | ||
16343 | 2019-08-23 Martin Liska <mliska@suse.cz> | |
16344 | ||
16345 | * lto-wrapper.c (run_gcc): When setting jobserver | |
16346 | set also parallel to 1. This was done so before r273908. | |
16347 | ||
16348 | 2019-08-23 Dennis Zhang <dennis.zhang@arm.com> | |
16349 | ||
16350 | * config/arm/arm-cpus.in (cortex-m35p): New entry. | |
16351 | (cortex-a76ae): Likewise. | |
16352 | (cortex-a77): Likewise | |
16353 | * config/arm/arm-tables.opt: Regenerate. | |
16354 | * config/arm/arm-tune.md: Likewise. | |
16355 | * doc/invoke.texi (ARM Options): Document cortex-m35p, cortx-a76ae, | |
16356 | cortex-a77 CPU options. | |
16357 | ||
16358 | 2019-08-23 Martin Liska <mliska@suse.cz> | |
16359 | ||
16360 | * profile.c (instrument_values): Do not set | |
16361 | 0 as last argument. | |
16362 | * tree-profile.c (gimple_gen_interval_profiler): Remove | |
16363 | last argument. | |
16364 | (gimple_gen_pow2_profiler): Likewise. | |
16365 | (gimple_gen_topn_values_profiler): Likewise. | |
16366 | (gimple_gen_ic_profiler): Likewise. | |
16367 | (gimple_gen_time_profiler): Likewise. | |
16368 | (gimple_gen_average_profiler): Likewise. | |
16369 | (gimple_gen_ior_profiler): Likewise. | |
16370 | * value-prof.c (dump_histogram_value): Use default | |
16371 | in switch statement instead of HIST_TYPE_MAX. | |
16372 | (stream_in_histogram_value): Likewise. | |
16373 | (gimple_duplicate_stmt_histograms): Do not | |
16374 | use NULL for implicitly set arguments. | |
16375 | (gimple_divmod_values_to_profile): Do not use | |
16376 | reserve+quick_push. | |
16377 | (gimple_indirect_call_to_profile): Likewise. | |
16378 | (gimple_find_values_to_profile): Use implicit | |
16379 | function call arguments. | |
16380 | * value-prof.h (gimple_alloc_histogram_value): | |
16381 | Set default values. | |
16382 | (gimple_gen_interval_profiler): Remove last argument. | |
16383 | (gimple_gen_pow2_profiler): Likewise. | |
16384 | (gimple_gen_topn_values_profiler): Likewise. | |
16385 | (gimple_gen_ic_profiler): Likewise. | |
16386 | (gimple_gen_time_profiler): Likewise. | |
16387 | (gimple_gen_average_profiler): Likewise. | |
16388 | (gimple_gen_ior_profiler): Likewise. | |
16389 | ||
16390 | 2019-08-22 Martin Sebor <msebor@redhat.com> | |
16391 | ||
16392 | PR middle-end/91490 | |
16393 | * builtins.c (c_strlen): Rename argument and introduce new local. | |
16394 | Set no-warning bit on original argument. | |
16395 | * expr.c (string_constant): Pass argument type to fold_ctor_reference. | |
16396 | Fold empty and zero constructors into empty strings. | |
16397 | * gimple-fold.c (fold_nonarray_ctor_reference): Return a STRING_CST | |
16398 | for missing initializers. | |
16399 | * tree.c (build_string_literal): Handle optional argument. | |
16400 | * tree.h (build_string_literal): Add defaulted argument. | |
16401 | * gimple-ssa-warn-restrict.c (maybe_diag_access_bounds): Check | |
16402 | no-warning bit on original expression. | |
16403 | ||
16404 | 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org> | |
16405 | ||
16406 | PR target/91481 | |
16407 | * config/rs6000/rs6000.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, | |
16408 | and UNSPEC_DARN_RAW. | |
16409 | (unspecv): New enumerator values UNSPECV_DARN, UNSPECV_DARN_32, and | |
16410 | UNSPECV_DARN_RAW. | |
16411 | (darn_32): Use an unspec_volatile, and UNSPECV_DARN_32. | |
16412 | (darn_raw): Use an unspec_volatile, and UNSPECV_DARN_RAW. | |
16413 | (darn): Use an unspec_volatile, and UNSPECV_DARN. | |
16414 | ||
16415 | 2019-08-22 Segher Boessenkool <segher@kernel.crashing.org> | |
16416 | ||
16417 | * config/rs6000/altivec.md (unspec): Delete UNSPEC_DARN, UNSPEC_DARN_32, | |
16418 | UNSPEC_DARN_RAW, UNSPEC_CMPRB, UNSPEC_CMPRB2, UNSPEC_CMPEQB; move to... | |
16419 | * config/rs6000/rs6000.md (unspec): ... here. | |
16420 | * config/rs6000/altivec.md (darn_32, darn_raw, darn, cmprb, | |
16421 | *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, | |
16422 | cmpeqb, *cmpeqb_internal): Delete, move to... | |
16423 | * config/rs6000/rs6000.md (darn_32, darn_raw, darn, cmprb, | |
16424 | *cmprb_internal, setb_signed, setb_unsigned, cmprb2, *cmprb2_internal, | |
16425 | cmpeqb, *cmpeqb_internal): ... here. | |
16426 | ||
16427 | 2019-08-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
16428 | ||
16429 | * config/arm/arm_acle.h: Use arch=armv8-a+crc+simd pragma for CRC32 | |
16430 | intrinsics if __ARM_FP. | |
16431 | Use __ARM_FEATURE_CRC32 ifdef guard. | |
16432 | ||
16433 | 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com> | |
16434 | ||
16435 | * config/arm/arm.md (neon_for_64bits): Remove. | |
16436 | (avoid_neon_for_64bits): Remove. | |
16437 | (arm_adddi3): Always split early. | |
16438 | (arm_subdi3): Always split early. | |
16439 | (negdi2): Remove Neon expansion. | |
16440 | (split zero_extend): Split before reload. | |
16441 | (split sign_extend): Split before reload. | |
16442 | ||
16443 | 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com> | |
16444 | ||
16445 | * config/arm/iterators.md (qhs_extenddi_cstr): Update. | |
16446 | (qhs_extenddi_cstr): Likewise. | |
16447 | * config/arm/arm.md (ashldi3): Always expand early. | |
16448 | (ashlsi3): Likewise. | |
16449 | (ashrsi3): Likewise. | |
16450 | (zero_extend<mode>di2): Remove Neon variants. | |
16451 | (extend<mode>di2): Likewise. | |
16452 | * config/arm/neon.md (ashldi3_neon_noclobber): Remove. | |
16453 | (signed_shift_di3_neon): Likewise. | |
16454 | (unsigned_shift_di3_neon): Likewise. | |
16455 | (ashrdi3_neon_imm_noclobber): Likewise. | |
16456 | (lshrdi3_neon_imm_noclobber): Likewise. | |
16457 | (<shift>di3_neon): Likewise. | |
16458 | (split extend): Remove DI extend split patterns. | |
16459 | ||
16460 | 2019-08-22 Wilco Dijkstra <wdijkstr@arm.com> | |
16461 | ||
16462 | * config/arm/arm.md (split and/eor/ior): Remove Neon check. | |
16463 | (split not): Add DImode not splitter. | |
16464 | (anddi3): Remove pattern. | |
16465 | (anddi3_insn): Likewise. | |
16466 | (anddi_zesidi_di): Likewise. | |
16467 | (anddi_sesdi_di): Likewise. | |
16468 | (anddi_notdi_di): Likewise. | |
16469 | (anddi_notzesidi_di): Likewise. | |
16470 | (anddi_notsesidi_di): Likewise. | |
16471 | (iordi3): Likewise. | |
16472 | (iordi3_insn): Likewise. | |
16473 | (iordi_zesidi_di): Likewise. | |
16474 | (iordi_sesidi_di): Likewise. | |
16475 | (xordi3): Likewise. | |
16476 | (xordi3_insn): Likewise. | |
16477 | (xordi_sesidi_di): Likewise. | |
16478 | (xordi_zesidi_di): Likewise. | |
16479 | (one_cmpldi2): Likewise. | |
16480 | (one_cmpldi2_insn): Likewise. | |
16481 | * config/arm/constraints.md: Remove De, Df, Dg constraints. | |
16482 | * config/arm/iwmmxt.md (iwmmxt_iordi3): Remove general register | |
16483 | alternative. | |
16484 | (iwmmxt_xordi3): Likewise. | |
16485 | (iwmmxt_anddi3): Likewise. | |
16486 | * config/arm/neon.md (orndi3_neon): Remove pattern. | |
16487 | (anddi_notdi_di): Likewise. | |
16488 | * config/arm/predicates.md (arm_anddi_operand_neon): Remove. | |
16489 | (arm_iordi_operand_neon): Likewise. | |
16490 | (arm_xordi_operand_neon): Likewise. | |
16491 | * config/arm/thumb2.md(iordi_notdi_di): Remove pattern. | |
16492 | (iordi_notzesidi_di): Likewise. | |
16493 | (iordi_notdi_zesidi): Likewise. | |
16494 | (iordi_notsesidi_di): Likewise. | |
16495 | ||
16496 | 2019-08-22 Richard Earnshaw <rearnsha@arm.com> | |
16497 | ||
16498 | * config/arm/arm.md (iorsi3_compare0): Add alternative for 16-bit thumb | |
16499 | insn. | |
16500 | (iorsi3_compare0_scratch): Likewise. | |
16501 | ||
16502 | 2019-08-22 Sylvia Taylor <sylvia.taylor@arm.com> | |
16503 | ||
16504 | * config/aarch64/aarch64-simd-builtins.def: | |
16505 | (ld1x4): New. | |
16506 | (st1x4): Likewise. | |
16507 | * config/aarch64/aarch64-simd.md: | |
16508 | (aarch64_ld1x4<VALLDIF:mode>): New pattern. | |
16509 | (aarch64_st1x4<VALLDIF:mode>): Likewise. | |
16510 | (aarch64_ld1_x4_<mode>): Likewise. | |
16511 | (aarch64_st1_x4_<mode>): Likewise. | |
16512 | * config/aarch64/arm_neon.h: | |
16513 | (vld1_s8_x4): New function. | |
16514 | (vld1q_s8_x4): Likewise. | |
16515 | (vld1_s16_x4): Likewise. | |
16516 | (vld1q_s16_x4): Likewise. | |
16517 | (vld1_s32_x4): Likewise. | |
16518 | (vld1q_s32_x4): Likewise. | |
16519 | (vld1_u8_x4): Likewise. | |
16520 | (vld1q_u8_x4): Likewise. | |
16521 | (vld1_u16_x4): Likewise. | |
16522 | (vld1q_u16_x4): Likewise. | |
16523 | (vld1_u32_x4): Likewise. | |
16524 | (vld1q_u32_x4): Likewise. | |
16525 | (vld1_f16_x4): Likewise. | |
16526 | (vld1q_f16_x4): Likewise. | |
16527 | (vld1_f32_x4): Likewise. | |
16528 | (vld1q_f32_x4): Likewise. | |
16529 | (vld1_p8_x4): Likewise. | |
16530 | (vld1q_p8_x4): Likewise. | |
16531 | (vld1_p16_x4): Likewise. | |
16532 | (vld1q_p16_x4): Likewise. | |
16533 | (vld1_s64_x4): Likewise. | |
16534 | (vld1_u64_x4): Likewise. | |
16535 | (vld1_p64_x4): Likewise. | |
16536 | (vld1q_s64_x4): Likewise. | |
16537 | (vld1q_u64_x4): Likewise. | |
16538 | (vld1q_p64_x4): Likewise. | |
16539 | (vld1_f64_x4): Likewise. | |
16540 | (vld1q_f64_x4): Likewise. | |
16541 | (vst1_s8_x4): Likewise. | |
16542 | (vst1q_s8_x4): Likewise. | |
16543 | (vst1_s16_x4): Likewise. | |
16544 | (vst1q_s16_x4): Likewise. | |
16545 | (vst1_s32_x4): Likewise. | |
16546 | (vst1q_s32_x4): Likewise. | |
16547 | (vst1_u8_x4): Likewise. | |
16548 | (vst1q_u8_x4): Likewise. | |
16549 | (vst1_u16_x4): Likewise. | |
16550 | (vst1q_u16_x4): Likewise. | |
16551 | (vst1_u32_x4): Likewise. | |
16552 | (vst1q_u32_x4): Likewise. | |
16553 | (vst1_f16_x4): Likewise. | |
16554 | (vst1q_f16_x4): Likewise. | |
16555 | (vst1_f32_x4): Likewise. | |
16556 | (vst1q_f32_x4): Likewise. | |
16557 | (vst1_p8_x4): Likewise. | |
16558 | (vst1q_p8_x4): Likewise. | |
16559 | (vst1_p16_x4): Likewise. | |
16560 | (vst1q_p16_x4): Likewise. | |
16561 | (vst1_s64_x4): Likewise. | |
16562 | (vst1_u64_x4): Likewise. | |
16563 | (vst1_p64_x4): Likewise. | |
16564 | (vst1q_s64_x4): Likewise. | |
16565 | (vst1q_u64_x4): Likewise. | |
16566 | (vst1q_p64_x4): Likewise. | |
16567 | (vst1_f64_x4): Likewise. | |
16568 | (vst1q_f64_x4): Likewise. | |
16569 | ||
16570 | 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
16571 | ||
16572 | * config/aarch64/aarch64-sve.md (vcond_mask): Add "@". | |
16573 | ||
16574 | 2019-08-22 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
16575 | Richard Sandiford <richard.sandiford@arm.com> | |
16576 | ||
16577 | PR target/88839 | |
16578 | * config/aarch64/aarch64.c (aarch64_evpc_sel): New function. | |
16579 | (aarch64_expand_vec_perm_const_1): Call aarch64_evpc_sel. | |
16580 | ||
16581 | 2019-08-21 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
16582 | ||
16583 | PR target/90724 | |
16584 | * config/aarch64/aarch64.c (aarch64_gen_compare_reg_maybe_ze): Force y | |
16585 | in reg if it fails aarch64_plus_operand predicate. | |
16586 | ||
16587 | 2019-08-21 Richard Biener <rguenther@suse.de> | |
16588 | ||
16589 | PR tree-optimization/91482 | |
16590 | * tree-ssa-ccp.c (ccp_folder::fold_stmt): Remove useless | |
16591 | BUILT_IN_ASSUME_ALIGNED calls. | |
16592 | ||
16593 | 2019-08-21 Richard Biener <rguenther@suse.de> | |
16594 | ||
16595 | PR target/91498 | |
16596 | PR target/91503 | |
16597 | * config/i386/i386-features.c | |
16598 | (general_scalar_chain::make_vector_copies): Copy stack temporary | |
16599 | rtx when using it multiple times. | |
16600 | (general_scalar_chain::convert_reg): Likewise. | |
16601 | ||
16602 | 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
16603 | ||
16604 | * function.c (assign_parm_find_stack_rtl): Use known_eq instead of ==. | |
16605 | ||
16606 | 2019-08-20 Matthew Beliveau <mbelivea@redhat.com> | |
16607 | ||
16608 | * tree-ssa-dse.c (dse_optimize_redundant_stores): Improved check to | |
16609 | catch more redundant zero initialization cases. | |
16610 | (dse_dom_walker::dse_optimize_stmt): Likewise. | |
16611 | ||
16612 | 2019-08-20 Richard Biener <rguenther@suse.de> | |
16613 | ||
16614 | PR lto/91307 | |
16615 | * ipa.c (cgraph_build_static_cdtor_1): Use names not recognizable | |
16616 | by collect2 when targetm.have_ctors_dtors which avoids dragging | |
16617 | in temporary filenames from LTO input objects. | |
16618 | ||
16619 | 2019-08-20 Richard Biener <rguenther@suse.de> | |
16620 | ||
16621 | PR tree-optimization/37242 | |
16622 | * tree-ssa-sccvn.c (visit_nary_op): Also CSE (T)(a + b) | |
16623 | to (T)a + (T)b if we know that a + b does not overflow. | |
16624 | ||
16625 | 2019-08-20 Eric Botcazou <ebotcazou@adacore.com> | |
16626 | ||
16627 | PR rtl-optimization/91347 | |
16628 | * dse.c (scan_insn): Call add_wild_read for non-const/memset tail calls | |
16629 | before reload if HARD_FRAME_POINTER_IS_ARG_POINTER. | |
16630 | ||
16631 | 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> | |
16632 | ||
16633 | * calls.h (function_arg_info): Add a pass_by_reference field, | |
16634 | defaulting to false. | |
16635 | * calls.c (apply_pass_by_reference_rules): Set pass_by_reference | |
16636 | when applying pass-by-reference semantics. | |
16637 | (initialize_argument_information): Likewise. | |
16638 | (emit_library_call_value_1): Likewise. | |
16639 | * function.c (assign_parm_data_one): Remove passed_pointer field. | |
16640 | (assign_parm_find_data_types): Don't set it. | |
16641 | (assign_parm_find_stack_rtl, assign_parm_adjust_stack_rtl) | |
16642 | (assign_parm_setup_reg, assign_parms, gimplify_parameters): Use | |
16643 | arg.pass_by_reference instead of passed_pointer. | |
16644 | ||
16645 | 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> | |
16646 | ||
16647 | * calls.c (emit_library_call_value_1): Merge arg and orig_arg | |
16648 | into a single function_arg_info, updating its fields when we | |
16649 | apply pass-by-reference and promotion semantics. Use the | |
16650 | function_arg_info to track the mode rather than keeping it in | |
16651 | a separate local variable. | |
16652 | (initialize_argument_information): Likewise. Base the final | |
16653 | arg_to_skip on this new function_arg_info rather than creating | |
16654 | a new one from scratch. | |
16655 | ||
16656 | 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> | |
16657 | ||
16658 | * function.c (assign_parm_data_one): Replace passed_type, | |
16659 | promoted_mode and named_arg with a function_arg_info field. | |
16660 | (assign_parm_find_data_types): Remove local variables and | |
16661 | assign directly to "data". Make data->passed_mode shadow | |
16662 | data->arg.mode until promotion, then assign the promoted | |
16663 | mode to data->arg.mode. | |
16664 | (assign_parms_setup_varargs, assign_parm_find_entry_rtl) | |
16665 | (assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl) | |
16666 | (assign_parm_remove_parallels, assign_parm_setup_block_p) | |
16667 | (assign_parm_setup_block, assign_parm_setup_reg) | |
16668 | (assign_parm_setup_stack, assign_parms, gimplify_parameters): Use | |
16669 | arg.mode instead of promoted_mode, arg.type instead of passed_type | |
16670 | and arg.named instead of named_arg. Use data->arg for | |
16671 | function_arg_info structures that had the field values passed_type, | |
16672 | promoted_mode and named_arg. Base other function_arg_infos on | |
16673 | data->arg, changing the necessary properties. | |
16674 | ||
16675 | 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> | |
16676 | ||
16677 | * calls.h (apply_pass_by_reference_rules): Declare. | |
16678 | * calls.c (apply_pass_by_reference_rules): New function. | |
16679 | * config/c6x/c6x.c (c6x_call_saved_register_used): Use it. | |
16680 | * config/rs6000/rs6000-call.c (rs6000_parm_needs_stack): Likewise. | |
16681 | * config/s390/s390.c (s390_call_saved_register_used): Likewise. | |
16682 | * function.c (assign_parm_find_data_types): Likewise. | |
16683 | * var-tracking.c (prepare_call_arguments): Likewise. | |
16684 | ||
16685 | 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> | |
16686 | ||
16687 | * target.def (must_pass_in_stack): Take a function_arg_info instead | |
16688 | of a mode and a type. | |
16689 | * doc/tm.texi: Regenerate. | |
16690 | * calls.h (must_pass_in_stack_var_size): Take a function_arg_info | |
16691 | instead of a mode and a type. | |
16692 | (must_pass_in_stack_var_size_or_pad): Likewise. | |
16693 | * calls.c (must_pass_in_stack_var_size): Likewise. | |
16694 | (must_pass_in_stack_var_size_or_pad): Likewise. | |
16695 | (initialize_argument_information): Update call to | |
16696 | targetm.calls.must_pass_in_stack. | |
16697 | (must_pass_va_arg_on_stack): Likewise. | |
16698 | * function.c (assign_parm_find_entry_rtl): Likewise. | |
16699 | * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Likewise. | |
16700 | * config/alpha/alpha.c (alpha_function_arg): Likewise. | |
16701 | (alpha_function_arg_advance): Likewise. | |
16702 | * config/cr16/cr16.c (cr16_function_arg): Likewise. | |
16703 | (cr16_function_arg_advance): Likewise. | |
16704 | * config/cris/cris.c (cris_pass_by_reference): Likewise. | |
16705 | (cris_arg_partial_bytes): Likewise. | |
16706 | * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise. | |
16707 | * config/lm32/lm32.c (lm32_function_arg): Likewise. | |
16708 | * config/mcore/mcore.c (mcore_num_arg_regs): Likewise. | |
16709 | (mcore_function_arg, mcore_arg_partial_bytes): Likewise. | |
16710 | * config/mips/mips.c (mips_pass_by_reference): Likewise. | |
16711 | * config/mmix/mmix.c (mmix_function_arg_advance): Likewise. | |
16712 | (mmix_function_arg_1, mmix_pass_by_reference): Likewise. | |
16713 | * config/sh/sh.c (sh_pass_by_reference): Likewise. | |
16714 | * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise. | |
16715 | * config/xtensa/xtensa.c (xtensa_function_arg_advance): Likewise. | |
16716 | * config/arm/arm.c (arm_must_pass_in_stack): Take a function_arg_info | |
16717 | instead of a mode and a type. | |
16718 | * config/fr30/fr30.c (fr30_must_pass_in_stack): Likewise. | |
16719 | (fr30_num_arg_regs): Likewise. | |
16720 | (fr30_setup_incoming_varargs): Update calls accordingly. | |
16721 | (fr30_arg_partial_bytes, fr30_function_arg): Likewise. | |
16722 | (fr30_function_arg_advance): Likewise. | |
16723 | * config/frv/frv.c (frv_must_pass_in_stack): Take a function_arg_info | |
16724 | instead of a mode and a type. | |
16725 | * config/gcn/gcn.c (num_arg_regs): Likewise. | |
16726 | (gcn_function_arg, gcn_function_arg_advance): Update calls to | |
16727 | num_arg_regs and targetm.calls.must_pass_in_stack. | |
16728 | (gcn_arg_partial_bytes): Likewise. | |
16729 | * config/i386/i386.c (ix86_must_pass_in_stack): Take a | |
16730 | function_arg_info instead of a mode and a type. | |
16731 | (classify_argument): Update call accordingly. | |
16732 | * config/nds32/nds32.c (nds32_must_pass_in_stack): Take a | |
16733 | function_arg_info instead of a mode and a type. | |
16734 | * config/rs6000/rs6000-internal.h (rs6000_must_pass_in_stack): | |
16735 | Likewise. | |
16736 | * config/rs6000/rs6000-call.c (rs6000_must_pass_in_stack): Likewise. | |
16737 | (rs6000_parm_needs_stack): Update call accordingly. | |
16738 | (setup_incoming_varargs): Likewise. | |
16739 | ||
16740 | 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> | |
16741 | ||
16742 | * target.def (callee_copies): Take a function_arg_info instead | |
16743 | of a mode, type and named flag. | |
16744 | * doc/tm.texi: Regenerate. | |
16745 | * targhooks.h (hook_callee_copies_named): Take a function_arg_info | |
16746 | instead of a mode, type and named flag. | |
16747 | (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete. | |
16748 | (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. | |
16749 | (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function. | |
16750 | * targhooks.c (hook_callee_copies_named): Take a function_arg_info | |
16751 | instead of a mode, type and named flag. | |
16752 | (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Delete. | |
16753 | (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): Likewise. | |
16754 | (hook_bool_CUMULATIVE_ARGS_arg_info_true): New function. | |
16755 | * calls.h (reference_callee_copied): Take a function_arg_info | |
16756 | instead of a mode, type and named flag. | |
16757 | * calls.c (reference_callee_copied): Likewise. | |
16758 | (initialize_argument_information): Update call accordingly. | |
16759 | (emit_library_call_value_1): Likewise. | |
16760 | * function.c (gimplify_parameters): Likewise. | |
16761 | * config/aarch64/aarch64.c (TARGET_CALLEE_COPIES): Define to | |
16762 | hook_bool_CUMULATIVE_ARGS_arg_info_false instead of | |
16763 | hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false. | |
16764 | * config/c6x/c6x.c (c6x_callee_copies): Delete. | |
16765 | (TARGET_CALLEE_COPIES): Define to | |
16766 | hook_bool_CUMULATIVE_ARGS_arg_info_true instead. | |
16767 | * config/epiphany/epiphany.c (TARGET_CALLEE_COPIES): Define to | |
16768 | hook_bool_CUMULATIVE_ARGS_arg_info_true instead of | |
16769 | hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true. | |
16770 | * config/mips/mips.c (mips_callee_copies): Take a function_arg_info | |
16771 | instead of a mode, type and named flag. | |
16772 | * config/mmix/mmix.c (TARGET_CALLEE_COPIES): Define to | |
16773 | hook_bool_CUMULATIVE_ARGS_arg_info_true instead of | |
16774 | hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true. | |
16775 | * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): Likewise. | |
16776 | * config/msp430/msp430.c (msp430_callee_copies): Delete. | |
16777 | (TARGET_CALLEE_COPIES): Define to | |
16778 | hook_bool_CUMULATIVE_ARGS_arg_info_true instead. | |
16779 | * config/pa/pa.c (pa_callee_copies): Take a function_arg_info | |
16780 | instead of a mode, type and named flag. | |
16781 | * config/sh/sh.c (sh_callee_copies): Likewise. | |
16782 | * config/v850/v850.c (TARGET_CALLEE_COPIES): Define to | |
16783 | hook_bool_CUMULATIVE_ARGS_arg_info_true instead of | |
16784 | hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true. | |
16785 | ||
16786 | 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> | |
16787 | ||
16788 | * target.def (function_arg_advance): Take a function_arg_info instead | |
16789 | of a mode, type and named flag. | |
16790 | * doc/tm.texi: Regenerate. | |
16791 | * targhooks.h (default_function_arg_advance): Take a function_arg_info | |
16792 | instead of a mode, type and named flag. | |
16793 | * targhooks.c (default_function_arg_advance): Likewise. | |
16794 | * calls.c (initialize_argument_information): Update call to | |
16795 | targetm.calls.function_arg_advance. | |
16796 | (emit_library_call_value_1): Likewise. | |
16797 | * dse.c (get_call_args): Likewise. | |
16798 | * expr.c (block_move_libcall_safe_for_call_parm): Likewise. | |
16799 | * function.c (assign_parms, gimplify_parameters): Likewise. | |
16800 | * var-tracking.c (prepare_call_arguments): Likewise. | |
16801 | * config/aarch64/aarch64.c (aarch64_function_arg_advance): Take a | |
16802 | function_arg_info instead of a mode, type and named flag. | |
16803 | (aarch64_setup_incoming_varargs): Update call accordingly. | |
16804 | * config/alpha/alpha.c (alpha_function_arg_advance): Take a | |
16805 | function_arg_info instead of a mode, type and named flag. | |
16806 | (alpha_setup_incoming_varargs): Update call accordingly. | |
16807 | * config/arc/arc.c (arc_function_arg_advance): Take a | |
16808 | function_arg_info instead of a mode, type and named flag. | |
16809 | (arc_setup_incoming_varargs): Update call accordingly. | |
16810 | * config/arm/arm.c (arm_function_arg_advance): Take a | |
16811 | function_arg_info instead of a mode, type and named flag. | |
16812 | (cmse_func_args_or_return_in_stack): Update call accordingly. | |
16813 | (arm_function_ok_for_sibcall): Likewise. | |
16814 | (cmse_nonsecure_call_clear_caller_saved): Likewise. | |
16815 | * config/avr/avr.c (avr_function_arg_advance): Take a | |
16816 | function_arg_info instead of a mode, type and named flag. | |
16817 | * config/bfin/bfin.c (bfin_function_arg_advance): Likewise. | |
16818 | * config/c6x/c6x.c (c6x_function_arg_advance): Likewise. | |
16819 | (c6x_call_saved_register_used): Update call accordingly. | |
16820 | * config/cr16/cr16.c (cr16_function_arg_advance): Take a | |
16821 | function_arg_info instead of a mode, type and named flag. | |
16822 | * config/cris/cris.c (cris_function_arg_advance): Likewise. | |
16823 | * config/csky/csky.c (csky_function_arg_advance): Likewise. | |
16824 | (csky_setup_incoming_varargs): Update call accordingly. | |
16825 | * config/epiphany/epiphany.c (epiphany_function_arg_advance): Take a | |
16826 | function_arg_info instead of a mode, type and named flag. | |
16827 | * config/fr30/fr30.c (fr30_function_arg_advance): Likewise. | |
16828 | * config/frv/frv.c (frv_function_arg_advance): Likewise. | |
16829 | * config/ft32/ft32.c (ft32_function_arg_advance): Likewise. | |
16830 | * config/gcn/gcn.c (gcn_function_arg_advance): Likewise. | |
16831 | * config/h8300/h8300.c (h8300_function_arg_advance): Likewise. | |
16832 | * config/i386/i386.c (ix86_function_arg_advance): Likewise. | |
16833 | (ix86_setup_incoming_varargs): Update call accordingly. | |
16834 | * config/ia64/ia64.c (ia64_function_arg_advance): Take a | |
16835 | function_arg_info instead of a mode, type and named flag. | |
16836 | (ia64_setup_incoming_varargs): Update call accordingly. | |
16837 | * config/iq2000/iq2000.c (iq2000_function_arg_advance): Take a | |
16838 | function_arg_info instead of a mode, type and named flag. | |
16839 | (iq2000_expand_prologue): Update call accordingly. | |
16840 | * config/lm32/lm32.c (lm32_function_arg_advance): Take a | |
16841 | function_arg_info instead of a mode, type and named flag. | |
16842 | * config/m32c/m32c.c (m32c_function_arg_advance): Likewise. | |
16843 | * config/m32r/m32r.c (m32r_function_arg_advance): Likewise. | |
16844 | * config/m68k/m68k.c (m68k_function_arg_advance): Likewise. | |
16845 | * config/mcore/mcore.c (mcore_function_arg_advance): Likewise. | |
16846 | * config/microblaze/microblaze.c (microblaze_function_arg_advance): | |
16847 | Likewise. | |
16848 | (microblaze_expand_prologue): Update call accordingly. | |
16849 | * config/mips/mips.c (mips_function_arg_advance): Take a | |
16850 | function_arg_info instead of a mode, type and named flag. | |
16851 | (mips_setup_incoming_varargs): Update call accordingly. | |
16852 | (mips_output_args_xfer): Likewise. | |
16853 | * config/mmix/mmix.c (mmix_function_arg_advance): Take a | |
16854 | function_arg_info instead of a mode, type and named flag. | |
16855 | * config/mn10300/mn10300.c (mn10300_function_arg_advance): Likewise. | |
16856 | * config/moxie/moxie.c (moxie_function_arg_advance): Likewise. | |
16857 | * config/msp430/msp430.c (msp430_function_arg_advance): Likewise. | |
16858 | * config/nds32/nds32.c (nds32_function_arg_advance): Likewise. | |
16859 | * config/nios2/nios2.c (nios2_function_arg_advance): Likewise. | |
16860 | (nios2_setup_incoming_varargs): Update call accordingly. | |
16861 | * config/nvptx/nvptx.c (nvptx_function_arg_advance): Take a | |
16862 | function_arg_info instead of a mode, type and named flag. | |
16863 | * config/or1k/or1k.c (or1k_function_arg_advance): Likewise. | |
16864 | * config/pa/pa.c (pa_function_arg_advance): Likewise. | |
16865 | * config/pdp11/pdp11.c (pdp11_function_arg_advance): Likewise. | |
16866 | * config/pru/pru.c (pru_function_arg_advance): Likewise. | |
16867 | * config/riscv/riscv.c (riscv_function_arg_advance): Likewise. | |
16868 | (riscv_setup_incoming_varargs): Update call accordingly. | |
16869 | * config/rl78/rl78.c (rl78_function_arg_advance): Take a | |
16870 | function_arg_info instead of a mode, type and named flag. | |
16871 | * config/rs6000/rs6000-internal.h (rs6000_function_arg_advance): | |
16872 | Likewise. | |
16873 | * config/rs6000/rs6000-call.c (rs6000_function_arg_advance): Likewise. | |
16874 | (rs6000_parm_needs_stack): Update call accordingly. | |
16875 | * config/rx/rx.c (rx_function_arg_advance): Take a function_arg_info | |
16876 | instead of a mode, type and named flag. | |
16877 | * config/s390/s390.c (s390_function_arg_advance): Likewise. | |
16878 | (s390_call_saved_register_used): Update call accordingly. | |
16879 | * config/sh/sh.c (sh_function_arg_advance): Take a function_arg_info | |
16880 | instead of a mode, type and named flag. | |
16881 | (sh_output_mi_thunk): Update call accordingly. | |
16882 | * config/sparc/sparc.c (sparc_function_arg_advance): Take a | |
16883 | function_arg_info instead of a mode, type and named flag. | |
16884 | * config/spu/spu.c (spu_function_arg_advance): Likewise. | |
16885 | (spu_setup_incoming_varargs): Update call accordingly. | |
16886 | * config/stormy16/stormy16.c (xstormy16_function_arg_advance): Take a | |
16887 | function_arg_info instead of a mode, type and named flag. | |
16888 | * config/tilegx/tilegx.c (tilegx_function_arg_advance): Likewise. | |
16889 | (tilegx_setup_incoming_varargs): Update call accordingly. | |
16890 | * config/tilepro/tilepro.c (tilepro_function_arg_advance): Take a | |
16891 | function_arg_info instead of a mode, type and named flag. | |
16892 | (tilegx_setup_incoming_varargs): Update call accordingly. | |
16893 | * config/v850/v850.c (v850_function_arg_advance): Take a | |
16894 | function_arg_info instead of a mode, type and named flag. | |
16895 | * config/vax/vax.c (vax_function_arg_advance): Likewise. | |
16896 | * config/visium/visium.c (visium_function_arg_advance): Likewise. | |
16897 | (visium_setup_incoming_varargs): Update call accordingly. | |
16898 | * config/xtensa/xtensa.c (xtensa_function_arg_advance): Take a | |
16899 | function_arg_info instead of a mode, type and named flag. | |
16900 | ||
16901 | 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> | |
16902 | ||
16903 | * target.def (function_arg, function_incoming_arg): Take a | |
16904 | function_arg_info instead of a mode, tree and named flag. | |
16905 | * doc/tm.texi: Regenerate. | |
16906 | * targhooks.h (default_function_arg): Take a function_arg_info | |
16907 | instead of a mode, tree and named flag. | |
16908 | (default_function_incoming_arg): Likewise. | |
16909 | * targhooks.c (default_function_arg): Likewise. | |
16910 | (default_function_incoming_arg): Likewise. | |
16911 | * calls.h (function_arg_info::end_marker_p): New function. | |
16912 | (function_arg_info::end_marker): Likewise. | |
16913 | * calls.c (prepare_call_address, initialize_argument_information) | |
16914 | (expand_call, emit_library_call_value_1): Update calls to | |
16915 | targetm.calls.function_arg and targetm.calls.function_incoming_arg. | |
16916 | * dse.c: Include calls.h. | |
16917 | (get_call_args): Update call to targetm.calls.function_arg. | |
16918 | * expr.c (block_move_libcall_safe_for_call_parm): Likewise. | |
16919 | * var-tracking.c (prepare_call_arguments): Likewise. | |
16920 | * function.c (assign_parm_find_entry_rtl): Update call to | |
16921 | targetm.calls.function_incoming_arg. | |
16922 | * config/aarch64/aarch64.c (aarch64_function_arg): Take a | |
16923 | function_arg_info instead of a mode, tree and named flag. | |
16924 | * config/alpha/alpha.c (alpha_function_arg): Likewise. | |
16925 | * config/arc/arc.c (arc_function_arg): Likewise. | |
16926 | * config/arm/arm.c (arm_function_arg): Likewise. | |
16927 | (cmse_func_args_or_return_in_stack): Update call accordingly. | |
16928 | (arm_function_ok_for_sibcall): Likewise. | |
16929 | (cmse_nonsecure_call_clear_caller_saved): Likewise. | |
16930 | * config/avr/avr.c (avr_function_arg): Take a function_arg_info | |
16931 | instead of a mode, tree and named flag. | |
16932 | * config/bfin/bfin.c (bfin_function_arg): Likewise. | |
16933 | * config/c6x/c6x.c (c6x_function_arg): Likewise. | |
16934 | (c6x_call_saved_register_used): Update call accordingly. | |
16935 | * config/cr16/cr16.c (cr16_function_arg): Take a function_arg_info | |
16936 | instead of a mode, tree and named flag. | |
16937 | * config/cris/cris.c (cris_function_arg, cris_function_incoming_arg) | |
16938 | (cris_function_arg_1): Likewise. | |
16939 | * config/csky/csky.c (csky_function_arg): Likewise. | |
16940 | * config/epiphany/epiphany.c (epiphany_function_arg): Likewise. | |
16941 | * config/fr30/fr30.c (fr30_function_arg): Likewise. | |
16942 | * config/frv/frv.c (frv_function_arg, frv_function_incoming_arg) | |
16943 | (frv_function_arg_1): Likewise. | |
16944 | * config/ft32/ft32.c (ft32_function_arg): Likewise. | |
16945 | * config/gcn/gcn.c (gcn_function_arg): Likewise. | |
16946 | * config/h8300/h8300.c (h8300_function_arg): Likewise. | |
16947 | * config/i386/i386.c (ix86_function_arg): Likewise. | |
16948 | * config/ia64/ia64.c (ia64_function_arg, ia64_function_incoming_arg) | |
16949 | (ia64_function_arg_1): Likewise. | |
16950 | * config/iq2000/iq2000.c (iq2000_function_arg): Likewise. | |
16951 | (iq2000_expand_prologue, iq2000_pass_by_reference): Update call | |
16952 | accordingly. | |
16953 | * config/lm32/lm32.c (lm32_function_arg): Take a function_arg_info | |
16954 | instead of a mode, tree and named flag. | |
16955 | * config/m32c/m32c.c (m32c_function_arg): Likewise. | |
16956 | * config/m32r/m32r.c (m32r_function_arg): Likewise. | |
16957 | * config/m68k/m68k.c (m68k_function_arg): Likewise. | |
16958 | * config/mcore/mcore.c (mcore_function_arg): Likewise. | |
16959 | * config/microblaze/microblaze.c (microblaze_function_arg): Likewise. | |
16960 | (microblaze_expand_prologue): Update call accordingly. | |
16961 | * config/mips/mips.c (mips_function_arg): Take a function_arg_info | |
16962 | instead of a mode, tree and named flag. | |
16963 | * config/mmix/mmix.c (mmix_function_incoming_arg, mmix_function_arg) | |
16964 | (mmix_function_arg_1): Likewise. | |
16965 | * config/mn10300/mn10300.c (mn10300_function_arg): Likewise. | |
16966 | * config/moxie/moxie.c (moxie_function_arg): Likewise. | |
16967 | * config/msp430/msp430.c (msp430_function_arg): Likewise. | |
16968 | * config/nds32/nds32.c (nds32_function_arg): Likewise. | |
16969 | * config/nios2/nios2.c (nios2_function_arg): Likewise. | |
16970 | * config/nvptx/nvptx.c (nvptx_function_arg): Likewise. | |
16971 | (nvptx_function_incoming_arg): Likewise. | |
16972 | * config/or1k/or1k.c (or1k_function_arg): Likewise. | |
16973 | * config/pa/pa.c (pa_function_arg): Likewise. | |
16974 | * config/pdp11/pdp11.c (pdp11_function_arg): Likewise. | |
16975 | * config/pru/pru.c (pru_function_arg): Likewise. | |
16976 | * config/riscv/riscv.c (riscv_function_arg): Likewise. | |
16977 | * config/rl78/rl78.c (rl78_function_arg): Likewise. | |
16978 | * config/rs6000/rs6000-internal.h (rs6000_function_arg): Likewise. | |
16979 | * config/rs6000/rs6000-call.c (rs6000_function_arg): Likewise. | |
16980 | (rs6000_parm_needs_stack): Update call accordingly. | |
16981 | * config/rx/rx.c (rx_function_arg): Take a function_arg_info | |
16982 | instead of a mode, tree and named flag. | |
16983 | * config/s390/s390.c (s390_function_arg): Likewise. | |
16984 | (s390_call_saved_register_used): Update call accordingly. | |
16985 | * config/sh/sh.c (sh_function_arg): Take a function_arg_info | |
16986 | instead of a mode, tree and named flag. | |
16987 | (sh_output_mi_thunk): Update call accordingly. | |
16988 | * config/sparc/sparc.c (sparc_function_arg_1, sparc_function_arg) | |
16989 | (sparc_function_incoming_arg): Take a function_arg_info instead of | |
16990 | a mode, tree and named flag. | |
16991 | * config/spu/spu.c (spu_function_arg): Likewise. | |
16992 | * config/stormy16/stormy16.c (xstormy16_function_arg): Likewise. | |
16993 | * config/tilegx/tilegx.c (tilegx_function_arg): Likewise. | |
16994 | * config/tilepro/tilepro.c (tilepro_function_arg): Likewise. | |
16995 | * config/v850/v850.c (v850_function_arg): Likewise. | |
16996 | * config/vax/vax.c (vax_function_arg): Likewise. | |
16997 | * config/visium/visium.c (visium_function_arg): Likewise. | |
16998 | * config/xtensa/xtensa.c (xtensa_function_arg_1, xtensa_function_arg) | |
16999 | (xtensa_function_incoming_arg): Likewise. | |
17000 | ||
17001 | 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> | |
17002 | ||
17003 | * target.def (setup_incoming_varargs): Take a function_arg_info | |
17004 | instead of a mode and tree. | |
17005 | * doc/tm.texi: Regenerate. | |
17006 | * targhooks.h (default_setup_incoming_varargs): Take a | |
17007 | function_arg_info instead of a mode and tree. | |
17008 | * targhooks.c (default_setup_incoming_varargs): Likewise. | |
17009 | * config/aarch64/aarch64.c (aarch64_setup_incoming_varargs): Likewise. | |
17010 | * config/alpha/alpha.c (alpha_setup_incoming_varargs): Likewise. | |
17011 | * config/arc/arc.c (arc_setup_incoming_varargs): Likewise. | |
17012 | * config/arm/arm.c (arm_setup_incoming_varargs): Likewise. | |
17013 | * config/bfin/bfin.c (setup_incoming_varargs): Likewise. | |
17014 | * config/cris/cris.c (cris_setup_incoming_varargs): Likewise. | |
17015 | * config/csky/csky.c (csky_setup_incoming_varargs): Likewise. | |
17016 | * config/epiphany/epiphany.c (epiphany_setup_incoming_varargs): | |
17017 | Likewise. | |
17018 | * config/fr30/fr30.c (fr30_setup_incoming_varargs): Likewise. | |
17019 | * config/frv/frv.c (frv_setup_incoming_varargs): Likewise. | |
17020 | * config/ft32/ft32.c (ft32_setup_incoming_varargs): Likewise. | |
17021 | * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise. | |
17022 | * config/ia64/ia64.c (ia64_setup_incoming_varargs): Likewise. | |
17023 | * config/iq2000/iq2000.c (iq2000_setup_incoming_varargs): Likewise. | |
17024 | * config/lm32/lm32.c (lm32_setup_incoming_varargs): Likewise. | |
17025 | * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise. | |
17026 | * config/mcore/mcore.c (mcore_setup_incoming_varargs): Likewise. | |
17027 | * config/mips/mips.c (mips_setup_incoming_varargs): Likewise. | |
17028 | * config/mmix/mmix.c (mmix_setup_incoming_varargs): Likewise. | |
17029 | * config/moxie/moxie.c (moxie_setup_incoming_varargs): Likewise. | |
17030 | * config/nds32/nds32.c (nds32_setup_incoming_varargs): Likewise. | |
17031 | * config/nios2/nios2.c (nios2_setup_incoming_varargs): Likewise. | |
17032 | * config/riscv/riscv.c (riscv_setup_incoming_varargs): Likewise. | |
17033 | * config/rs6000/rs6000-internal.h (setup_incoming_varargs): Likewise. | |
17034 | * config/rs6000/rs6000-call.c (setup_incoming_varargs): Likewise. | |
17035 | * config/sh/sh.c (sh_setup_incoming_varargs): Likewise. | |
17036 | * config/spu/spu.c (spu_setup_incoming_varargs): Likewise. | |
17037 | * config/tilegx/tilegx.c (tilegx_setup_incoming_varargs): Likewise. | |
17038 | * config/tilepro/tilepro.c (tilepro_setup_incoming_varargs): Likewise. | |
17039 | * config/visium/visium.c (visium_setup_incoming_varargs): Likewise. | |
17040 | * function.c (assign_parms_setup_varargs): Update call to | |
17041 | targetm.calls.setup_incoming_varargs. | |
17042 | ||
17043 | 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> | |
17044 | ||
17045 | * target.def (pass_by_reference): Take a function_arg_info instead | |
17046 | of a mode, type and named flag. | |
17047 | * doc/tm.texi: Regenerate. | |
17048 | * targhooks.h (hook_pass_by_reference_must_pass_in_stack): Update | |
17049 | accordingly. | |
17050 | (hook_bool_CUMULATIVE_ARGS_arg_info_false): Declare. | |
17051 | * targhooks.c (hook_pass_by_reference_must_pass_in_stack): Take a | |
17052 | function_arg_info instead of a mode, type and named flag. | |
17053 | (hook_bool_CUMULATIVE_ARGS_arg_info_false): New function. | |
17054 | * calls.h (pass_by_reference): Take a function_arg_info instead of a | |
17055 | mode, type and named flag. | |
17056 | * calls.c (pass_by_reference): Likewise. | |
17057 | (pass_va_arg_by_reference): Update call accordingly. | |
17058 | (initialize_argument_information): Likewise. | |
17059 | (emit_library_call_value_1): Likewise. | |
17060 | * function.c (assign_parm_find_data_types): Likewise. | |
17061 | * var-tracking.c (prepare_call_arguments): Likewise. | |
17062 | * stor-layout.c: Include calls.h. | |
17063 | (compute_record_mode): Update call to targetm.calls.pass_by_reference. | |
17064 | * config/aarch64/aarch64.c (aarch64_pass_by_reference): Take a | |
17065 | function_arg_info instead of a mode, type and named flag. | |
17066 | * config/alpha/alpha.c (alpha_pass_by_reference): Likewise. | |
17067 | * config/arc/arc.c (arc_pass_by_reference): Likewise. | |
17068 | * config/arm/arm.c (arm_pass_by_reference): Likewise. | |
17069 | * config/bfin/bfin.c (bfin_pass_by_reference): Likewise. | |
17070 | * config/c6x/c6x.c (c6x_pass_by_reference): Likewise. | |
17071 | (c6x_call_saved_register_used): Update call to pass_by_reference. | |
17072 | * config/cris/cris.c (cris_pass_by_reference): Take a | |
17073 | function_arg_info instead of a mode, type and named flag. | |
17074 | * config/epiphany/epiphany.c (epiphany_pass_by_reference): Take a | |
17075 | function_arg_info instead of a mode, type and named flag. | |
17076 | (epiphany_arg_partial_bytes): Update call accordingly. | |
17077 | * config/ft32/ft32.c (ft32_pass_by_reference): Take a | |
17078 | function_arg_info instead of a mode, type and named flag. | |
17079 | (ft32_arg_partial_bytes): Update call accordingly. | |
17080 | * config/i386/i386.c (ix86_pass_by_reference): Take a | |
17081 | function_arg_info instead of a mode, type and named flag. | |
17082 | * config/iq2000/iq2000.c (iq2000_pass_by_reference): Likewise. | |
17083 | * config/m32c/m32c.c (m32c_pass_by_reference): Likewise. | |
17084 | * config/m32r/m32r.c (m32r_pass_by_reference): Likewise. | |
17085 | (m32r_return_in_memory): Update call accordingly. | |
17086 | * config/mips/mips.c (mips_pass_by_reference): Take a | |
17087 | function_arg_info instead of a mode, type and named flag. | |
17088 | * config/mmix/mmix.c (mmix_pass_by_reference): Likewise. | |
17089 | * config/mn10300/mn10300.c (mn10300_pass_by_reference): Likewise. | |
17090 | * config/moxie/moxie.c (moxie_pass_by_reference): Likewise. | |
17091 | (moxie_arg_partial_bytes): Update call accordingly. | |
17092 | * config/msp430/msp430.c (msp430_pass_by_reference): Take a | |
17093 | function_arg_info instead of a mode, type and named flag. | |
17094 | * config/nvptx/nvptx.c (nvptx_pass_by_reference): Likewise. | |
17095 | * config/or1k/or1k.c (or1k_pass_by_reference): Likewise. | |
17096 | * config/pa/pa.c (pa_pass_by_reference): Likewise. | |
17097 | * config/riscv/riscv.c (riscv_pass_by_reference): Likewise. | |
17098 | (riscv_return_in_memory): Update call accordingly. | |
17099 | * config/rs6000/rs6000-internal.h (rs6000_pass_by_reference): Take a | |
17100 | function_arg_info instead of a mode, type and named flag. | |
17101 | * config/rs6000/rs6000-call.c (rs6000_pass_by_reference): Likewise. | |
17102 | (rs6000_parm_needs_stack): Update call to pass_by_reference. | |
17103 | * config/s390/s390.c (s390_pass_by_reference): Take a | |
17104 | function_arg_info instead of a mode, type and named flag. | |
17105 | (s390_call_saved_register_used): Update call accordingly. | |
17106 | * config/sh/sh.c (sh_pass_by_reference): Take a function_arg_info | |
17107 | instead of a mode, type and named flag. | |
17108 | * config/sparc/sparc.c (sparc_pass_by_reference): Likewise. | |
17109 | * config/spu/spu.c (spu_pass_by_reference): Likewise. | |
17110 | * config/tilegx/tilegx.c (tilegx_pass_by_reference): Likewise. | |
17111 | * config/tilepro/tilepro.c (tilepro_pass_by_reference): Likewise. | |
17112 | * config/v850/v850.c (v850_pass_by_reference): Likewise. | |
17113 | * config/visium/visium.c (visium_pass_by_reference): Likewise. | |
17114 | ||
17115 | 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> | |
17116 | ||
17117 | * target.def (arg_partial_bytes): Take a function_arg_info instead | |
17118 | of a mode, type and named flag. | |
17119 | * doc/tm.texi: Regenerate. | |
17120 | * target.h (function_arg_info): Declare. | |
17121 | * calls.h (function_arg_info): New class. | |
17122 | * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete. | |
17123 | (hook_int_CUMULATIVE_ARGS_arg_info_0): Declare. | |
17124 | * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Delete. | |
17125 | (hook_int_CUMULATIVE_ARGS_arg_info_0): New function. | |
17126 | * calls.c (initialize_argument_information): Update call to | |
17127 | targetm.calls.partial_bytes. | |
17128 | (emit_library_call_value_1): Likewise. | |
17129 | * expr.c (block_move_libcall_safe_for_call_parm): Likewise. | |
17130 | * function.c (assign_parm_find_entry_rtl): Likewise. | |
17131 | * config/alpha/alpha.c (alpha_arg_partial_bytes): Take a | |
17132 | function_arg_info instead of a mode, type and named flag. | |
17133 | * config/arc/arc.c (arc_arg_partial_bytes): Likewise. | |
17134 | * config/arm/arm.c (arm_arg_partial_bytes): Likewise. | |
17135 | (cmse_func_args_or_return_in_stack): Update accordingly. | |
17136 | * config/bfin/bfin.c (bfin_arg_partial_bytes): Take a | |
17137 | function_arg_info instead of a mode, type and named flag. | |
17138 | * config/cris/cris.c (cris_arg_partial_bytes): Likewise. | |
17139 | * config/csky/csky.c (csky_arg_partial_bytes): Likewise. | |
17140 | * config/epiphany/epiphany.c (epiphany_arg_partial_bytes): Likewise. | |
17141 | * config/fr30/fr30.c: Include calls.h. | |
17142 | (fr30_arg_partial_bytes): Take a function_arg_info instead of a mode, | |
17143 | type and named flag. | |
17144 | * config/frv/frv.c: Include calls.h. | |
17145 | (frv_arg_partial_bytes): Take a function_arg_info instead of a mode, | |
17146 | type and named flag. | |
17147 | * config/ft32/ft32.c (ft32_arg_partial_bytes): Likewise. | |
17148 | * config/gcn/gcn.c (gcn_arg_partial_bytes): Likewise. | |
17149 | * config/ia64/ia64.c (ia64_arg_partial_bytes): Likewise. | |
17150 | * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Likewise. | |
17151 | * config/m32r/m32r.c (m32r_arg_partial_bytes): Likewise. | |
17152 | * config/mcore/mcore.c (mcore_arg_partial_bytes): Likewise. | |
17153 | * config/microblaze/microblaze.c (function_arg_partial_bytes): | |
17154 | Likewise. | |
17155 | * config/mips/mips.c (mips_arg_partial_bytes): Likewise. | |
17156 | * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Likewise. | |
17157 | * config/moxie/moxie.c (moxie_arg_partial_bytes): Likewise. | |
17158 | * config/msp430/msp430.c (msp430_arg_partial_bytes): Likewise. | |
17159 | * config/nds32/nds32.c (nds32_arg_partial_bytes): Likewise. | |
17160 | * config/nios2/nios2.c (nios2_arg_partial_bytes): Likewise. | |
17161 | * config/pa/pa.c (pa_arg_partial_bytes): Likewise. | |
17162 | * config/pru/pru.c (pru_arg_partial_bytes): Likewise. | |
17163 | * config/riscv/riscv.c (riscv_arg_partial_bytes): Likewise. | |
17164 | * config/rs6000/rs6000-internal.h (rs6000_arg_partial_bytes): Likewise. | |
17165 | * config/rs6000/rs6000-call.c (rs6000_arg_partial_bytes): Likewise. | |
17166 | (rs6000_parm_needs_stack): Update call accordingly. | |
17167 | * config/sh/sh.c (sh_arg_partial_bytes): Take a | |
17168 | function_arg_info instead of a mode, type and named flag. | |
17169 | * config/sparc/sparc.c (sparc_arg_partial_bytes): Likewise. | |
17170 | * config/v850/v850.c (v850_arg_partial_bytes): Likewise. | |
17171 | ||
17172 | 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> | |
17173 | ||
17174 | * calls.h (must_pass_va_arg_in_stack): Declare. | |
17175 | * calls.c (must_pass_va_arg_in_stack): New function. | |
17176 | * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Use it. | |
17177 | * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise. | |
17178 | * config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr): | |
17179 | Likewise. | |
17180 | * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. | |
17181 | ||
17182 | 2019-08-20 Richard Sandiford <richard.sandiford@arm.com> | |
17183 | ||
17184 | * calls.h (pass_va_arg_by_reference): Declare. | |
17185 | * calls.c (pass_va_arg_by_reference): New function. | |
17186 | * config/aarch64/aarch64.c (aarch64_gimplify_va_arg_expr): Use it. | |
17187 | * config/alpha/alpha.c (alpha_gimplify_va_arg): Likewise. | |
17188 | * config/gcn/gcn.c (gcn_gimplify_va_arg_expr): Likewise. | |
17189 | * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. | |
17190 | * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. | |
17191 | * config/mips/mips.c (mips_std_gimplify_va_arg_expr): Likewise. | |
17192 | (mips_gimplify_va_arg_expr): Likewise. | |
17193 | * config/msp430/msp430.c (msp430_gimplify_va_arg_expr): Likewise. | |
17194 | * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. | |
17195 | * config/rs6000/rs6000-call.c (rs6000_gimplify_va_arg): Likewise. | |
17196 | * config/s390/s390.c (s390_gimplify_va_arg): Likewise. | |
17197 | * config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise. | |
17198 | * config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise. | |
17199 | * config/tilegx/tilegx.c (tilegx_gimplify_va_arg_expr): Likewise. | |
17200 | * config/tilepro/tilepro.c (tilepro_gimplify_va_arg_expr): Likewise. | |
17201 | * config/visium/visium.c (visium_gimplify_va_arg): Likewise. | |
17202 | * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. | |
17203 | * targhooks.c (std_gimplify_va_arg_expr): Likewise. | |
17204 | ||
17205 | 2019-08-20 Richard Biener <rguenther@suse.de> | |
17206 | ||
17207 | PR target/91498 | |
17208 | * config/i386/i386-features.c (general_scalar_chain::convert_op): | |
17209 | Use (vec_merge (vec_duplicate..)) style vector from scalar move. | |
17210 | (convert_scalars_to_vector): Add timode_p parameter and use it | |
17211 | to guard TImode-only operation. | |
17212 | (pass_stv::gate): Adjust so STV runs twice for TARGET_64BIT. | |
17213 | (pass_stv::execute): Pass down timode_p. | |
17214 | ||
17215 | 2019-08-20 Lili Cui <lili.cui@intel.com> | |
17216 | ||
17217 | * common/config/i386/i386-common.c | |
17218 | (processor_names): Add tigerlake and cooperlake. | |
17219 | (processor_alias_table): Add tigerlake and cooperlake. | |
17220 | * config.gcc: Add -march=tigerlake and cooperlake. | |
17221 | * config/i386/driver-i386.c | |
17222 | (host_detect_local_cpu): Detect tigerlake and cooperlake. | |
17223 | Add "has_avx" to classify processor. | |
17224 | * config/i386/i386-builtins.c (processor_model) : | |
17225 | Add M_INTEL_COREI7_TIGERLAKE and M_INTEL_COREI7_COOPERLAKE. | |
17226 | (arch_names_table): Add tigerlake and cooperlake. | |
17227 | (get_builtin_code_for_version): Handle PROCESSOR_TIGERLAKE | |
17228 | and PROCESSOR_COOPERLAKE. | |
17229 | * config/i386/i386-c.c | |
17230 | (ix86_target_macros_internal): Handle tigerlake and cooperlake. | |
17231 | * config/i386/i386-options.c | |
17232 | (m_TIGERLAKE): Define. | |
17233 | (m_COOPERLAKE): Ditto. | |
17234 | (m_CORE_AVX512): Ditto. | |
17235 | (processor_cost_table): Add cascadelake. | |
17236 | (ix86_option_override_internal): Hadle PTA_MOVDIRI, PTA_MOVDIR64B. | |
17237 | * config/i386/i386.h | |
17238 | (ix86_size_cost): Define TARGET_TIGERLAKE and TARGET_COOPERLAKE. | |
17239 | (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE. | |
17240 | (PTA_MOVDIRI): Ditto. | |
17241 | (PTA_MOVDIR64B): Ditto. | |
17242 | (PTA_COOPERLAKE): Ditto. | |
17243 | (PTA_TIGERLAKE): Ditto. | |
17244 | (processor_type): Add PROCESSOR_TIGERLAKE and PROCESSOR_COOPERLAKE. | |
17245 | * doc/extend.texi: Add tigerlake and cooperlake. | |
17246 | * doc/invoke.texi: Add tigerlake and cooperlake. | |
17247 | ||
17248 | 2019-08-20 Gerald Pfeifer <gerald@pfeifer.com> | |
17249 | ||
17250 | * doc/install.texi (Specific, alpha): Remove note to use | |
17251 | binutils 2.11.2 or later. | |
17252 | ||
17253 | 2019-08-20 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
17254 | ||
17255 | PR middle-end/89544 | |
17256 | * function.c (assign_parm_find_stack_rtl): Use larger alignment | |
17257 | when possible. | |
17258 | ||
17259 | 2019-08-19 Joel Hutton <Joel.Hutton@arm.com> | |
17260 | ||
17261 | * config/aarch64/aarch64-protos.h (aarch64_fpconst_pow2_recip): New prototype | |
17262 | * config/aarch64/aarch64.c (aarch64_fpconst_pow2_recip): New function | |
17263 | * config/aarch64/aarch64.md (*aarch64_<su_optab>cvtf<fcvt_target><GPF:mode>2_mult): New pattern | |
17264 | (*aarch64_<su_optab>cvtf<fcvt_iesize><GPF:mode>2_mult): New pattern | |
17265 | * config/aarch64/constraints.md (Dt): New constraint | |
17266 | * config/aarch64/predicates.md (aarch64_fpconst_pow2_recip): New predicate | |
17267 | ||
17268 | 2019-08-19 Richard Biener <rguenther@suse.de> | |
17269 | ||
17270 | PR tree-optimization/91403 | |
17271 | * tree-scalar-evolution.c (follow_ssa_edge_binary): Inline | |
17272 | cases we can handle with tail-recursion... | |
17273 | (follow_ssa_edge_expr): ... here. Do so. | |
17274 | ||
17275 | 2019-08-19 Kito Cheng <kito.cheng@sifive.com> | |
17276 | ||
17277 | PR target/91441 | |
17278 | * toplev.c (process_options): Check TARGET_ASAN_SHADOW_OFFSET is | |
17279 | implemented for -fsanitize=kernel-address, and merge check logic | |
17280 | with -fsanitize=address. | |
17281 | ||
17282 | 2019-08-18 Iain Sandoe <iain@sandoe.co.uk> | |
17283 | ||
17284 | * config/rs6000/darwin.h (TARGET_OS_CPP_BUILTINS): Add asserts | |
17285 | for cpu and machine. Factor 64/32b builtins. | |
17286 | ||
17287 | 2019-08-18 Gerald Pfeifer <gerald@pfeifer.com> | |
17288 | ||
17289 | * doc/install.texi (Specific, bfin): blackfin.uclinux.org is | |
17290 | gone, point to sourceforge.net. | |
17291 | ||
17292 | 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com> | |
17293 | ||
17294 | * doc/ux.texi (User Experience Guidelines): Update reference. | |
17295 | ||
17296 | 2019-08-17 Gerald Pfeifer <gerald@pfeifer.com> | |
17297 | ||
17298 | * doc/include/gpl_v3.texi (Copying): Adjust the link to "Why | |
17299 | not LGPL". | |
17300 | ||
17301 | 2019-08-16 Eric Botcazou <ebotcazou@adacore.com> | |
17302 | ||
17303 | * tree-sra.c (build_reconstructed_reference): Return NULL_TREE instead | |
17304 | of NULL. Add guard for broken VIEW_CONVERT_EXPRs. | |
17305 | ||
17306 | 2019-08-16 Martin Sebor <msebor@redhat.com> | |
17307 | ||
17308 | * tree.def (TYPE_SIZE): Clarify. | |
17309 | * tree.h (TYPE_SIZE, TYPE_SIZE_UNIT, DECL_SIZE): Add comments. | |
17310 | ||
17311 | 2019-08-16 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
17312 | ||
17313 | PR tree-optimization/91109 | |
17314 | * lra-int.h (lra_need_for_scratch_reg_p): Declare. | |
17315 | * lra.c (lra): Use lra_need_for_scratch_reg_p. | |
17316 | * lra-spills.c (lra_need_for_scratch_reg_p): New function. | |
17317 | ||
17318 | 2019-08-16 Uroš Bizjak <ubizjak@gmail.com> | |
17319 | ||
17320 | * config/i386/mmx.md (mmxdoublemode): New mode attribute. | |
17321 | (mmx_uavg<mode>3): Macroize expaner from mmx_uavgv8qi3 and | |
17322 | mmx_uavgv4hi3 using MMXMODE12 mode iterator. | |
17323 | (uavg<mode>3_ceil): New expander. | |
17324 | * config/i386/sse.md (uavg<mode>3_ceil): Use ssedoublemode | |
17325 | mode iterator when creating CONST1_RTX. | |
17326 | (<sse2_avx2>_uavg<mode>3<mask_name>): Ditto. | |
17327 | (*<sse2_avx2>_uavg<mode>3<mask_name>): Use ssedoublemode | |
17328 | mode iterator for const1_operand predicate. | |
17329 | ||
17330 | 2019-08-16 Richard Biener <rguenther@suse.de> | |
17331 | ||
17332 | * tree-scalar-evolution.c (follow_ssa_edge_expr): Declare. | |
17333 | (follow_ssa_edge_binary): Call follow_ssa_edge_expr instead of | |
17334 | follow_ssa_edge. | |
17335 | (follow_ssa_edge_in_condition_phi_branch): Likewise. | |
17336 | (analyze_evolution_in_loop): Likewise. | |
17337 | (follow_ssa_edge, follow_ssa_edge_in_rhs): Inline into ... | |
17338 | (follow_ssa_edge_expr): ... here. Refactor code. | |
17339 | ||
17340 | 2019-08-16 Richard Biener <rguenther@suse.de> | |
17341 | ||
17342 | PR target/91469 | |
17343 | * config/i386/i386-features.c | |
17344 | (general_scalar_chain::replace_with_subreg): Stop at memory operands. | |
17345 | ||
17346 | 2019-08-16 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
17347 | ||
17348 | PR other/91255 | |
17349 | * gensupport.c (has_subst_attribute): Error out on set_attr_alternative | |
17350 | only if subst_name matches curr_attr string. | |
17351 | ||
17352 | 2019-08-16 Richard Biener <rguenther@suse.de> | |
17353 | ||
17354 | * tree-ssa-forwprop.c (simplify_builtin_call): Do not remove | |
17355 | stmt at gsi_p, instead replace it with a NOP removed later. | |
17356 | (pass_forwprop::execute): Fully propagate lattice, DCE stmts | |
17357 | that became dead because of that. | |
17358 | ||
17359 | 2019-08-16 Aldy Hernandez <aldyh@redhat.com> | |
17360 | ||
17361 | * gimple-ssa-evrp-analyze.c (record_ranges_from_phis): Skip PHIs | |
17362 | for which we can't represent a range. | |
17363 | * ipa-cp.c (ipcp_vr_lattice::set_to_bottom): Pass type to | |
17364 | set_varying. | |
17365 | * tree-ssa-threadedge.c (record_temporary_equivalences_from_phis): | |
17366 | Set VR_UNDEFINED if type is not supported. | |
17367 | * tree-ssanames.c (get_range_info): Pass type to set_varying. | |
17368 | * tree-vrp.c (value_range_base::check): Assert that a varying has | |
17369 | min/max set. | |
17370 | (value_range_base::equal_p): Early bail for undefines. | |
17371 | (value_range_base::set_varying): Accept a type. | |
17372 | (value_range::set_varying): Same. | |
17373 | (value_range_base::type): VARYING can have a type, while UNDEFINE | |
17374 | is typeless. | |
17375 | (value_range_base::dump): Print type for VARYING nodes. | |
17376 | (value_range_base::set): Add type to VARYING. | |
17377 | (extract_range_from_multiplicative_op): Pass type to set_varying. | |
17378 | (extract_range_from_binary_expr): Same. | |
17379 | (value_range_base::intersect_helper): Same. | |
17380 | (value_range_base::union_helper): Same. | |
17381 | (value_range_base::normalize_symbolics): Same. | |
17382 | (determine_value_range_1): Same. | |
17383 | * tree-vrp.h (class value_range_base): Add type to set_varying. | |
17384 | Add prototype for dump(void). | |
17385 | Add prototype for supports_type_p. | |
17386 | (class value_range): Add type to set_varying. | |
17387 | Add prototype for dump(void). | |
17388 | * vr-values.c (set_value_range_to_truthvalue): Pass type to | |
17389 | set_varying. | |
17390 | (vr_values::get_lattice_entry): Set varying even if propagation | |
17391 | finished. | |
17392 | Pass type to set_varying. | |
17393 | (vr_values::get_value_range): Remove vr_const_varying. | |
17394 | Reallocate the lattice if needed. | |
17395 | (vr_values::update_value_range): Pass type to set_varying. | |
17396 | (vr_values::extract_range_for_var_from_comparison_expr): Same. | |
17397 | (vr_values::extract_range_from_binary_expr): Same. | |
17398 | (vr_values::extract_range_from_unary_expr): Same. | |
17399 | (vr_values::extract_range_from_cond_expr): Same. | |
17400 | (vr_values::check_for_binary_op_overflow): Same. | |
17401 | (vr_values::extract_range_basic): Same. | |
17402 | (vr_values::extract_range_from_assignment): Same. | |
17403 | (vr_values::vr_values): Increase size of num_vr_values. | |
17404 | (vr_values::extract_range_from_phi_node): Pass type to | |
17405 | set_varying. | |
17406 | ||
17407 | 2019-08-15 H.J. Lu <hongjiu.lu@intel.com> | |
17408 | ||
17409 | PR target/90878 | |
17410 | * config/i386/i386.c (inline_memory_move_cost): Use hard_register | |
17411 | for costs of hard register moves. | |
17412 | (ix86_register_move_cost): Likewise. | |
17413 | * config/i386/i386.h (processor_costs): Move costs of hard | |
17414 | register moves to hard_register. Add int_load, int_store, | |
17415 | xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse, | |
17416 | sse_load, sse_store, sse_unaligned_load and sse_unaligned_store | |
17417 | for costs of RTL expressions. | |
17418 | * config/i386/x86-tune-costs.h: Move costs of hard register | |
17419 | moves to hard_register. Duplicate int_load, int_store, | |
17420 | xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse, | |
17421 | sse_load, sse_store for costs of RTL expressions. | |
17422 | ||
17423 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17424 | ||
17425 | * target.def (setup_incoming_vararg_bounds): Remove. | |
17426 | * doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove. | |
17427 | * doc/tm.texi: Regenerate. | |
17428 | * targhooks.c (default_setup_incoming_vararg_bounds): Delete. | |
17429 | * targhooks.h (default_setup_incoming_vararg_bounds): Likewise. | |
17430 | * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise. | |
17431 | (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise. | |
17432 | ||
17433 | 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
17434 | ||
17435 | MSP430: Fix lines over 80 characters long in | |
17436 | config/msp430/*.{c,h} files | |
17437 | ||
17438 | * config/msp430/driver-msp430.c (msp430_select_cpu): Fix format | |
17439 | specifier in string. | |
17440 | (msp430_select_hwmult_lib): Split line more than 80 characters long. | |
17441 | * config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove | |
17442 | redundant old comment. | |
17443 | * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common): | |
17444 | Split line more than 80 characters long. | |
17445 | * config/msp430/msp430.c (msp430_option_override): Likewise. | |
17446 | (msp430_return_in_memory): Likewise. | |
17447 | (msp430_gimplify_va_arg_expr): Likewise. | |
17448 | (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise. | |
17449 | (msp430_legitimate_constant): Likewise. | |
17450 | (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise. | |
17451 | (msp430_attr): Likewise. | |
17452 | (msp430_data_attr): Likewise. | |
17453 | (msp430_start_function): Likewise. | |
17454 | (gen_prefix): Likewise. | |
17455 | (msp430_init_sections): Likewise. | |
17456 | (msp430_select_section): Likewise. | |
17457 | (msp430_function_section): Likewise. | |
17458 | (msp430_unique_section): Likewise. | |
17459 | (msp430_output_aligned_decl_common): Likewise. | |
17460 | (msp430_do_not_relax_short_jumps): Likewise. | |
17461 | (msp430_init_builtins): Likewise. | |
17462 | (msp430_expand_delay_cycles): Likewise. | |
17463 | (msp430_expand_prologue): Likewise. | |
17464 | (msp430_expand_epilogue): Likewise. | |
17465 | (msp430_expand_helper): Likewise. | |
17466 | (msp430_split_movsi): Likewise. | |
17467 | (msp430_print_operand): Likewise. | |
17468 | (msp430_return_addr_rtx): Likewise. | |
17469 | (msp430x_extendhisi): Likewise. | |
17470 | * config/msp430/msp430.h (STARTFILE_SPEC): Likewise. | |
17471 | (ASM_SPEC): Likewise. | |
17472 | Remove very obvious comments. | |
17473 | (LIB_SPEC): Split line more than 80 characters long. | |
17474 | (EH_RETURN_HANDLER_RTX): Likewise. | |
17475 | (HARD_REGNO_CALLER_SAVE_MODE): Likewise. | |
17476 | ||
17477 | 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
17478 | ||
17479 | MSP430: Fix whitespace errors and incorrect indentation in | |
17480 | config/msp430/*.{c,h} files | |
17481 | ||
17482 | * config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation. | |
17483 | (msp430_select_hwmult_lib): Likewise. | |
17484 | * config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise. | |
17485 | (msp430_extract_mcu_data): Likewise. | |
17486 | (struct t_msp430_mcu_data): Likewise. | |
17487 | * config/msp430/msp430.c (struct machine_function): Remove whitespace | |
17488 | before left square bracket. | |
17489 | (msp430_option_override): Fix indentation. | |
17490 | (msp430_hard_regno_nregs_with_padding): Likewise. | |
17491 | (msp430_initial_elimination_offset): Likewise. | |
17492 | (msp430_special_register_convention_p): Remove whitespace before left | |
17493 | square bracket and after exclamation mark. | |
17494 | (msp430_evaluate_arg): Likewise. | |
17495 | (msp430_callee_copies): Fix indentation. | |
17496 | (msp430_gimplify_va_arg_expr): Likewise. | |
17497 | (msp430_function_arg_advance): Remove whitespace before left square | |
17498 | bracket. | |
17499 | (reg_ok_for_addr): Likewise. | |
17500 | (msp430_preserve_reg_p): Likewise. | |
17501 | (msp430_compute_frame_info): Likewise. | |
17502 | (msp430_asm_output_addr_const_extra): Add space between function name | |
17503 | and open parenthesis. | |
17504 | (has_section_name): Fix indentation. | |
17505 | (msp430_attr): Remove trailing whitespace. | |
17506 | (msp430_section_attr): Likewise. | |
17507 | (msp430_data_attr): Likewise. | |
17508 | (struct msp430_attribute_table): Fix comment and whitespace. | |
17509 | (msp430_start_function): Remove whitespace before left square bracket. | |
17510 | Add space between function name and open parenthesis. | |
17511 | (msp430_select_section): Remove trailing whitespace. | |
17512 | (msp430_section_type_flags): Remove trailing whitespace. | |
17513 | (msp430_unique_section): Remove space before closing parenthesis. | |
17514 | (msp430_output_aligned_decl_common): Change 8 spaces to a tab. | |
17515 | (msp430_builtins): Remove whitespace before left square bracket. | |
17516 | (msp430_init_builtins): Fix indentation. | |
17517 | (msp430_expand_prologue): Remove whitespace before left square bracket. | |
17518 | Remove space before closing parenthesis. | |
17519 | (msp430_expand_epilogue): Remove whitespace before left square bracket. | |
17520 | (msp430_split_movsi): Remove space before closing parenthesis. | |
17521 | (helper_function_name_mappings): Fix indentation. | |
17522 | (msp430_use_f5_series_hwmult): Fix whitespace. | |
17523 | (use_32bit_hwmult): Likewise. | |
17524 | (msp430_no_hwmult): Likewise. | |
17525 | (msp430_output_labelref): Remove whitespace before left square bracket. | |
17526 | (msp430_print_operand_raw): Likewise. | |
17527 | (msp430_print_operand_addr): Likewise. | |
17528 | (msp430_print_operand): Add two spaces after '.' in comment. | |
17529 | Fix trailing whitespace. | |
17530 | (msp430x_extendhisi): Fix indentation. | |
17531 | * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to | |
17532 | tab. | |
17533 | (PC_REGNUM): Likewise. | |
17534 | (STACK_POINTER_REGNUM): Likewise. | |
17535 | (CC_REGNUM): Likewise. | |
17536 | ||
17537 | 2019-08-15 Richard Biener <rguenther@suse.de> | |
17538 | ||
17539 | PR target/91454 | |
17540 | * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New | |
17541 | helper. | |
17542 | (general_scalar_chain::make_vector_copies): Use it. | |
17543 | ||
17544 | 2019-08-15 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
17545 | ||
17546 | * function.c (assign_parm_setup_reg): Handle misaligned stack arguments. | |
17547 | ||
17548 | 2019-08-15 Martin Liska <mliska@suse.cz> | |
17549 | ||
17550 | * tree-ssa-dce.c (propagate_necessity): We can't reach now | |
17551 | operators with no arguments. | |
17552 | (eliminate_unnecessary_stmts): Likewise here. | |
17553 | ||
17554 | 2019-08-15 Uroš Bizjak <ubizjak@gmail.com> | |
17555 | ||
17556 | * config/i386/i386-features.c (general_scalar_chain::convert_insn) | |
17557 | <case COMPARE>: Revert 2019-08-14 change. | |
17558 | (convertible_comparison_p): Revert 2019-08-14 change. Return false | |
17559 | for (TARGET_64BIT || mode != DImode). | |
17560 | ||
17561 | 2019-08-15 Aldy Hernandez <aldyh@redhat.com> | |
17562 | ||
17563 | * tree-vrp.c (value_range_base::set): Merge in code from | |
17564 | value_range_base::set_and_canonicalize. | |
17565 | Enforce canonicalization at set time. | |
17566 | Normalize [MIN, MAX] into VARYING and ~[MIN, MAX] into UNDEFINED. | |
17567 | (value_range_base::set_undefined): Inline call to set(). | |
17568 | (value_range_base::set_varying): Same. | |
17569 | (value_range_base::singleton_p): Handle VR_ANTI_RANGEs. | |
17570 | (vrp_val_max): New argument handle_pointers. | |
17571 | (vrp_val_min): Same. | |
17572 | (ranges_from_anti_range): Same. | |
17573 | (extract_range_into_wide_ints): Use tree argument instead of sign | |
17574 | and precision. | |
17575 | (extract_range_from_multiplicative_op): Take in tree type instead | |
17576 | of precision and sign. Adapt function for canonicalized ranges. | |
17577 | (extract_range_from_binary_expr): Pass type to | |
17578 | extract_range_from_multiplicative_op. | |
17579 | Adapt for canonicalized ranges. | |
17580 | (extract_range_from_unary_expr): Same. | |
17581 | (value_range_base::intersect_helper): Adjust for canonicalized | |
17582 | ranges. | |
17583 | (value_range_base::union_helper): Same. | |
17584 | (value_range_base::normalize_symbolics): New. | |
17585 | * tree-vrp.h (class value_range_base): Remove | |
17586 | set_and_canonicalize. | |
17587 | New prototype for normalize_symbolics. | |
17588 | (class value_range): Remove set_and_canonicalize. | |
17589 | (vrp_val_min): Adjust prototype. | |
17590 | (vrp_val_max): Same. | |
17591 | * vr-values.c | |
17592 | (vr_values::extract_range_for_var_from_comparison_expr): Call set | |
17593 | instead of set_and_canonicalize. | |
17594 | ||
17595 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17596 | ||
17597 | PR middle-end/91444 | |
17598 | * tree-vect-stmts.c (vectorizable_call): Check that the function | |
17599 | is a BUILT_IN_MD function before passing it to | |
17600 | targetm.vectorize.builtin_md_vectorized_function. | |
17601 | ||
17602 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17603 | ||
17604 | * config/aarch64/aarch64-protos.h (aarch64_sve_mode_p): Declare. | |
17605 | * config/aarch64/aarch64.c (aarch64_sve_mode_p): New function. | |
17606 | (aarch64_select_early_remat_modes): Use it. | |
17607 | ||
17608 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17609 | ||
17610 | * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return | |
17611 | 16 for SVE predicates even if they are fixed-length. | |
17612 | ||
17613 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17614 | ||
17615 | * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the | |
17616 | operand order match the MOV /Z alias. | |
17617 | ||
17618 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17619 | ||
17620 | * config/aarch64/aarch64.c (aarch64_output_sve_cnt_immediate): Take | |
17621 | the vector pattern as an aarch64_svpattern argument. Update the | |
17622 | overloaded caller accordingly. | |
17623 | (aarch64_output_sve_scalar_inc_dec): Update call accordingly. | |
17624 | (aarch64_output_sve_vector_inc_dec): Likewise. | |
17625 | ||
17626 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17627 | ||
17628 | * config/aarch64/aarch64.c (aarch64_add_offset): In the fallback | |
17629 | multiplication case, try to compute VG * (lowest set bit) directly | |
17630 | rather than always basing the multiplication on VG. Use | |
17631 | expand_mult for the multiplication if we can. | |
17632 | ||
17633 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17634 | ||
17635 | * config/aarch64/aarch64-protos.h | |
17636 | (aarch64_sve_scalar_inc_dec_immediate_p): Declare. | |
17637 | (aarch64_sve_inc_dec_immediate_p): Rename to... | |
17638 | (aarch64_sve_vector_inc_dec_immediate_p): ...this. | |
17639 | (aarch64_output_sve_addvl_addpl): Take a single rtx argument. | |
17640 | (aarch64_output_sve_scalar_inc_dec): Declare. | |
17641 | (aarch64_output_sve_inc_dec_immediate): Rename to... | |
17642 | (aarch64_output_sve_vector_inc_dec): ...this. | |
17643 | * config/aarch64/aarch64.c (aarch64_sve_scalar_inc_dec_immediate_p) | |
17644 | (aarch64_output_sve_scalar_inc_dec): New functions. | |
17645 | (aarch64_output_sve_addvl_addpl): Remove the base and offset | |
17646 | arguments. Only handle true ADDVL and ADDPL instructions; | |
17647 | don't emit an INC or DEC. | |
17648 | (aarch64_sve_inc_dec_immediate_p): Rename to... | |
17649 | (aarch64_sve_vector_inc_dec_immediate_p): ...this. | |
17650 | (aarch64_output_sve_inc_dec_immediate): Rename to... | |
17651 | (aarch64_output_sve_vector_inc_dec): ...this. Update call to | |
17652 | aarch64_sve_vector_inc_dec_immediate_p. | |
17653 | * config/aarch64/predicates.md (aarch64_sve_scalar_inc_dec_immediate) | |
17654 | (aarch64_sve_plus_immediate): New predicates. | |
17655 | (aarch64_pluslong_operand): Accept aarch64_sve_plus_immediate | |
17656 | rather than aarch64_sve_addvl_addpl_immediate. | |
17657 | (aarch64_sve_inc_dec_immediate): Rename to... | |
17658 | (aarch64_sve_vector_inc_dec_immediate): ...this. Update call to | |
17659 | aarch64_sve_vector_inc_dec_immediate_p. | |
17660 | (aarch64_sve_add_operand): Update accordingly. | |
17661 | * config/aarch64/constraints.md (Uai): New constraint. | |
17662 | (vsi): Update call to aarch64_sve_vector_inc_dec_immediate_p. | |
17663 | * config/aarch64/aarch64.md (add<GPI:mode>3): Don't force the second | |
17664 | operand into a register if it satisfies aarch64_sve_plus_immediate. | |
17665 | (*add<GPI:mode>3_aarch64, *add<GPI:mode>3_poly_1): Add an alternative | |
17666 | for Uai. Update calls to aarch64_output_sve_addvl_addpl. | |
17667 | * config/aarch64/aarch64-sve.md (add<mode>3): Call | |
17668 | aarch64_output_sve_vector_inc_dec instead of | |
17669 | aarch64_output_sve_inc_dec_immediate. | |
17670 | ||
17671 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17672 | ||
17673 | * config/aarch64/iterators.md (UNSPEC_REVB, UNSPEC_REVH) | |
17674 | (UNSPEC_REVW): New constants. | |
17675 | (elem_bits): New mode attribute. | |
17676 | (SVE_INT_UNARY): New int iterator. | |
17677 | (optab): Handle UNSPEC_REV[BHW]. | |
17678 | (sve_int_op): New int attribute. | |
17679 | (min_elem_bits): Handle VNx16QI and the predicate modes. | |
17680 | * config/aarch64/aarch64-sve.md (*aarch64_sve_rev64<mode>) | |
17681 | (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Delete. | |
17682 | (@aarch64_pred_<SVE_INT_UNARY:optab><SVE_I:mode>): New pattern. | |
17683 | * config/aarch64/aarch64.c (aarch64_sve_data_mode): New function. | |
17684 | (aarch64_sve_int_mode, aarch64_sve_rev_unspec): Likewise. | |
17685 | (aarch64_split_sve_subreg_move): Use UNSPEC_REV[BHW] instead of | |
17686 | unspecs based on the total width of the reversed data. | |
17687 | (aarch64_evpc_rev_local): Likewise (for SVE only). Use a | |
17688 | reinterpret followed by a subreg on big-endian targets. | |
17689 | ||
17690 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17691 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
17692 | ||
17693 | * config/aarch64/aarch64-sve.md | |
17694 | (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Add /z | |
17695 | alternatives in which one of the inputs is in the same register | |
17696 | as the output. | |
17697 | ||
17698 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17699 | ||
17700 | * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext) | |
17701 | (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives. | |
17702 | ||
17703 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17704 | ||
17705 | * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate | |
17706 | FADD and FSUB alternatives. Add a MOVPRFX alternative for FSUBR. | |
17707 | ||
17708 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17709 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
17710 | ||
17711 | * config/aarch64/aarch64-sve.md (add<SVE_I:mode>3, sub<SVE_I:mode>3) | |
17712 | (<LOGICAL:optab><SVE_I:mode>3, *add<SVE_F:mode>3, *mul<SVE_F:mode>3) | |
17713 | (*fabd<SVE_F:mode>3): Add more MOVPRFX alternatives. | |
17714 | ||
17715 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17716 | Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
17717 | ||
17718 | * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3): | |
17719 | Add an alternative that uses reversed shifts. | |
17720 | ||
17721 | 2019-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
17722 | ||
17723 | * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning | |
17724 | struct. | |
17725 | ||
17726 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17727 | ||
17728 | * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add | |
17729 | a commutativity marker. | |
17730 | ||
17731 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17732 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
17733 | ||
17734 | * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma) | |
17735 | (aarch64_prepare_sve_cond_int_fma): Declare. | |
17736 | * config/aarch64/aarch64.c (aarch64_convert_mult_to_shift) | |
17737 | (aarch64_prepare_sve_int_fma): New functions. | |
17738 | (aarch64_prepare_sve_cond_int_fma): Likewise. | |
17739 | * config/aarch64/aarch64-sve.md | |
17740 | (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Add a "@" marker. | |
17741 | (fma<SVE_I:mode>4, cond_fma<SVE_I:mode>, *cond_fma<SVE_I:mode>_2) | |
17742 | (*cond_fma<SVE_I:mode>_4, *cond_fma<SVE_I:mode>_any, fnma<SVE_I:mode>4) | |
17743 | (cond_fnma<SVE_I:mode>, *cond_fnma<SVE_I:mode>_2) | |
17744 | (*cond_fnma<SVE_I:mode>_4, *cond_fnma<SVE_I:mode>_any): New patterns. | |
17745 | (*madd<mode>): Rename to... | |
17746 | (*fma<mode>4): ...this. | |
17747 | (*msub<mode>): Rename to... | |
17748 | (*fnma<mode>4): ...this. | |
17749 | ||
17750 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17751 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
17752 | ||
17753 | * config/aarch64/aarch64.c (aarch64_print_vector_float_operand): | |
17754 | Print 2.0 naturally. | |
17755 | (aarch64_sve_float_mul_immediate_p): Return true for 2.0. | |
17756 | * config/aarch64/predicates.md | |
17757 | (aarch64_sve_float_negated_arith_immediate): New predicate, | |
17758 | renamed from aarch64_sve_float_arith_with_sub_immediate. | |
17759 | (aarch64_sve_float_arith_with_sub_immediate): Test for both | |
17760 | positive and negative constants. | |
17761 | (aarch64_sve_float_arith_with_sub_operand): Redefine as a register | |
17762 | or an aarch64_sve_float_arith_with_sub_immediate. | |
17763 | * config/aarch64/constraints.md (vsN): Use | |
17764 | aarch64_sve_float_negated_arith_immediate. | |
17765 | * config/aarch64/iterators.md (SVE_COND_FP_BINARY_I1): New int | |
17766 | iterator. | |
17767 | (sve_pred_fp_rhs2_immediate): New int attribute. | |
17768 | * config/aarch64/aarch64-sve.md | |
17769 | (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>): Use | |
17770 | sve_pred_fp_rhs1_operand and sve_pred_fp_rhs2_operand. | |
17771 | (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_2_const) | |
17772 | (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_any_const) | |
17773 | (*cond_add<SVE_F:mode>_2_const, *cond_add<SVE_F:mode>_any_const) | |
17774 | (*cond_sub<mode>_3_const, *cond_sub<mode>_any_const): New patterns. | |
17775 | ||
17776 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17777 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
17778 | ||
17779 | * config/aarch64/aarch64-sve.md (*aarch64_cond_abd<SVE_F:mode>_2) | |
17780 | (*aarch64_cond_abd<SVE_F:mode>_3) | |
17781 | (*aarch64_cond_abd<SVE_F:mode>_any): New patterns. | |
17782 | ||
17783 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17784 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
17785 | ||
17786 | * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2) | |
17787 | (*aarch64_cond_<su>abd<mode>_any): New patterns. | |
17788 | ||
17789 | 2019-08-15 Richard Sandiford <richard.sandiford@arm.com> | |
17790 | Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
17791 | ||
17792 | * internal-fn.def (IFN_COND_SHL, IFN_COND_SHR): New internal functions. | |
17793 | * internal-fn.c (FOR_EACH_CODE_MAPPING): Handle shifts. | |
17794 | * match.pd (UNCOND_BINARY, COND_BINARY): Likewise. | |
17795 | * optabs.def (cond_ashl_optab, cond_ashr_optab, cond_lshr_optab): New | |
17796 | optabs. | |
17797 | * optabs.h (create_convert_operand_from): Expand comment. | |
17798 | * optabs.c (maybe_legitimize_operand): Allow implicit broadcasts | |
17799 | when mapping scalar rtxes to vector operands. | |
17800 | * config/aarch64/iterators.md (SVE_INT_BINARY): Add ashift, | |
17801 | ashiftrt and lshiftrt. | |
17802 | (sve_int_op, sve_int_op_rev, sve_pred_int_rhs2_operand): Handle them. | |
17803 | * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_const) | |
17804 | (*cond_<optab><mode>_any_const): New patterns. | |
17805 | ||
17806 | 2019-08-15 Martin Liska <mliska@suse.cz> | |
17807 | ||
17808 | PR ipa/91438 | |
17809 | * cgraph.c (cgraph_node::remove): When setting | |
17810 | n->origin = NULL for all nested functions, reset | |
17811 | also next_nested. | |
17812 | ||
17813 | 2019-08-15 Martin Liska <mliska@suse.cz> | |
17814 | ||
17815 | * cgraph.c (cgraph_node::verify_node): Verify origin, nested | |
17816 | and next_nested. | |
17817 | ||
17818 | 2019-08-15 Martin Liska <mliska@suse.cz> | |
17819 | ||
17820 | PR ipa/91404 | |
17821 | * passes.c (order): Remove. | |
17822 | (uid_hash_t): Likewise). | |
17823 | (remove_cgraph_node_from_order): Remove from set | |
17824 | of pointers (cgraph_node *). | |
17825 | (insert_cgraph_node_to_order): New. | |
17826 | (duplicate_cgraph_node_to_order): New. | |
17827 | (do_per_function_toporder): Register all 3 cgraph hooks. | |
17828 | Skip removed_nodes now as we know about all of them. | |
17829 | ||
17830 | 2019-08-14 Uroš Bizjak <ubizjak@gmail.com> | |
17831 | ||
17832 | * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero) | |
17833 | <case E_V8QImode>: Use vector_set path for | |
17834 | TARGET_MMX_WITH_SSE && TARGET_SSE4_1. | |
17835 | (ix86_expand_vector_init_one_var) <case E_V8QImode>: | |
17836 | Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1. | |
17837 | ||
17838 | 2019-08-14 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
17839 | ||
17840 | * builtins.c (expand_builtin_init_descriptor): Set memory alignment. | |
17841 | ||
17842 | 2019-08-14 Martin Sebor <msebor@redhat.com> | |
17843 | ||
17844 | PR tree-optimization/91294 | |
17845 | * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of | |
17846 | source length as exact. | |
17847 | ||
17848 | 2019-08-14 Christophe Lyon <christophe.lyon@linaro.org> | |
17849 | ||
17850 | * doc/extend.texi: Add "noinit" attribute documentation. | |
17851 | * doc/sourcebuild.texi: Add noinit effective target documentation. | |
17852 | * varasm.c (default_section_type_flags): Add support for "noinit" | |
17853 | section. | |
17854 | (default_elf_select_section): Add support for "noinit" attribute. | |
17855 | * config/msp430/msp430.c (msp430_attribute_table): Remove | |
17856 | "noinit" entry. | |
17857 | ||
17858 | 2019-08-14 Richard Biener <rguenther@suse.de> | |
17859 | Uroš Bizjak <ubizjak@gmail.com> | |
17860 | ||
17861 | PR target/91154 | |
17862 | * config/i386/i386-features.h (scalar_chain::scalar_chain): Add | |
17863 | mode arguments. | |
17864 | (scalar_chain::smode): New member. | |
17865 | (scalar_chain::vmode): Likewise. | |
17866 | (dimode_scalar_chain): Rename to... | |
17867 | (general_scalar_chain): ... this. | |
17868 | (general_scalar_chain::general_scalar_chain): Take mode arguments. | |
17869 | (timode_scalar_chain::timode_scalar_chain): Initialize scalar_chain | |
17870 | base with TImode and V1TImode. | |
17871 | * config/i386/i386-features.c (scalar_chain::scalar_chain): Adjust. | |
17872 | (general_scalar_chain::vector_const_cost): Adjust for SImode | |
17873 | chains. | |
17874 | (general_scalar_chain::compute_convert_gain): Likewise. Add | |
17875 | {S,U}{MIN,MAX} support. | |
17876 | (general_scalar_chain::replace_with_subreg): Use vmode/smode. | |
17877 | (general_scalar_chain::make_vector_copies): Likewise. Handle | |
17878 | non-DImode chains appropriately. | |
17879 | (general_scalar_chain::convert_reg): Likewise. | |
17880 | (general_scalar_chain::convert_op): Likewise. | |
17881 | (general_scalar_chain::convert_insn): Likewise. Add | |
17882 | fatal_insn_not_found if the result is not recognized. | |
17883 | (convertible_comparison_p): Pass in the scalar mode and use that. | |
17884 | (general_scalar_to_vector_candidate_p): Likewise. Rename from | |
17885 | dimode_scalar_to_vector_candidate_p. Add {S,U}{MIN,MAX} support. | |
17886 | (scalar_to_vector_candidate_p): Remove by inlining into single | |
17887 | caller. | |
17888 | (general_remove_non_convertible_regs): Rename from | |
17889 | dimode_remove_non_convertible_regs. | |
17890 | (remove_non_convertible_regs): Remove by inlining into single caller. | |
17891 | (convert_scalars_to_vector): Handle SImode and DImode chains | |
17892 | in addition to TImode chains. | |
17893 | * config/i386/i386.md (<maxmin><MAXMIN_IMODE>3): New expander. | |
17894 | (*<maxmin><MAXMIN_IMODE>3_1): New insn-and-split. | |
17895 | (*<maxmin>di3_doubleword): Likewise. | |
17896 | ||
17897 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
17898 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
17899 | ||
17900 | * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2) | |
17901 | (*cond_bic<mode>_any): New patterns. | |
17902 | ||
17903 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
17904 | ||
17905 | * config/aarch64/aarch64.c (aarch64_print_operand): Allow %e to | |
17906 | take the equivalent mask, as well as a bit count. | |
17907 | * config/aarch64/predicates.md (aarch64_sve_uxtb_immediate) | |
17908 | (aarch64_sve_uxth_immediate, aarch64_sve_uxt_immediate) | |
17909 | (aarch64_sve_pred_and_operand): New predicates. | |
17910 | * config/aarch64/iterators.md (sve_pred_int_rhs2_operand): New | |
17911 | code attribute. | |
17912 | * config/aarch64/aarch64-sve.md | |
17913 | (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Use it. | |
17914 | (*cond_uxt<mode>_2, *cond_uxt<mode>_any): New patterns. | |
17915 | ||
17916 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
17917 | ||
17918 | * config/aarch64/aarch64-sve.md | |
17919 | (*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>) | |
17920 | (*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>): | |
17921 | New patterns. | |
17922 | ||
17923 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
17924 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
17925 | ||
17926 | * config/aarch64/aarch64-sve.md | |
17927 | (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_2): New pattern. | |
17928 | (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_any): Likewise. | |
17929 | ||
17930 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
17931 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
17932 | ||
17933 | * config/aarch64/aarch64-sve.md | |
17934 | (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_2): New pattern. | |
17935 | (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_any): Likewise. | |
17936 | ||
17937 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
17938 | ||
17939 | * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator. | |
17940 | * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>): | |
17941 | New pattern. | |
17942 | ||
17943 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
17944 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
17945 | ||
17946 | * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern. | |
17947 | ||
17948 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
17949 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
17950 | ||
17951 | * config/aarch64/aarch64.c (aarch64_bit_representation): New function. | |
17952 | (aarch64_print_vector_float_operand): Also handle 8-bit floats. | |
17953 | (aarch64_print_operand): Add support for %I. | |
17954 | (aarch64_sve_dup_immediate_p): Handle scalars as well as vectors. | |
17955 | Bitcast floating-point constants to the corresponding integer constant. | |
17956 | (aarch64_float_const_representable_p): Handle vectors as well | |
17957 | as scalars. | |
17958 | (aarch64_expand_sve_vcond): Make sure that the operands are valid | |
17959 | for the new vcond_mask_<mode><vpred> expander. | |
17960 | * config/aarch64/predicates.md (aarch64_sve_dup_immediate): Also | |
17961 | test aarch64_float_const_representable_p. | |
17962 | (aarch64_sve_reg_or_dup_imm): New predicate. | |
17963 | * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Use | |
17964 | gen_vcond_mask_<mode><vpred> instead of | |
17965 | gen_aarch64_sve_dup<mode>_const. | |
17966 | (vcond_mask_<mode><vpred>): Turn into a define_expand that | |
17967 | accepts aarch64_sve_reg_or_dup_imm and aarch64_simd_reg_or_zero | |
17968 | for operands 1 and 2 respectively. Force operand 2 into a | |
17969 | register if operand 1 is a register. Fold old define_insn... | |
17970 | (aarch64_sve_dup<mode>_const): ...and this define_insn... | |
17971 | (*vcond_mask_<mode><vpred>): ...into this new pattern. Handle | |
17972 | floating-point constants that can be moved as integers. Add | |
17973 | alternatives for MOV /M and FMOV /M. | |
17974 | (vcond<mode><v_int_equiv>, vcondu<mode><v_int_equiv>) | |
17975 | (vcond<mode><v_fp_equiv>): Accept nonmemory_operand for operands | |
17976 | 1 and 2 respectively. | |
17977 | * config/aarch64/constraints.md (Ufc): Handle vectors as well | |
17978 | as scalars. | |
17979 | (vss): New constraint. | |
17980 | ||
17981 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
17982 | ||
17983 | * config/aarch64/predicates.md (aarch64_sve_float_maxmin_immediate) | |
17984 | (aarch64_sve_float_maxmin_operand): New predicates. | |
17985 | * config/aarch64/constraints.md (vsB): New constraint. | |
17986 | (vsM): Fix typo. | |
17987 | * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use | |
17988 | aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and | |
17989 | UNSPEC_COND_FMINNM. | |
17990 | * config/aarch64/aarch64-sve.md (<maxmin_uns><SVE_F:mode>3): | |
17991 | Use aarch64_sve_float_maxmin_operand for operand 2. | |
17992 | (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Likewise. | |
17993 | Add alternatives for the constant forms. | |
17994 | ||
17995 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
17996 | ||
17997 | * config/aarch64/constraints.md (vsb): New constraint. | |
17998 | (vsm): Generalize description. | |
17999 | * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code | |
18000 | iterator. | |
18001 | (sve_imm_con): Handle smax, smin, umax and umin. | |
18002 | (sve_imm_prefix): New code attribute. | |
18003 | * config/aarch64/predicates.md (aarch64_sve_vsb_immediate) | |
18004 | (aarch64_sve_vsb_operand): New predicates. | |
18005 | (aarch64_sve_mul_immediate): Rename to... | |
18006 | (aarch64_sve_vsm_immediate): ...this. | |
18007 | (aarch64_sve_mul_operand): Rename to... | |
18008 | (aarch64_sve_vsm_operand): ...this. | |
18009 | * config/aarch64/aarch64-sve.md (mul<mode>3): Generalize to... | |
18010 | (<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...this. | |
18011 | (*mul<mode>3, *post_ra_mul<mode>3): Generalize to... | |
18012 | (*<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3) | |
18013 | (*post_ra_<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...these and | |
18014 | add movprfx support for the immediate alternatives. | |
18015 | (<su><maxmin><mode>3, *<su><maxmin><mode>3): Delete in favor | |
18016 | of the above. | |
18017 | (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate | |
18018 | for operand 3. | |
18019 | ||
18020 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18021 | ||
18022 | * config/aarch64/predicates.md (aarch64_simd_imm_one): New predicate. | |
18023 | * config/aarch64/aarch64-sve.md (*cnot<mode>): New pattern. | |
18024 | (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise. | |
18025 | ||
18026 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18027 | ||
18028 | * config/aarch64/iterators.md (SVE_INT_UNARY): Add clrsb and clz. | |
18029 | (optab, sve_int_op): Handle them. | |
18030 | * config/aarch64/aarch64-sve.md: Expand comment. | |
18031 | ||
18032 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18033 | ||
18034 | * config/aarch64/predicates.md (const_1_to_3_operand): New predicate. | |
18035 | * config/aarch64/aarch64-sve.md (*aarch64_adr_uxtw) | |
18036 | (*aarch64_adr<mode>_shift, *aarch64_adr_shift_uxtw): New patterns. | |
18037 | ||
18038 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18039 | ||
18040 | * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor) | |
18041 | (aarch64_expand_sve_const_pred_trn): New functions. | |
18042 | (aarch64_expand_sve_const_pred_1): Add a recurse_p parameter and | |
18043 | use the above functions when the parameter is true. | |
18044 | (aarch64_expand_sve_const_pred): Update call accordingly. | |
18045 | * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><mode>): | |
18046 | Rename to... | |
18047 | (@aarch64_sve_<perm_insn><mode>): ...this. | |
18048 | ||
18049 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18050 | ||
18051 | * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p): | |
18052 | Declare. | |
18053 | * config/aarch64/aarch64.c (aarch64_sve_same_pred_for_ptest_p) | |
18054 | (aarch64_sve_emit_int_cmp): New functions. | |
18055 | (aarch64_convert_sve_data_to_pred): Use aarch64_sve_emit_int_cmp. | |
18056 | (aarch64_sve_cmp_operand_p, aarch64_emit_sve_ptrue_op_cc): Delete. | |
18057 | (aarch64_expand_sve_vec_cmp_int): Use aarch64_sve_emit_int_cmp. | |
18058 | * config/aarch64/aarch64.md (UNSPEC_MERGE_PTRUE): Delete. | |
18059 | (UNSPEC_PRED_Z): New unspec. | |
18060 | (set_clobber_cc_nzc): Delete. | |
18061 | * config/aarch64/aarch64-sve.md: Add a block comment about | |
18062 | UNSPEC_PRED_Z. | |
18063 | (*cmp<SVE_INT_CMP:cmp_op><mode>): Rename to... | |
18064 | (@aarch64_pred_cmp<SVE_INT_CMP:cmp_op><mode>): ...this, replacing | |
18065 | the old pattern with that name. Use UNSPEC_PRED_Z instead of | |
18066 | UNSPEC_MERGE_PTRUE. | |
18067 | (*cmp<SVE_INT_CMP:cmp_op><mode>_cc): Use UNSPEC_PRED_Z instead of | |
18068 | UNSPEC_MERGE_PTRUE. Use aarch64_sve_same_pred_for_ptest_p to | |
18069 | check for compatible predicates. | |
18070 | (*cmp<cmp_op><SVE_INT_CMP:mode>_ptest): Likewise. | |
18071 | (*cmp<cmp_op><mode>_and): Match a known-ptrue UNSPEC_PRED_Z instead | |
18072 | of UNSPEC_MERGE_PTRUE. Split into the new form of predicated | |
18073 | comparisons above. | |
18074 | ||
18075 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18076 | ||
18077 | * config/aarch64/aarch64.md (UNSPEC_PRED_X): New unspec. | |
18078 | * config/aarch64/aarch64-sve.md: Add a section describing it. | |
18079 | (@aarch64_pred_mov<mode>, @aarch64_pred_mov<mode>) | |
18080 | (<SVE_INT_UNARY:optab><mode>2, *<SVE_INT_UNARY:optab><mode>2) | |
18081 | (aarch64_<su>abd<mode>_3, mul<SVE_I:mode>3, *mul<SVE_I:mode>3) | |
18082 | (<su>mul<mode>3_highpart, *<su>mul<mode>3_highpart) | |
18083 | (<SVE_INT_BINARY:optab><mode>3, *<SVE_INT_BINARY:optab><mode>3) | |
18084 | (*bic<mode>3, v<ASHIFT:optab><mode>3, *v<ASHIFT:optab><mode>3) | |
18085 | (<su><maxmin><mode>3, *<su><maxmin><mode>3, *madd<SVE_I:mode>) | |
18086 | (*msub<SVE_I:mode>3, *aarch64_sve_rev64<mode>) | |
18087 | (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Use | |
18088 | UNSPEC_PRED_X instead of UNSPEC_MERGE_PTRUE. | |
18089 | * config/aarch64/aarch64-sve2.md (<u>avg<mode>3_floor) | |
18090 | (<u>avg<mode>3_ceil, *<sur>h<addsub><mode>): Likewise. | |
18091 | * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move) | |
18092 | (aarch64_evpc_rev_local): Update accordingly. | |
18093 | ||
18094 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18095 | ||
18096 | * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode | |
18097 | iterators. | |
18098 | (SVE_BHSI, SVE_SDI): Tweak comment. | |
18099 | (SVE_HSDI): Likewise. Fix definition. | |
18100 | (SVE_SDF): New mode iterator. | |
18101 | (elem_bits): New mode attribute. | |
18102 | (SVE_COND_FCVT): New int iterator. | |
18103 | * config/aarch64/aarch64-sve.md | |
18104 | (*<SVE_COND_ICVTF:optab>v16hsf<SVE_HSDI:mode>2) | |
18105 | (*<SVE_COND_ICVTF:optab>vnx4sf<SVE_SDI:mode>2) | |
18106 | (*<SVE_COND_ICVTF:optab>vnx2df<SVE_SDI:mode>2): Merge into... | |
18107 | (*aarch64_sve_<SVE_COND_ICVTF:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>) | |
18108 | (*aarch64_sve_<SVE_COND_ICVTF:optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>): | |
18109 | ...these new patterns. | |
18110 | (*<SVE_COND_FCVTI:optab><SVE_HSDI:mode>vnx8hf2) | |
18111 | (*<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx4sf2) | |
18112 | (aarch64_sve_<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx2df2): | |
18113 | Merge into... | |
18114 | (*aarch64_sve_<SVE_COND_FCVTI:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>) | |
18115 | (aarch64_sve_<SVE_COND_FCVTI:optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>): | |
18116 | ...these new patterns. | |
18117 | (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Update accordingly. | |
18118 | (*trunc<Vwide><SVE_SDF:mode>2): Replace with... | |
18119 | (*aarch64_sve_<SVE_COND_FCVT:optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>): | |
18120 | ...this new pattern. | |
18121 | (aarch64_sve_extend<SVE_HSDF:mode><Vwide>2): Replace with... | |
18122 | (aarch64_sve_<SVE_COND_FCVT:optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>): | |
18123 | ...this new pattern. | |
18124 | (vec_unpacks_<perm_hilo>_<mode>): Update accordingly. | |
18125 | ||
18126 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18127 | ||
18128 | * config/aarch64/aarch64.md (UNSPEC_FLOAT_CONVERT): Delete. | |
18129 | * config/aarch64/iterators.md (UNSPEC_COND_FCVT, UNSPEC_COND_FCVTZS) | |
18130 | (UNSPEC_COND_FCVTZU, UNSPEC_COND_SCVTF, UNSPEC_COND_UCVTF): New | |
18131 | unspecs. | |
18132 | (optab, su): Handle them. | |
18133 | (SVE_COND_FCVTI, SVE_COND_ICVTF): New int iterators. | |
18134 | * config/aarch64/aarch64-sve.md | |
18135 | (<fix_trunc_optab><SVE_F:mode><v_int_equiv>2): Replace with... | |
18136 | (<SVE_COND_FCVTI:optab><SVE_F:mode><v_int_equiv>2): ...this. | |
18137 | (*<fix_trunc_optab>v16hsf<:SVE_HSDImode>2): Replace with... | |
18138 | (*<SVE_COND_FCVTI:optab>v16hsf<SVE_F:mode>2): ...this. | |
18139 | (*<fix_trunc_optab>vnx4sf<SVE_SDI:mode>2): Replace with... | |
18140 | (*<SVE_COND_FCVTI:optab>vnx4sf<SVE_SDI:mode>2): ...this. | |
18141 | (*<fix_trunc_optab>vnx2df<SVE_SDI:mode>2): Replace with... | |
18142 | (*<SVE_COND_FCVTI:optab>vnx2df<SVE_SDI:mode>2): ...this. | |
18143 | (vec_pack_<su>fix_trunc_vnx2df): Use SVE_COND_FCVTI instead of | |
18144 | FIXUORS. | |
18145 | (<FLOATUORS:optab><v_int_equiv><SVE_F:mode>2): Replace with... | |
18146 | (<SVE_COND_ICVTF:optab><v_int_equiv><SVE_F:mode>2): ...this. | |
18147 | (*<FLOATUORS:optab><SVE_HSDI:mode>vnx8hf2): Replace with... | |
18148 | (*<SVE_COND_ICVTF:optab><SVE_HSDI:mode>vnx8hf2): ...this. | |
18149 | (*<FLOATUORS:optab><SVE_SDI:mode>vnx4sf2): Replace with... | |
18150 | (*<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx4sf2): ...this. | |
18151 | (aarch64_sve_<FLOATUORS:optab><SVE_SDI:mode>vnx2df2): Replace with... | |
18152 | (aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2): ...this. | |
18153 | (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Pass a GP strictness | |
18154 | operand to aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2. | |
18155 | (vec_pack_trunc_<SVE_HSF:Vwide>, *trunc<Vwide><SVE_HSF:mode>2) | |
18156 | (aarch64_sve_extend<mode><Vwide>2): Use UNSPEC_COND_FCVT instead | |
18157 | of UNSPEC_FLOAT_CONVERT. | |
18158 | (vec_unpacks_<perm_hilo>_<mode>): Pass a GP strictness operand to | |
18159 | aarch64_sve_extend<mode><Vwide>2. | |
18160 | ||
18161 | 2019-08-14 Richard Biener <rguenther@suse.de> | |
18162 | ||
18163 | PR target/91154 | |
18164 | * config/i386/i386-features.c | |
18165 | (dimode_scalar_chain::compute_convert_gain): Compute and dump | |
18166 | individual instruction gain. Fix reg-reg copy GRP cost. Use | |
18167 | ix86_cost->sse_op for vector instruction costs. | |
18168 | ||
18169 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18170 | ||
18171 | * config/aarch64/iterators.md (UNSPEC_COND_FCMUO): New unspec. | |
18172 | (cmp_op): Handle it. | |
18173 | (SVE_COND_FP_CMP): Rename to... | |
18174 | (SVE_COND_FP_CMP_I0): ...this. | |
18175 | (SVE_FP_CMP): Remove. | |
18176 | * config/aarch64/aarch64-sve.md | |
18177 | (*fcm<SVE_FP_CMP:cmp_op><SVE_F:mode>): Replace with... | |
18178 | (*fcm<SVE_COND_FP_CMP_I0:cmp_op><SVE_F:mode>): ...this new pattern, | |
18179 | using unspecs to represent the comparison. | |
18180 | (*fcmuo<SVE_F:mode>): Use UNSPEC_COND_FCMUO. | |
18181 | (*fcm<cmp_op><mode>_and_combine, *fcmuo<mode>_and_combine): Update | |
18182 | accordingly. | |
18183 | * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete. | |
18184 | (aarch64_unspec_cond_code): Move after integer code. Handle | |
18185 | UNORDERED. | |
18186 | (aarch64_emit_sve_predicated_cond): Replace with... | |
18187 | (aarch64_emit_sve_fp_cond): ...this new function. | |
18188 | (aarch64_emit_sve_or_conds): Replace with... | |
18189 | (aarch64_emit_sve_or_fp_conds): ...this new function. | |
18190 | (aarch64_emit_sve_inverted_cond): Replace with... | |
18191 | (aarch64_emit_sve_invert_fp_cond): ...this new function. | |
18192 | (aarch64_expand_sve_vec_cmp_float): Update accordingly. | |
18193 | ||
18194 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18195 | ||
18196 | * config/aarch64/iterators.md (SVE_HSD): New mode iterator. | |
18197 | (V_FP_EQUIV, v_fp_equiv): Handle VNx8HI and VNx8HF. | |
18198 | * config/aarch64/aarch64-sve.md (vcond<mode><v_fp_equiv>): Use | |
18199 | SVE_HSD instead of SVE_SD. | |
18200 | ||
18201 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18202 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
18203 | ||
18204 | * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int | |
18205 | iterator. | |
18206 | (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int | |
18207 | attributes. | |
18208 | * config/aarch64/aarch64-sve.md (add<SVE_F:mode>3, sub<SVE_F:mode>3) | |
18209 | (mul<SVE_F:mode>3, div<SVE_F:mode>3) | |
18210 | (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Merge into... | |
18211 | (<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this new expander. | |
18212 | (*div<SVE_F:mode>3): Generalize to... | |
18213 | (*<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this. | |
18214 | ||
18215 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18216 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
18217 | ||
18218 | * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New | |
18219 | constants. | |
18220 | * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New | |
18221 | predicate. | |
18222 | * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p): | |
18223 | Declare. | |
18224 | * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New | |
18225 | function. | |
18226 | * config/aarch64/aarch64-sve.md: Add a block comment about the | |
18227 | handling of predicated FP operations. | |
18228 | (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2, add<SVE_F:mode>3) | |
18229 | (sub<SVE_F:mode>3, mul<SVE_F:mode>3, div<SVE_F:mode>3) | |
18230 | (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3) | |
18231 | (<SVE_COND_FP_MAXMIN_PUBLIC:maxmin_uns><SVE_F:mode>3) | |
18232 | (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): Add an SVE_RELAXED_GP | |
18233 | operand. | |
18234 | (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>) | |
18235 | (cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>): Add an SVE_STRICT_GP | |
18236 | operand. | |
18237 | (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2) | |
18238 | (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_2) | |
18239 | (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_3) | |
18240 | (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_any) | |
18241 | (*fabd<SVE_F:mode>3, *div<SVE_F:mode>3) | |
18242 | (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3) | |
18243 | (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4) | |
18244 | (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_2) | |
18245 | (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_4) | |
18246 | (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Match the | |
18247 | strictness operands. Use aarch64_sve_pred_dominates_p to check | |
18248 | whether the predicate on the conditional operation is suitable | |
18249 | for merging. Split patterns into the canonical equal-predicate form. | |
18250 | (*add<SVE_F:mode>3, *sub<SVE_F:mode>3, *mul<SVE_F:mode>3): Likewise. | |
18251 | Restrict the unpredicated alternatives to SVE_RELAXED_GP. | |
18252 | ||
18253 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18254 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
18255 | ||
18256 | * config/aarch64/aarch64-sve.md (add<mode>3, *add<mode>3) | |
18257 | (sub<mode>3, *sub<mode>3, *fabd<mode>3, mul<mode>3, *mul<mode>3) | |
18258 | (div<mode>3, *div<mode>3): Use SVE_COND_FP_* unspecs instead of | |
18259 | rtx codes. | |
18260 | (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_3) | |
18261 | (*cond_<optab><mode>_any): Add the predicate to the SVE_COND_FP_* | |
18262 | unspecs. | |
18263 | ||
18264 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18265 | Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
18266 | ||
18267 | * config/aarch64/aarch64-sve.md (bic<mode>3): Rename to... | |
18268 | (*bic<SVE_I:mode>3): ...this. Match the form that an SVE inverse | |
18269 | actually has, rather than relying on REG_EQUAL notes. | |
18270 | Make the insn operand order match the SVE operand order. | |
18271 | (*<nlogical><PRED_ALL:mode>3): Make the insn operand order match | |
18272 | the SVE operand order. | |
18273 | ||
18274 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18275 | ||
18276 | * config/aarch64/aarch64.c (aarch64_target_reg): New function. | |
18277 | (aarch64_emit_set_immediate): Likewise. | |
18278 | (aarch64_ptrue_reg): Build a VNx16BI constant and then bitcast it. | |
18279 | (aarch64_pfalse_reg): Likewise. | |
18280 | (aarch64_convert_sve_data_to_pred): New function. | |
18281 | (aarch64_sve_move_pred_via_while): Take an optional target register | |
18282 | and the required register mode. | |
18283 | (aarch64_expand_sve_const_pred_1): New function. | |
18284 | (aarch64_expand_sve_const_pred): Likewise. | |
18285 | (aarch64_expand_mov_immediate): Build an all-true predicate | |
18286 | if the significant bits of the immediate are all true. Use | |
18287 | aarch64_expand_sve_const_pred for all compile-time predicate constants. | |
18288 | (aarch64_mov_operand_p): Force predicate constants to be VNx16BI | |
18289 | before register allocation. | |
18290 | * config/aarch64/aarch64-sve.md (*vec_duplicate<mode>_reg): Use | |
18291 | a VNx16BI PTRUE when splitting the memory alternative. | |
18292 | (vec_duplicate<mode>): Update accordingly. | |
18293 | (*pred_cmp<cmp_op><mode>): Rename to... | |
18294 | (@aarch64_pred_cmp<cmp_op><mode>): ...this. | |
18295 | ||
18296 | 2019-08-14 Richard Sandiford <richard.sandiford@arm.com> | |
18297 | ||
18298 | * config/aarch64/aarch64-protos.h (aarch64_ptrue_all): Declare. | |
18299 | * config/aarch64/aarch64.c (aarch64_ptrue_all): New function. | |
18300 | * config/aarch64/aarch64.md (UNSPEC_PTEST_PTRUE): Delete. | |
18301 | (UNSPEC_PTEST): New unspec. | |
18302 | (SVE_MAYBE_NOT_PTRUE, SVE_KNOWN_PTRUE): New constants. | |
18303 | * config/aarch64/iterators.md (data_bytes): New mode attribute. | |
18304 | * config/aarch64/predicates.md (aarch64_sve_ptrue_flag): New predicate. | |
18305 | * config/aarch64/aarch64-sve.md: Add a new section describing the | |
18306 | handling of UNSPEC_PTEST. | |
18307 | (pred_<LOGICAL:optab><PRED_ALL:mode>3): Rename to... | |
18308 | (@aarch64_pred_<LOGICAL:optab><PRED_ALL:mode>_z): ...this. | |
18309 | (ptest_ptrue<mode>): Replace with... | |
18310 | (aarch64_ptest<mode>): ...this new pattern. | |
18311 | (cbranch<mode>4): Update after above changes. | |
18312 | (*<LOGICAL:optab><PRED_ALL:mode>3_cc): Use UNSPEC_PTEST instead of | |
18313 | UNSPEC_PTEST_PTRUE. | |
18314 | (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_cc): Likewise. | |
18315 | (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_ptest): Likewise. | |
18316 | (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Likewise. | |
18317 | ||
18318 | 2019-08-14 Xiong Hu Luo <luoxhu@linux.ibm.com> | |
18319 | ||
18320 | PR lto/91287 | |
18321 | * builtins.c (builtin_with_linkage_p): New function. | |
18322 | * builtins.h (builtin_with_linkage_p): New function. | |
18323 | * symtab.c (write_symbol): Remove redundant assert. | |
18324 | * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p): | |
18325 | Remove FIXME and use builtin_with_linkage_p. | |
18326 | ||
18327 | 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> | |
18328 | ||
18329 | PR middle-end/91421 | |
18330 | * tree-core.h (function_decl::function_code): Change type to | |
18331 | unsigned int. | |
18332 | * tree.h (DECL_FUNCTION_CODE): Rename old definition to... | |
18333 | (DECL_UNCHECKED_FUNCTION_CODE): ...this. | |
18334 | (DECL_BUILT_IN_CLASS): Make an rvalue macro only. | |
18335 | (DECL_FUNCTION_CODE): New function. Assert that the built-in class | |
18336 | is BUILT_IN_NORMAL. | |
18337 | (DECL_MD_FUNCTION_CODE, DECL_FE_FUNCTION_CODE): New functions. | |
18338 | (set_decl_built_in_function, copy_decl_built_in_function): Likewise. | |
18339 | (fndecl_built_in_p): Change the type of the "name" argument to | |
18340 | unsigned int. | |
18341 | * builtins.c (expand_builtin): Move DECL_FUNCTION_CODE use | |
18342 | after check for DECL_BUILT_IN_CLASS. | |
18343 | * cgraphclones.c (build_function_decl_skip_args): Use | |
18344 | set_decl_built_in_function. | |
18345 | * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise. | |
18346 | * ipa-split.c (split_function): Likewise. | |
18347 | * langhooks.c (add_builtin_function_common): Likewise. | |
18348 | * omp-simd-clone.c (simd_clone_create): Likewise. | |
18349 | * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise. | |
18350 | * config/darwin.c (darwin_init_cfstring_builtins): Likewise. | |
18351 | (darwin_fold_builtin): Use DECL_MD_FUNCTION_CODE instead of | |
18352 | DECL_FUNCTION_CODE. | |
18353 | * fold-const.c (operand_equal_p): Compare DECL_UNCHECKED_FUNCTION_CODE | |
18354 | instead of DECL_FUNCTION_CODE. | |
18355 | * lto-streamer-out.c (hash_tree): Use DECL_UNCHECKED_FUNCTION_CODE | |
18356 | instead of DECL_FUNCTION_CODE. | |
18357 | * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise. | |
18358 | * print-tree.c (print_node): Use DECL_MD_FUNCTION_CODE when | |
18359 | printing DECL_BUILT_IN_MD. Handle DECL_BUILT_IN_FRONTEND. | |
18360 | * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin) | |
18361 | (aarch64_fold_builtin, aarch64_gimple_fold_builtin): Use | |
18362 | DECL_MD_FUNCTION_CODE instead of DECL_FUNCTION_CODE. | |
18363 | * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise. | |
18364 | * config/alpha/alpha.c (alpha_expand_builtin, alpha_fold_builtin): | |
18365 | (alpha_gimple_fold_builtin): Likewise. | |
18366 | * config/arc/arc.c (arc_expand_builtin): Likewise. | |
18367 | * config/arm/arm-builtins.c (arm_expand_builtin): Likewise. | |
18368 | * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise. | |
18369 | * config/avr/avr.c (avr_expand_builtin, avr_fold_builtin): Likewise. | |
18370 | * config/bfin/bfin.c (bfin_expand_builtin): Likewise. | |
18371 | * config/c6x/c6x.c (c6x_expand_builtin): Likewise. | |
18372 | * config/frv/frv.c (frv_expand_builtin): Likewise. | |
18373 | * config/gcn/gcn.c (gcn_expand_builtin_1): Likewise. | |
18374 | (gcn_expand_builtin): Likewise. | |
18375 | * config/i386/i386-builtins.c (ix86_builtin_reciprocal): Likewise. | |
18376 | (fold_builtin_cpu): Likewise. | |
18377 | * config/i386/i386-expand.c (ix86_expand_builtin): Likewise. | |
18378 | * config/i386/i386.c (ix86_fold_builtin): Likewise. | |
18379 | (ix86_gimple_fold_builtin): Likewise. | |
18380 | * config/ia64/ia64.c (ia64_fold_builtin): Likewise. | |
18381 | (ia64_expand_builtin): Likewise. | |
18382 | * config/iq2000/iq2000.c (iq2000_expand_builtin): Likewise. | |
18383 | * config/mips/mips.c (mips_expand_builtin): Likewise. | |
18384 | * config/msp430/msp430.c (msp430_expand_builtin): Likewise. | |
18385 | * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise. | |
18386 | * config/nios2/nios2.c (nios2_expand_builtin): Likewise. | |
18387 | * config/nvptx/nvptx.c (nvptx_expand_builtin): Likewise. | |
18388 | * config/pa/pa.c (pa_expand_builtin): Likewise. | |
18389 | * config/pru/pru.c (pru_expand_builtin): Likewise. | |
18390 | * config/riscv/riscv-builtins.c (riscv_expand_builtin): Likewise. | |
18391 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
18392 | Likewise. | |
18393 | * config/rs6000/rs6000-call.c (htm_expand_builtin): Likewise. | |
18394 | (altivec_expand_dst_builtin, altivec_expand_builtin): Likewise. | |
18395 | (rs6000_gimple_fold_builtin, rs6000_expand_builtin): Likewise. | |
18396 | * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function) | |
18397 | (rs6000_builtin_reciprocal): Likewise. | |
18398 | * config/rx/rx.c (rx_expand_builtin): Likewise. | |
18399 | * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise. | |
18400 | * config/s390/s390.c (s390_expand_builtin): Likewise. | |
18401 | * config/sh/sh.c (sh_expand_builtin): Likewise. | |
18402 | * config/sparc/sparc.c (sparc_expand_builtin): Likewise. | |
18403 | (sparc_fold_builtin): Likewise. | |
18404 | * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise. | |
18405 | * config/spu/spu.c (spu_expand_builtin): Likewise. | |
18406 | * config/stormy16/stormy16.c (xstormy16_expand_builtin): Likewise. | |
18407 | * config/tilegx/tilegx.c (tilegx_expand_builtin): Likewise. | |
18408 | * config/tilepro/tilepro.c (tilepro_expand_builtin): Likewise. | |
18409 | * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise. | |
18410 | (xtensa_expand_builtin): Likewise. | |
18411 | ||
18412 | 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> | |
18413 | ||
18414 | PR middle-end/91421 | |
18415 | * attribs.c (decl_attributes): Check the DECL_BUILT_IN_CLASS | |
18416 | before the DECL_FUNCTION_CODE. | |
18417 | * calls.c (maybe_warn_alloc_args_overflow): Use fndecl_built_in_p | |
18418 | to check for a BUILT_IN_ALLOCA call. | |
18419 | * ipa-cp.c (ipa_get_indirect_edge_target_1): Likewise for | |
18420 | BUILT_IN_UNREACHABLE. Don't check for a FUNCTION_TYPE. | |
18421 | * ipa-devirt.c (possible_polymorphic_call_target_p): Likewise. | |
18422 | * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise. | |
18423 | * gimple-ssa-isolate-paths.c (is_addr_local): Check specifically | |
18424 | for BUILT_IN_NORMAL functions. | |
18425 | * trans-mem.c (expand_block_edges): Use gimple_call_builtin_p to | |
18426 | test for BUILT_IN_TM_ABORT. | |
18427 | * tree-ssa-ccp.c (optimize_stack_restore): Use fndecl_built_in_p | |
18428 | to check for a BUILT_IN_STACK_RESTORE call. | |
18429 | (optimize_stdarg_builtin): Remove redundant check for GIMPLE_CALL. | |
18430 | * tree-ssa-threadedge.c | |
18431 | (record_temporary_equivalences_from_stmts_at_dest): Check for a | |
18432 | BUILT_IN_NORMAL decl before checking its DECL_FUNCTION_CODE. | |
18433 | * tree-vect-patterns.c (vect_recog_pow_pattern): Use a positive | |
18434 | test for a BUILT_IN_NORMAL call instead of a negative test for | |
18435 | an internal function call. | |
18436 | ||
18437 | 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> | |
18438 | ||
18439 | * tree.h (build_vector_a_then_b): Declare. | |
18440 | * tree.c (build_vector_a_then_b): New function. | |
18441 | * fold-const-call.c (fold_while_ult): Likewise. | |
18442 | (fold_const_call): Use it to handle IFN_WHILE_ULT. | |
18443 | * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPATTERN): New macro. | |
18444 | (aarch64_svpattern): New enum. | |
18445 | * config/aarch64/aarch64-sve.md (mov<PRED_ALL:mode>): Pass | |
18446 | constants through aarch64_expand_mov_immediate. | |
18447 | (*aarch64_sve_mov<PRED_ALL:mode>): Use aarch64_mov_operand rather | |
18448 | than general_operand as the predicate for operand 1. | |
18449 | (while_ult<GPI:mode><PRED_ALL:mode>): Add a '@' marker. | |
18450 | * config/aarch64/aarch64.c (simd_immediate_info::PTRUE): New | |
18451 | insn_type. | |
18452 | (simd_immediate_info::simd_immediate_info): New overload that | |
18453 | takes a scalar_int_mode and an svpattern. | |
18454 | (simd_immediate_info::u): Add a "pattern" field. | |
18455 | (svpattern_token): New function. | |
18456 | (aarch64_get_sve_pred_bits, aarch64_widest_sve_pred_elt_size) | |
18457 | (aarch64_partial_ptrue_length, aarch64_svpattern_for_vl) | |
18458 | (aarch64_sve_move_pred_via_while): New functions. | |
18459 | (aarch64_expand_mov_immediate): Try using | |
18460 | aarch64_sve_move_pred_via_while for predicates that contain N ones | |
18461 | followed by M zeros but that do not correspond to a VLnnn pattern. | |
18462 | (aarch64_sve_pred_valid_immediate): New function. | |
18463 | (aarch64_simd_valid_immediate): Use it instead of dealing directly | |
18464 | with PTRUE and PFALSE. | |
18465 | (aarch64_output_sve_mov_immediate): Handle new simd_immediate_info | |
18466 | forms. | |
18467 | ||
18468 | 2019-08-13 Iain Sandoe <iain@sandoe.co.uk> | |
18469 | ||
18470 | * config/darwin.c (machopic_indirect_call_target): Rename symbol stub | |
18471 | flag. | |
18472 | (darwin_override_options): Likewise. | |
18473 | * config/darwin.h: Likewise. | |
18474 | * config/darwin.opt: Likewise. | |
18475 | * config/i386/i386.c (output_pic_addr_const): Likewise. | |
18476 | * config/rs6000/darwin.h: Likewise. | |
18477 | * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise. | |
18478 | * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ... | |
18479 | ... this TARGET_MACHO_SYMBOL_STUBS. | |
18480 | (FUNCTION_PROFILER):Likewise. | |
18481 | * config/i386/i386.h: Likewise. | |
18482 | ||
18483 | 2019-08-13 Uroš Bizjak <ubizjak@gmail.com> | |
18484 | ||
18485 | * config/i386/i386-expand.c (ix86_expand_vector_extract) | |
18486 | <case E_V2SImode>: Use vec_extr path for | |
18487 | TARGET_MMX_WITH_SSE && TARGET_SSE4_1. | |
18488 | <case E_V8QImode>: Ditto. | |
18489 | * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw. | |
18490 | Use SWI48 mode iterator. Use %k to output operand 0. | |
18491 | (*mmx_pextrw): New insn pattern. | |
18492 | (*mmx_pextrb): Ditto. | |
18493 | (*mmx_pextrb_zext): Ditto. | |
18494 | ||
18495 | 2019-08-13 Jonathan Wakely <jwakely@redhat.com> | |
18496 | ||
18497 | * target.def (libc_has_function, libc_has_fast_function): Improve | |
18498 | documentation strings. | |
18499 | * doc/tm.texi: Regenerate. | |
18500 | ||
18501 | 2019-08-13 Caroline Tice <cmtice@google.com> | |
18502 | ||
18503 | PR other/91396 | |
18504 | * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the | |
18505 | vtv_end.o or vtv_end_preinit.o files if !static. | |
18506 | ||
18507 | 2019-08-13 Olivier Hainque <hainque@adacore.com> | |
18508 | ||
18509 | * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot. | |
18510 | ||
18511 | 2019-08-13 Olivier Hainque <hainque@adacore.com> | |
18512 | ||
18513 | * rtlanal.c (tablejump_casesi_pattern): New function, to | |
18514 | determine if a tablejump insn is a casesi dispatcher. Extracted | |
18515 | from patch_jump_insn. | |
18516 | * rtl.h (tablejump_casesi_pattern): Declare. | |
18517 | * cfgrtl.c (patch_jump_insn): Use it. | |
18518 | * dwarf2cfi.c (create_trace_edges): Use it. | |
18519 | ||
18520 | 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com> | |
18521 | ||
18522 | PR target/81800 | |
18523 | * config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF | |
18524 | operand is larger than a long int. | |
18525 | ||
18526 | 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> | |
18527 | ||
18528 | * machmode.h (opt_mode::else_mode): New function. | |
18529 | (opt_mode::else_blk): Use it. | |
18530 | * config/aarch64/aarch64-protos.h (aarch64_vq_mode): Declare. | |
18531 | (aarch64_full_sve_mode, aarch64_sve_ld1rq_operand_p): Likewise. | |
18532 | (aarch64_gen_stepped_int_parallel): Likewise. | |
18533 | (aarch64_stepped_int_parallel_p): Likewise. | |
18534 | (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate | |
18535 | argument. | |
18536 | * config/aarch64/aarch64.c | |
18537 | (aarch64_expand_sve_widened_duplicate): Delete. | |
18538 | (aarch64_expand_sve_dupq, aarch64_expand_sve_ld1rq): New functions. | |
18539 | (aarch64_expand_sve_const_vector): Rewrite to handle more cases. | |
18540 | (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate | |
18541 | argument. Use early returns in the !CONST_INT_P handling. | |
18542 | Pass all SVE data vectors to aarch64_expand_sve_const_vector rather | |
18543 | than handling some inline. | |
18544 | (aarch64_full_sve_mode, aarch64_vq_mode): New functions, split out | |
18545 | from... | |
18546 | (aarch64_simd_container_mode): ...here. | |
18547 | (aarch64_gen_stepped_int_parallel, aarch64_stepped_int_parallel_p) | |
18548 | (aarch64_sve_ld1rq_operand_p): New functions. | |
18549 | * config/aarch64/predicates.md (descending_int_parallel) | |
18550 | (aarch64_sve_ld1rq_operand): New predicates. | |
18551 | * config/aarch64/constraints.md (UtQ): New constraint. | |
18552 | * config/aarch64/aarch64.md (UNSPEC_REINTERPRET): New unspec. | |
18553 | * config/aarch64/aarch64-sve.md (mov<SVE_ALL:mode>): Remove the | |
18554 | gen_vec_duplicate from call to aarch64_expand_mov_immediate. | |
18555 | (@aarch64_sve_reinterpret<mode>): New expander. | |
18556 | (*aarch64_sve_reinterpret<mode>): New pattern. | |
18557 | (@aarch64_vec_duplicate_vq<mode>_le): New pattern. | |
18558 | (@aarch64_vec_duplicate_vq<mode>_be): Likewise. | |
18559 | (*sve_ld1rq<Vesize>): Replace with... | |
18560 | (@aarch64_sve_ld1rq<mode>): ...this new pattern. | |
18561 | ||
18562 | 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com> | |
18563 | ||
18564 | * config/aarch64/aarch64.c (generic_tunings): Set function alignment to | |
18565 | 16:12. | |
18566 | ||
18567 | 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
18568 | ||
18569 | * config/msp430/driver-msp430.c (msp430_set_driver_var): New. | |
18570 | * config/msp430/msp430-devices.c (canonicalize_path_dirsep): New. | |
18571 | (msp430_check_path_for_devices): New. | |
18572 | (parse_devices_csv_1): New. | |
18573 | (parse_devices_csv): New. | |
18574 | (msp430_extract_mcu_data): Try to find devices.csv and search for the | |
18575 | MCU data in devices.csv before using the hard-coded data. | |
18576 | Warn if devices.csv isn't found and the MCU wasn't found in the | |
18577 | hard-coded data either. | |
18578 | * config/msp430/msp430.h (DRIVER_SELF_SPECS): Call | |
18579 | msp430_set_driver_var for -mno-warn-devices-csv and -mdevices-csv-loc. | |
18580 | Search for devices.csv on -I and -L paths. | |
18581 | (EXTRA_SPEC_FUNCTIONS): Add msp430_check_path_for_devices and | |
18582 | msp430_set_driver_var. | |
18583 | * config/msp430/msp430.opt: Add -mwarn-devices-csv and | |
18584 | -mdevices-csv-loc=. | |
18585 | * doc/invoke.texi (-mmcu): Document that -I and -L paths are | |
18586 | searched for devices.csv. | |
18587 | (mwarn-devices-csv): Document option. | |
18588 | ||
18589 | 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> | |
18590 | ||
18591 | * config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete. | |
18592 | * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>): | |
18593 | Use a single Dn alternative instead of separate Dz and Dm | |
18594 | alternatives. Use aarch64_output_sve_move_immediate. | |
18595 | * config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New | |
18596 | function. | |
18597 | (aarch64_simd_valid_immediate): Fill in the simd_immediate_info | |
18598 | for predicates too. | |
18599 | (aarch64_output_sve_mov_immediate): Handle predicate modes. | |
18600 | (aarch64_output_ptrue): Delete. | |
18601 | ||
18602 | 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> | |
18603 | ||
18604 | * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add | |
18605 | INDEX. | |
18606 | (simd_immediate_info::value, simd_immediate_info::step) | |
18607 | (simd_immediate_info::modifier, simd_immediate_info::shift): Replace | |
18608 | with... | |
18609 | (simd_immediate_info::u): ...this new union. | |
18610 | (simd_immediate_info::simd_immediate_info): Update accordingly. | |
18611 | (aarch64_output_simd_mov_immediate): Likewise. | |
18612 | (aarch64_output_sve_mov_immediate): Likewise. | |
18613 | ||
18614 | 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
18615 | ||
18616 | * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and | |
18617 | extra_gcc_objs. | |
18618 | * config/msp430/driver-msp430.c: Remove msp430_mcu_data. | |
18619 | (msp430_select_cpu): New spec function. | |
18620 | (msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract | |
18621 | MCU data. | |
18622 | * config/msp430/msp430-devices.c: New file. | |
18623 | * config/msp430/msp430-devices.h: New file. | |
18624 | * config/msp430/msp430.c: Remove msp430_mcu_data. | |
18625 | (msp430_option_override): Use msp430_extract_mcu_data to extract | |
18626 | MCU data. | |
18627 | (msp430_use_f5_series_hwmult): Likewise. | |
18628 | (use_32bit_hwmult): Likewise. | |
18629 | (msp430_no_hwmult): Likewise. | |
18630 | * config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the | |
18631 | assembler. | |
18632 | (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without | |
18633 | and -mcpu option. | |
18634 | (EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu. | |
18635 | * config/msp430/t-msp430: Add rule to build msp430-devices.o. | |
18636 | Remove hard-coded MCU multilib data. | |
18637 | ||
18638 | 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> | |
18639 | ||
18640 | * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch | |
18641 | based on the mode instead of testing properties of it. | |
18642 | ||
18643 | 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> | |
18644 | ||
18645 | * doc/md.texi: Document the x and y constraints for AArch64. | |
18646 | * config/aarch64/aarch64.h (FP_LO8_REGNUM_P): New macro. | |
18647 | (FP_LO8_REGS): New reg_class. | |
18648 | (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add an entry for FP_LO8_REGS. | |
18649 | * config/aarch64/aarch64.c (aarch64_hard_regno_nregs) | |
18650 | (aarch64_regno_regclass, aarch64_class_max_nregs): Handle FP_LO8_REGS. | |
18651 | * config/aarch64/predicates.md (aarch64_simd_register): Use | |
18652 | FP_REGNUM_P instead of checking the classes manually. | |
18653 | * config/aarch64/constraints.md (y): New constraint. | |
18654 | ||
18655 | 2019-08-13 Richard Sandiford <richard.sandiford@arm.com> | |
18656 | ||
18657 | * config/aarch64/iterators.md (perm_insn): Include the "1"/"2" suffix. | |
18658 | (perm_hilo): Remove UNSPEC_ZIP*, UNSEPC_TRN* and UNSPEC_UZP*. | |
18659 | * config/aarch64/aarch64-simd.md | |
18660 | (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Rename to.. | |
18661 | (aarch64_<PERMUTE:perm_insn><mode>): ...this and remove perm_hilo | |
18662 | from the asm template. | |
18663 | * config/aarch64/aarch64-sve.md | |
18664 | (aarch64_<perm_insn><perm_hilo><PRED_ALL:mode>): Rename to.. | |
18665 | (aarch64_<perm_insn><PRED_ALL:mode>): ...this and remove perm_hilo | |
18666 | from the asm template. | |
18667 | (aarch64_<perm_insn><perm_hilo><SVE_ALL:mode>): Rename to.. | |
18668 | (aarch64_<perm_insn><SVE_ALL:mode>): ...this and remove perm_hilo | |
18669 | from the asm template. | |
18670 | * config/aarch64/aarch64-simd-builtins.def: Update comment. | |
18671 | ||
18672 | 2019-08-13 Martin Liska <mliska@suse.cz> | |
18673 | ||
18674 | * value-prof.c (gimple_ic_transform): Add new line. | |
18675 | Print details with MSG_NOTE. | |
18676 | ||
18677 | 2019-08-13 Martin Liska <mliska@suse.cz> | |
18678 | ||
18679 | * doc/invoke.texi: Document automatic detection of jobserver. | |
18680 | * lto-wrapper.c (run_gcc): Detect jobserver always. | |
18681 | ||
18682 | 2019-08-13 Uroš Bizjak <ubizjak@gmail.com> | |
18683 | ||
18684 | * config/i386/i386-expand.c (ix86_expand_vector_set) | |
18685 | <case E_V2SImode>: Use vec_merge path for | |
18686 | TARGET_MMX_WITH_SSE && TARGET_SSE4_1. | |
18687 | <case E_V8QImode>: Ditto. | |
18688 | * config/i386/mmx.md (*mmx_pinsrd): New insn pattern. | |
18689 | (*mmx_pinsrb): Ditto. | |
18690 | ||
18691 | 2019-08-12 Jakub Jelinek <jakub@redhat.com> | |
18692 | ||
18693 | PR target/83250 | |
18694 | PR target/91340 | |
18695 | * config/i386/avxintrin.h (_mm256_zextpd128_pd256, | |
18696 | _mm256_zextps128_ps256, _mm256_zextsi128_si256): New intrinsics. | |
18697 | * config/i386/avx512fintrin.h (_mm512_zextpd128_pd512, | |
18698 | _mm512_zextps128_ps512, _mm512_zextsi128_si512, _mm512_zextpd256_pd512, | |
18699 | _mm512_zextps256_ps512, _mm512_zextsi256_si512): Likewise. | |
18700 | ||
18701 | 2019-08-12 Richard Biener <rguenther@suse.de> | |
18702 | ||
18703 | PR lto/91375 | |
18704 | * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on | |
18705 | flag_devirtualize. | |
18706 | ||
18707 | 2019-08-12 Richard Biener <rguenther@suse.de> | |
18708 | ||
18709 | PR driver/91130 | |
18710 | * lto-wrapper.c (get_options_from_collect_gcc_options): Remove | |
18711 | lang_mask option, always use CL_DRIVER. | |
18712 | (get_options_from_collect_gcc_options): Adjust. | |
18713 | (find_and_merge_options): Likewise. | |
18714 | (run_gcc): Likewise. | |
18715 | ||
18716 | 2019-08-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
18717 | ||
18718 | * ipa-predicate.c (add_condition): Restore inverted test. | |
18719 | ||
18720 | 2019-08-10 Jakub Jelinek <jakub@redhat.com> | |
18721 | ||
18722 | * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DEVICE_TYPE. | |
18723 | (enum omp_clause_device_type_kind): New enum. | |
18724 | (struct tree_omp_clause): Add subcode.device_type_kind. | |
18725 | * tree.h (OMP_CLAUSE_DEVICE_TYPE_KIND): Define. | |
18726 | * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries | |
18727 | for device_type clause. | |
18728 | (walk_tree_1): Handle OMP_CLAUSE_DEVICE_TYPE. | |
18729 | * tree-pretty-print.c (dump_omp_clause): Likewise. | |
18730 | ||
18731 | PR target/91408 | |
18732 | * config/i386/mmx.md (usadv8qi): Use register_operand instead of | |
18733 | vector_operand. | |
18734 | ||
18735 | 2019-08-09 Vladimir Makarov <vmakarov@redhat.com> | |
18736 | ||
18737 | * reload1.c (finish_spills): Do not check ira_conflicts_p when | |
18738 | handling spilled pseudos. | |
18739 | ||
18740 | 2019-08-09 Richard Earnshaw <rearnsha@arm.com> | |
18741 | ||
18742 | PR target/91386 | |
18743 | * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx | |
18744 | to preserve the contents of the original insns. | |
18745 | ||
18746 | 2019-08-09 Richard Earnshaw <rearnsha@arm.com> | |
18747 | ||
18748 | * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants. | |
18749 | (addsi3_compare_op2): Likewise. | |
18750 | ||
18751 | 2019-08-09 Martin Liska <mliska@suse.cz> | |
18752 | ||
18753 | * alias.c (alias_ptr_types_compatible_p): Strengten | |
18754 | type comparison in LTO mode. | |
18755 | ||
18756 | 2019-08-09 Richard Sandiford <richard.sandiford@arm.com> | |
18757 | ||
18758 | PR middle-end/90313 | |
18759 | * tree-tailcall.c (find_tail_calls): Reject calls that might | |
18760 | read from an escaped RESULT_DECL. | |
18761 | ||
18762 | 2019-08-09 Martin Liska <mliska@suse.cz> | |
18763 | ||
18764 | * doc/invoke.texi: Document the option value. | |
18765 | * lto-wrapper.c (run_gcc): Set auto_parallel | |
18766 | only with -flto=auto. | |
18767 | ||
18768 | 2019-08-09 Martin Liska <mliska@suse.cz> | |
18769 | ||
18770 | * opts.c (common_handle_option): Error for an invalid argument | |
18771 | to -flto=. | |
18772 | ||
18773 | 2019-08-09 Martin Liska <mliska@suse.cz> | |
18774 | ||
18775 | * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and | |
18776 | use dump_printf to report optimization. | |
18777 | (sem_variable::merge): Likwise. | |
18778 | (sem_item_optimizer::merge_classes): Use dump_printf to report | |
18779 | ICF hits. | |
18780 | ||
18781 | 2019-08-09 Martin Liska <mliska@suse.cz> | |
18782 | ||
18783 | * value-prof.c (gimple_divmod_fixed_value_transform): | |
18784 | Use dump_printf_loc. | |
18785 | (gimple_mod_pow2_value_transform): Likewise. | |
18786 | (gimple_mod_subtract_transform): Likewise. | |
18787 | (init_node_map): Likewise. | |
18788 | (gimple_ic_transform): Likewise. | |
18789 | (gimple_stringops_transform): Likewise. | |
18790 | ||
18791 | 2019-08-08 Mihailo Stojanovic <mistojanovic@wavecomp.com> | |
18792 | ||
18793 | * doc/extend.texi: Add const qualifier to ld intrinsics. | |
18794 | ||
18795 | 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org> | |
18796 | ||
18797 | * config/rs6000/dfp.md (D64_D128): Rename to ... | |
18798 | (DDTD): ... this, throughout. | |
18799 | (dfp_suffix): Rename to ... | |
18800 | (q): ... this, throughout. | |
18801 | ||
18802 | 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org> | |
18803 | ||
18804 | * config/rs6000/dfp.md (D64_D128): Move earlier in the file. | |
18805 | (dfp_suffix): Ditto. | |
18806 | (adddd3, addtd3): Merge to ... | |
18807 | (add<mode>3 for D64_D128): ... this. | |
18808 | (subdd3, subtd3): Merge to ... | |
18809 | (sub<mode>3 for D64_D128): ... this. | |
18810 | (muldd3, multd3): Merge to ... | |
18811 | (mul<mode>3 for D64_D128): ... this. | |
18812 | (divdd3, divtd3): Merge to ... | |
18813 | (div<mode>3 for D64_D128): ... this. | |
18814 | (*cmpdd_internal1, *cmptd_internal1): Merge to ... | |
18815 | (*cmp<mode>_internal1 for D64_D128): ... this. | |
18816 | (ftruncdd2, ftrunctd2): Merge to ... | |
18817 | (ftrunc<mode>2 for D64_D128): ... this. | |
18818 | (fixdddi2, fixtddi2): Merge to ... | |
18819 | (fix<mode>di2 for D64_D128): ... this. | |
18820 | ||
18821 | 2019-08-08 Jim Wilson <jimw@sifive.com> | |
18822 | ||
18823 | PR target/91229 | |
18824 | * config/riscv/riscv.c (riscv_flatten_aggregate_field): New arg | |
18825 | ignore_zero_width_bit_field_p. Skip zero size bitfields when true. | |
18826 | Pass into recursive call. | |
18827 | (riscv_flatten_aggregate_argument): New arg. Pass to | |
18828 | riscv_flatten_aggregate_field. | |
18829 | (riscv_pass_aggregate_in_fpr_pair_p): New local warned. Call | |
18830 | riscv_flatten_aggregate_argument twice, with false and true as last | |
18831 | arg. Process result twice. Compare results and warn if different. | |
18832 | (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise. | |
18833 | ||
18834 | 2019-08-08 Martin Liska <mliska@suse.cz> | |
18835 | ||
18836 | PR bootstrap/91352 | |
18837 | * gcc.c (driver::detect_jobserver): Use is_valid_fd. | |
18838 | * lto-wrapper.c (jobserver_active_p): Likewise. | |
18839 | ||
18840 | 2019-08-08 Martin Liska <mliska@suse.cz> | |
18841 | ||
18842 | * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop | |
18843 | IS_OPERATOR_NEW and IS_OPERATOR_DELETE. | |
18844 | (create_version_clone_with_body): Likewise. | |
18845 | ||
18846 | 2019-08-08 Jakub Jelinek <jakub@redhat.com> | |
18847 | ||
18848 | * gimplify.c (omp_add_variable): Use GOVD_PRIVATE | GOVD_EXPLICIT | |
18849 | for VLA helper variables on target data even if not GOVD_FIRSTPRIVATE. | |
18850 | (gimplify_scan_omp_clauses): For OMP_CLAUSE_USE_DEVICE_* use just | |
18851 | GOVD_EXPLICIT flags. | |
18852 | (gimplify_omp_workshare): For OMP_TARGET_DATA move all | |
18853 | OMP_CLAUSE_USE_DEVICE_* clauses to the end of clauses chain. | |
18854 | * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_USE_DEVICE_* | |
18855 | call install_var_field with mask 11 instead of 3. | |
18856 | (lower_omp_target): For OMP_CLAUSE_USE_DEVICE_* use pass | |
18857 | (splay_tree_key) &DECL_UID (var) to build_sender_ref instead of var. | |
18858 | ||
18859 | 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> | |
18860 | ||
18861 | * config/aarch64/constraints.md (Z): Handle floating-point zeros too. | |
18862 | * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise. | |
18863 | ||
18864 | 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> | |
18865 | ||
18866 | * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add | |
18867 | MOVPRFX alternatives. Make the GPR alternatives more expensive | |
18868 | than the FPR ones. | |
18869 | ||
18870 | 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> | |
18871 | ||
18872 | * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>): | |
18873 | Disparage the GPR alternative relative to the FPR one. | |
18874 | Fix handling of 8-bit and 16-bit FPR values. | |
18875 | ||
18876 | 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> | |
18877 | ||
18878 | * config/aarch64/iterators.md (BITWISEV): Delete. | |
18879 | (SVE_INT_REDUCTION, SVE_FP_REDUCTION): New int iterators. | |
18880 | (optab): Handle UNSPEC_UMAXV, UNSPEC_UMINV, UNSPEC_SMAXV, | |
18881 | UNSPEC_SMINV, UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV, | |
18882 | UNSPEC_FMINNMV, UNSPEC_FMINV. | |
18883 | (bit_reduc_op): Delete. | |
18884 | (sve_int_op): New int attribute. | |
18885 | (sve_fp_op): Handle UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV, | |
18886 | UNSPEC_FMINNMV, UNSPEC_FMINV. | |
18887 | * config/aarch64/aarch64-sve.md | |
18888 | (reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>) | |
18889 | (*reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>) | |
18890 | (reduc_<BITWISEV:optab>_scal_<SVE_I:mode>) | |
18891 | (*reduc_<BITWISEV:optab>_scal_<SVE_I:mode>): Merge into... | |
18892 | (reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>) | |
18893 | (*reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>): ...these | |
18894 | new patterns. | |
18895 | (reduc_plus_scal_<SVE_F:mode>, *reduc_plus_scal_<SVE_I:mode>) | |
18896 | (reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>) | |
18897 | (*reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>): Merge into... | |
18898 | (reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>) | |
18899 | (*reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>): ...these | |
18900 | new patterns. | |
18901 | ||
18902 | 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> | |
18903 | ||
18904 | * config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4) | |
18905 | (fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4) | |
18906 | (fms<mode>4, *fms<mode>4): Replace with... | |
18907 | (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4) | |
18908 | (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns. | |
18909 | Use unspecs instead of rtx codes. | |
18910 | (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4) | |
18911 | (*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY. | |
18912 | ||
18913 | 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> | |
18914 | ||
18915 | * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New | |
18916 | int iterator. | |
18917 | (maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM. | |
18918 | * config/aarch64/aarch64-sve.md | |
18919 | (<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to... | |
18920 | (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and | |
18921 | use a single unspec for the rhs. | |
18922 | (*<su><maxmin><mode>3): Delete. | |
18923 | (<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs. | |
18924 | ||
18925 | 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> | |
18926 | ||
18927 | * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG) | |
18928 | (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM) | |
18929 | (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX) | |
18930 | (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs. | |
18931 | (optab, sve_fp_op): Handle them. | |
18932 | (SVE_FP_UNARY): Delete. | |
18933 | (optab): Remove sqrt entry. | |
18934 | (sve_fp_op): Remove neg, abs and sqrt entries. | |
18935 | (SVE_COND_FP_UNARY): New int iterator. | |
18936 | * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2) | |
18937 | (*<frint_pattern><mode>2): Delete. | |
18938 | (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with... | |
18939 | (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this. | |
18940 | (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with... | |
18941 | (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this. | |
18942 | ||
18943 | 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> | |
18944 | ||
18945 | * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete. | |
18946 | ||
18947 | 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> | |
18948 | ||
18949 | * config/aarch64/iterators.md (UNSPEC_COND_ADD): Rename to... | |
18950 | (UNSPEC_COND_FADD): ...this. | |
18951 | (UNSPEC_COND_SUB): Rename to... | |
18952 | (UNSPEC_COND_FSUB): ...this. | |
18953 | (UNSPEC_COND_MUL): Rename to... | |
18954 | (UNSPEC_COND_FMUL): ...this. | |
18955 | (UNSPEC_COND_DIV): Rename to... | |
18956 | (UNSPEC_COND_FDIV): ...this. | |
18957 | (UNSPEC_COND_MAX): Rename to... | |
18958 | (UNSPEC_COND_FMAXNM): ...this. | |
18959 | (UNSPEC_COND_MIN): Rename to... | |
18960 | (UNSPEC_COND_FMINNM): ...this. | |
18961 | (UNSPEC_COND_LT): Rename to... | |
18962 | (UNSPEC_COND_FCMLT): ...this. | |
18963 | (UNSPEC_COND_LE): Rename to... | |
18964 | (UNSPEC_COND_FCMLE): ...this. | |
18965 | (UNSPEC_COND_EQ): Rename to... | |
18966 | (UNSPEC_COND_FCMEQ): ...this. | |
18967 | (UNSPEC_COND_NE): Rename to... | |
18968 | (UNSPEC_COND_FCMNE): ...this. | |
18969 | (UNSPEC_COND_GE): Rename to... | |
18970 | (UNSPEC_COND_FCMGE): ...this. | |
18971 | (UNSPEC_COND_GT): Rename to... | |
18972 | (UNSPEC_COND_FCMGT): ...this. | |
18973 | (SVE_COND_FP_BINARY, SVE_COND_FP_CMP, optab, cmp_op, sve_fp_op) | |
18974 | (sve_fp_op_rev): Update accordingly. | |
18975 | * config/aarch64/aarch64.c (aarch64_unspec_cond_code): Likewise. | |
18976 | ||
18977 | 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> | |
18978 | ||
18979 | * config/aarch64/aarch64-sve.md: Reorganize contents and add | |
18980 | banner comments. | |
18981 | * config/aarch64/check-sve-md.awk: New file. | |
18982 | * config/aarch64/t-aarch64 (s-check-sve-md): New rule. | |
18983 | (insn-conditions.md): Depend on it. | |
18984 | ||
18985 | 2019-08-07 Uroš Bizjak <ubizjak@gmail.com> | |
18986 | ||
18987 | PR target/91385 | |
18988 | * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern. | |
18989 | (*negsi2_cmpz_zext): Ditto. | |
18990 | ||
18991 | 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> | |
18992 | ||
18993 | * config/aarch64/iterators.md (commutative): Remove. | |
18994 | ||
18995 | 2019-08-07 Richard Earnshaw <rearnsha@arm.com> | |
18996 | ||
18997 | PR driver/91130 | |
18998 | * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when | |
18999 | processing COLLECT_GCC_OPTIONS. | |
19000 | (run_gcc): Likewise. | |
19001 | ||
19002 | 2019-08-07 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
19003 | ||
19004 | PR tree-optimization/91109 | |
19005 | * lra-remat.c (update_scratch_ops): Remove assignment of the | |
19006 | hard register. | |
19007 | ||
19008 | 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> | |
19009 | ||
19010 | * data-streamer.h (streamer_write_poly_uint64): Declare. | |
19011 | (streamer_read_poly_uint64): Likewise. | |
19012 | * data-streamer-in.c (streamer_read_poly_uint64): New function. | |
19013 | * data-streamer-out.c (streamer_write_poly_uint64): Likewise. | |
19014 | * ipa-predicate.h (condition::size): Turn into a poly_int64. | |
19015 | (add_condition): Take a poly_int64 size. | |
19016 | * ipa-predicate.c (add_condition): Likewise. | |
19017 | * ipa-prop.h (ipa_load_from_parm_agg): Take a poly_int64 size pointer. | |
19018 | * ipa-prop.c (ipa_load_from_parm_agg): Likewise. | |
19019 | (ipcp_modif_dom_walker::before_dom_children): Update accordingly. | |
19020 | * ipa-fnsummary.c (evaluate_conditions_for_known_args): Handle | |
19021 | condition::size as a poly_int64. | |
19022 | (unmodified_parm_1): Take a poly_int64 size pointer. | |
19023 | (unmodified_parm): Likewise. | |
19024 | (unmodified_parm_or_parm_agg_item): Likewise. | |
19025 | (set_cond_stmt_execution_predicate): Update accordingly. | |
19026 | (set_switch_stmt_execution_predicate): Likewise. | |
19027 | (will_be_nonconstant_expr_predicate): Likewise. | |
19028 | (will_be_nonconstant_predicate): Likewise. | |
19029 | (inline_read_section): Stream condition::size as a poly_int. | |
19030 | (ipa_fn_summary_write): Likewise. | |
19031 | ||
19032 | 2019-08-07 Martin Liska <mliska@suse.cz> | |
19033 | ||
19034 | * fold-const.c (twoval_comparison_p): Replace int | |
19035 | with bool as a return type. | |
19036 | (simple_operand_p): Likewise. | |
19037 | (operand_equal_p): Replace int with bool as a return type. | |
19038 | * fold-const.h (operand_equal_p): Likewise. | |
19039 | ||
19040 | 2019-08-07 Jakub Jelinek <jakub@redhat.com> | |
19041 | ||
19042 | * tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR | |
19043 | OpenMP description. Add OMP_CLAUSE_USE_DEVICE_ADDR clause. | |
19044 | * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries | |
19045 | for OMP_CLAUSE_USE_DEVICE_ADDR clause. | |
19046 | (walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR. | |
19047 | * tree-pretty-print.c (dump_omp_clause): Likewise. | |
19048 | * tree-nested.c (convert_nonlocal_omp_clauses, | |
19049 | convert_local_omp_clauses): Likewise. | |
19050 | * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): | |
19051 | Likewise. | |
19052 | * omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise. | |
19053 | Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR | |
19054 | clause with array or reference to array types, no matter what type | |
19055 | except for reference it has. | |
19056 | ||
19057 | 2019-08-07 Kewen Lin <linkw@gcc.gnu.org> | |
19058 | ||
19059 | * config/rs6000/vector.md (vrotr<mode>3): New define_expand. | |
19060 | ||
19061 | 2019-08-07 Kito Cheng <kito.cheng@sifive.com> | |
19062 | ||
19063 | * config/riscv/multilib-generator: (canonical_order): Add 'g'. | |
19064 | (arch_canonicalize): Support rv32g and rv64g and fix error | |
19065 | handling. | |
19066 | ||
19067 | 2019-08-06 Martin Liska <mliska@suse.cz> | |
19068 | ||
19069 | * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P | |
19070 | and DECL_IS_OPERATOR_DELETE_P. | |
19071 | ||
19072 | 2019-08-06 Jakub Jelinek <jakub@redhat.com> | |
19073 | ||
19074 | * tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ... | |
19075 | (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this. Adjust comment. | |
19076 | * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable | |
19077 | new vars into GOVD_PRIVATE rather than GOVD_LOCAL. | |
19078 | (gimplify_omp_for): Don't do C++ random access iterator clause | |
19079 | adjustments on combined constructs from OMP_LOOP. For OMP_LOOP, | |
19080 | don't predetermine the artificial iterator in case of C++ random | |
19081 | access iterators as lastprivate, but private. For OMP_LOOP, force | |
19082 | bind expr around simd body and force for_pre_body before the | |
19083 | construct. Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of | |
19084 | OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV. | |
19085 | (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for | |
19086 | diff var of C++ random access iterators. Handle | |
19087 | OMP_CLAUSE_FIRSTPRIVATE. For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if | |
19088 | not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases | |
19089 | clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause | |
19090 | on the OMP_FOR and OMP_DISTRIBUTE constructs if any. | |
19091 | * omp-low.c (lower_rec_input_clauses): For | |
19092 | OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private | |
19093 | variables instead of default constructing them. | |
19094 | (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV | |
19095 | instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the | |
19096 | is_taskloop_ctx check from the assert to the guarding condition. | |
19097 | ||
19098 | 2019-08-06 Kito Cheng <kito.cheng@sifive.com> | |
19099 | ||
19100 | * config/riscv/multilib-generator: (canonical_order): New. | |
19101 | (arch_canonicalize): Dito. | |
19102 | Apply arch_canonicalize for alts. | |
19103 | ||
19104 | 2019-08-05 Martin Sebor <msebor@redhat.com> | |
19105 | ||
19106 | * doc/extend.texi (Common Variable Attributes): Document alias | |
19107 | attribute. | |
19108 | ||
19109 | 2019-08-05 Marek Polacek <polacek@redhat.com> | |
19110 | ||
19111 | PR c++/91338 - Implement P1161R3: Deprecate a[b,c]. | |
19112 | * doc/invoke.texi: Document -Wcomma-subscript. | |
19113 | ||
19114 | 2019-08-05 Richard Sandiford <richard.sandiford@arm.com> | |
19115 | ||
19116 | * tree-core.h (tree_function_decl): Make function_code an | |
19117 | independent field. Group the remaining bitfields into bytes | |
19118 | and move decl_type so that it contines to be at a byte boundary. | |
19119 | Leave 12 bits for future expansion. | |
19120 | ||
19121 | 2019-08-05 Richard Sandiford <richard.sandiford@arm.com> | |
19122 | ||
19123 | * gimple-fold.c (gimple_fold_mask_load_store_mem_ref) | |
19124 | (gimple_fold_mask_load, gimple_fold_mask_store): New functions. | |
19125 | (gimple_fold_call): Use them to fold IFN_MASK_LOAD and | |
19126 | IFN_MASK_STORE. | |
19127 | ||
19128 | 2019-08-05 Richard Sandiford <richard.sandiford@arm.com> | |
19129 | ||
19130 | * gimple.h (gimple_move_vops): Declare. | |
19131 | * gimple.c (gimple_move_vops): New function | |
19132 | * gimple-fold.c (replace_call_with_call_and_fold) | |
19133 | (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset) | |
19134 | (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange) | |
19135 | (gimple_fold_call): Use it. | |
19136 | * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise. | |
19137 | * tree-call-cdce.c (use_internal_fn): Likewise. | |
19138 | * tree-if-conv.c (predicate_load_or_store): Likewise. | |
19139 | * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise. | |
19140 | * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise. | |
19141 | * tree-ssa-propagate.c (finish_update_gimple_call): Likewise. | |
19142 | (update_call_from_tree): Likewise. | |
19143 | * tree-vect-stmts.c (vectorizable_load): Likewise. | |
19144 | * tree-vectorizer.c (adjust_simduid_builtins): Likewise. | |
19145 | ||
19146 | 2019-08-05 Martin Liska <mliska@suse.cz> | |
19147 | ||
19148 | PR c++/91334 | |
19149 | * tree-ssa-dce.c (propagate_necessity): Handle new operators | |
19150 | with not arguments. | |
19151 | (eliminate_unnecessary_stmts): Likewise. | |
19152 | ||
19153 | 2019-08-05 Richard Biener <rguenther@suse.de> | |
19154 | ||
19155 | PR middle-end/91169 | |
19156 | * fold-const.c (get_array_ctor_element_at_index): Create | |
19157 | offset_ints according to the sign of the index type and treat | |
19158 | that as signed if it is obviously so. | |
19159 | ||
19160 | 2019-08-05 Jakub Jelinek <jakub@redhat.com> | |
19161 | ||
19162 | PR target/91341 | |
19163 | * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128, | |
19164 | _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i, | |
19165 | _mm256_storeu2_m128i): New function. | |
19166 | ||
19167 | 2019-08-05 Kito Cheng <kito.cheng@sifive.com> | |
19168 | ||
19169 | * config/riscv/riscv.c (riscv_promote_function_mode): New. | |
19170 | (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode. | |
19171 | ||
19172 | 2019-08-05 Alan Modra <amodra@gmail.com> | |
19173 | ||
19174 | PR target/91349 | |
19175 | * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC), | |
19176 | (LINK_GCC_C_SEQUENCE_SPEC): Undef. | |
19177 | ||
19178 | 2019-08-04 Gerald Pfeifer <gerald@pfeifer.com> | |
19179 | ||
19180 | * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6 | |
19181 | bug that was fixed in Tcl 8.6.1. | |
19182 | ||
19183 | 2019-08-02 Michael Meissner <meissner@linux.ibm.com> | |
19184 | ||
19185 | * config/rs6000/future.md: New file. | |
19186 | * config/rs6000/rs6000.md: Include future.md. | |
19187 | * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md. | |
19188 | ||
19189 | 2019-08-02 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
19190 | ||
19191 | * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT | |
19192 | check to use targetm.slow_unaligned_access instead. | |
19193 | ||
19194 | * function.c (assign_param_data_one): Remove unused data members. | |
19195 | ||
19196 | 2019-08-02 Steve Ellcey <sellcey@marvell.com> | |
19197 | ||
19198 | * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to | |
19199 | build_distinct_type_copy. | |
19200 | (simd_clone_adjust_argument_types): Ditto. | |
19201 | (simd_clone_adjust): Call build_distinct_type_copy here. | |
19202 | (expand_simd_clones): Ditto. | |
19203 | ||
19204 | 2019-08-02 Uroš Bizjak <ubizjak@gmail.com> | |
19205 | ||
19206 | PR target/91201 | |
19207 | * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern. | |
19208 | ||
19209 | 2019-08-02 Alexander Monakov <amonakov@ispras.ru> | |
19210 | ||
19211 | * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts | |
19212 | from 'const void *'. | |
19213 | (sort_locs_in_loop_postorder_cmp): Likewise. | |
19214 | ||
19215 | 2019-08-02 Eric Botcazou <ebotcazou@adacore.com> | |
19216 | ||
19217 | * doc/invoke.texi (hot-bb-count-fraction): Rework description. | |
19218 | (hot-bb-count-ws-permille): Likewise. | |
19219 | (hot-bb-frequency-fraction): Likewise. | |
19220 | (unlikely-bb-count-fraction): Likewise. | |
19221 | * params.def (hot-bb-count-fraction): Rework description. | |
19222 | (hot-bb-count-ws-permille): Likewise. | |
19223 | (hot-bb-frequency-fraction): Likewise. | |
19224 | (unlikely-bb-count-fraction): Likewise. Remove min and max values. | |
19225 | * predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION. | |
19226 | ||
19227 | 2019-08-02 Uroš Bizjak <ubizjak@gmail.com> | |
19228 | ||
19229 | PR target/91323 | |
19230 | * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>: | |
19231 | Return false. | |
19232 | ||
19233 | 2019-08-02 Richard Biener <rguenther@suse.de> | |
19234 | ||
19235 | * vec.h (vec::sort): Add gcc_qsort_r support. | |
19236 | (vec::bsearch): Add an overload with gcc_qsort_r style callbacks. | |
19237 | * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust | |
19238 | to gcc_qsort_r style callback. | |
19239 | (sort_locs_in_loop_postorder_cmp): Likewise. | |
19240 | (analyze_memory_references): Use gcc_sort_r interfaces. | |
19241 | (find_ref_loc_in_loop_cmp): Use new bsearch overload. | |
19242 | ||
19243 | 2019-08-02 Martin Liska <mliska@suse.cz> | |
19244 | ||
19245 | PR lto/91313 | |
19246 | * gcc.c (driver::maybe_run_linker): Call detect_jobserver | |
19247 | to detect working job server. | |
19248 | (driver::detect_jobserver): Test whether jobserver | |
19249 | is active from GCC driver. That will prevent situation where | |
19250 | GCC is invoked from a LD plugin and the linker already uses | |
19251 | file descriptors suggested by make. That leads to a wrong | |
19252 | detection. | |
19253 | * gcc.h (driver): Add detect_jobserver. | |
19254 | * lto-wrapper.c (jobserver_active_p): Simplify sscanf by | |
19255 | not scanning for --jobserver-auth prefix. | |
19256 | ||
19257 | 2019-08-02 Jakub Jelinek <jakub@redhat.com> | |
19258 | ||
19259 | PR tree-optimization/91201 | |
19260 | * config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0 | |
19261 | V16QImode extraction without sse4.1 try to use V4SImode lowpart | |
19262 | extraction. | |
19263 | ||
19264 | 2019-08-01 Martin Sebor <msebor@redhat.com> | |
19265 | ||
19266 | PR c++/90947 | |
19267 | * tree.c (type_initializer_zero_p): Define. | |
19268 | * tree.h (type_initializer_zero_p): New function. | |
19269 | ||
19270 | 2019-08-01 Eric Botcazou <ebotcazou@adacore.com> | |
19271 | ||
19272 | * cfgrtl.c (relink_block_chain): Add line returns in dump file. | |
19273 | ||
19274 | 2019-08-01 Eric Botcazou <ebotcazou@adacore.com> | |
19275 | ||
19276 | * cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment. | |
19277 | * cgraph.c (cgraph_edge::maybe_hot_p): Likewise. Remove useless test. | |
19278 | * predict.c (maybe_hot_count_p): Likewise. | |
19279 | (maybe_hot_bb_p): Tweak comment. | |
19280 | (maybe_hot_edge_p): Likewise. | |
19281 | (probably_never_executed): Likewise. Minor tweak. | |
19282 | (probably_never_executed_bb_p): Likewise. | |
19283 | (unlikely_executed_edge_p): Likewise. | |
19284 | (probably_never_executed_edge_p): Likewise. | |
19285 | (optimize_function_for_size_p): Likewise. | |
19286 | (optimize_function_for_speed_p): Likewise. | |
19287 | (function_optimization_type): Likewise. | |
19288 | (optimize_bb_for_size_p): Likewise. | |
19289 | (optimize_bb_for_speed_p): Likewise. | |
19290 | (bb_optimization_type): Likewise. | |
19291 | (optimize_edge_for_size_p): Likewise. | |
19292 | (optimize_edge_for_speed_p): Likewise. | |
19293 | (optimize_insn_for_size_p): Likewise. | |
19294 | (optimize_insn_for_speed_p): Likewise. | |
19295 | (optimize_loop_for_size_p): Likewise. | |
19296 | (optimize_loop_for_speed_p): Likewise. | |
19297 | (optimize_loop_nest_for_speed_p): Likewise. | |
19298 | (optimize_loop_nest_for_size_p): Likewise. | |
19299 | (predictable_edge_p): Likewise. | |
19300 | (handle_missing_profiles): Minor tweak. | |
19301 | ||
19302 | 2019-08-01 Michael Meissner <meissner@linux.ibm.com> | |
19303 | ||
19304 | * config/rs6000/predicates.md (pcrel_external_address): Update | |
19305 | comment. | |
19306 | ||
19307 | 2019-08-01 Uroš Bizjak <ubizjak@gmail.com> | |
19308 | ||
19309 | PR target/85693 | |
19310 | * config/i386/mmx.md (usadv8qi): New expander. | |
19311 | ||
19312 | 2019-08-01 Matthew Beliveau <mbelivea@redhat.com> | |
19313 | ||
19314 | PR c++/90590 | |
19315 | * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators | |
19316 | with reserved names that are in a system header. | |
19317 | ||
19318 | 2019-08-01 Uroš Bizjak <ubizjak@gmail.com> | |
19319 | ||
19320 | * config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative. | |
19321 | (*vec_extractv2si_0_zext_sse4): New insn pattern. | |
19322 | (*vec_extractv2si_0_zext): Ditto. | |
19323 | (*vec_extractv2si_1): Add (rm,x) alternative. | |
19324 | (*vec_extractv2si_1_zext): New insn pattern. | |
19325 | (*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE" | |
19326 | insn constraint. | |
19327 | ||
19328 | 2019-08-01 Richard Biener <rguenther@suse.de> | |
19329 | ||
19330 | * domwalk.c (bb_postorder): Remove static variable. | |
19331 | (cmp_bb_postorder): Adjust. | |
19332 | (sort_bbs_postorder): Adjust and use gcc_sort_r. | |
19333 | (dom_walker::walk): Adjust. | |
19334 | ||
19335 | 2019-08-01 Alexander Monakov <amonakov@ispras.ru> | |
19336 | ||
19337 | * sort.cc (sort_r_ctx): New struct. | |
19338 | (reorder23): Make templated on context type. | |
19339 | (reorder45): Ditto. | |
19340 | (cmp1): Ditto. Adjust signature. | |
19341 | (netsort): Ditto. | |
19342 | (mergesort): Ditto. | |
19343 | [CHECKING_P] (cmp2to3): New static function. Use it... | |
19344 | (gcc_qsort) [CHECKING_P]: ...here. | |
19345 | (gcc_sort_r): New function. | |
19346 | * system.h (sort_r_cmp_fn): New function typedef. | |
19347 | (qsort_chk): Adjust signature. | |
19348 | (gcc_sort_r): Declare. | |
19349 | * vec.c (qsort_chk_error): Adjust. | |
19350 | (qsort_chk): Adjust. | |
19351 | ||
19352 | 2019-08-01 Richard Biener <rguenther@suse.de> | |
19353 | ||
19354 | * tree-ssa-pre.c (has_abnormal_preds): Remove global var. | |
19355 | (compute_antic): Localize it here. | |
19356 | ||
19357 | 2019-07-31 Maxim Blinov <maxim.blinov@embecosm.com> | |
19358 | ||
19359 | * common/config/riscv/riscv-common.c: Check -march string ends | |
19360 | with null. | |
19361 | ||
19362 | 2019-07-31 Alexander Monakov <amonakov@ispras.ru> | |
19363 | ||
19364 | * ipa-devirt.c (type_warning_cmp): Make static. | |
19365 | (decl_warning_cmp): Ditto. | |
19366 | ||
19367 | 2019-07-31 Peter Bergner <bergner@linux.ibm.com> | |
19368 | ||
19369 | PR target/91050 | |
19370 | * config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option. | |
19371 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove | |
19372 | use of deleted rs6000_dejagnu_cpu_index variable. | |
19373 | * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define. | |
19374 | (SUBTARGET_DRIVER_SELF_SPECS): Likewise. | |
19375 | * config/darwin.h (DRIVER_SELF_SPECS): Rename from this ... | |
19376 | (SUBTARGET_DRIVER_SELF_SPECS): ...to this. | |
19377 | * config/i386/i386.h (DRIVER_SELF_SPECS): Define. | |
19378 | (SUBTARGET_DRIVER_SELF_SPECS): Likewise. | |
19379 | ||
19380 | 2019-07-31 Richard Biener <rguenther@suse.de> | |
19381 | ||
19382 | PR tree-optimization/91280 | |
19383 | * tree-ssa-structalias.c (get_constraint_for_component_ref): | |
19384 | Decompose MEM_REF manually for offset handling. | |
19385 | ||
19386 | 2019-07-31 Richard Biener <rguenther@suse.de> | |
19387 | ||
19388 | PR tree-optimization/91293 | |
19389 | * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands | |
19390 | of reduction stmts. | |
19391 | ||
19392 | 2019-07-31 Matt Thomas <matt@3am-software.com> | |
19393 | Nick Hudson <nick@nthcliff.demon.co.uk> | |
19394 | Matthew Green <mrg@eterna.com.au> | |
19395 | Maya Rashish <coypu@sdf.org> | |
19396 | ||
19397 | * config.gcc (hppa*-*-netbsd*): New target. | |
19398 | * config/pa/pa-netbsd.h: New file. | |
19399 | * config/pa/pa32-netbsd.h: New file. | |
19400 | ||
19401 | 2019-07-31 Jakub Jelinek <jakub@redhat.com> | |
19402 | ||
19403 | PR tree-optimization/91201 | |
19404 | * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander. | |
19405 | ||
19406 | 2019-07-31 Andrew Stubbs <ams@codesourcery.com> | |
19407 | ||
19408 | * config/gcn/gcn-valu.md | |
19409 | (scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt. | |
19410 | (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise. | |
19411 | (scatter<mode>_insn_2offsets<exec_scatter>): Likewise. | |
19412 | * config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to | |
19413 | struct ilist. Add nops for delayeduse insns. | |
19414 | * config/gcn/gcn.md (delayeduse): New attribute. | |
19415 | (*movbi): Remove s_waitcnt from stores. | |
19416 | (*mov<mode>_insn): Likewise. | |
19417 | (*movti_insn): Likewise. Add delayeduse attribute. | |
19418 | (sync_compare_and_swap<mode>_insn): Add delayeduse attribute. | |
19419 | (atomic_store<mode>): Remove or adjust s_waitcnt. | |
19420 | ||
19421 | 2019-07-31 Richard Biener <rguenther@suse.de> | |
19422 | ||
19423 | * vr-values.h (vr_values::swap_vr_value): New. | |
19424 | (vr_values::free_value_range): likewise. | |
19425 | * vr-values.c (vr_values::swap_vr_value): Implement. | |
19426 | * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range): | |
19427 | Do not return a range or take a var. | |
19428 | (evrp_range_analyzer::stack): Change back to recording a non-const | |
19429 | value_range *. | |
19430 | * gimple-ssa-evrp-analyze.c | |
19431 | (evrp_range_analyzer::record_ranges_from_stmt): Free unused | |
19432 | value-range. | |
19433 | (evrp_range_analyzer::pop_to_marker): Adjust. | |
19434 | (evrp_range_analyzer::push_value_range): Use new swap_vr_value. | |
19435 | (evrp_range_analyzer::pop_value_range): Likewise. Free the | |
19436 | no longer needed value-range. | |
19437 | ||
19438 | 2019-07-31 Martin Liska <mliska@suse.cz> | |
19439 | ||
19440 | * tree-ssa-dce.c (propagate_necessity): Delete operator can | |
19441 | have size and (or) alignment as 2nd and later arguments. | |
19442 | Mark all of them as necessary. | |
19443 | ||
19444 | 2019-07-31 Richard Biener <rguenther@suse.de> | |
19445 | ||
19446 | PR tree-optimization/91178 | |
19447 | * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address): | |
19448 | Use tail-recursion. | |
19449 | ||
19450 | 2019-07-31 Jakub Jelinek <jakub@redhat.com> | |
19451 | ||
19452 | PR tree-optimization/91201 | |
19453 | * config/i386/sse.md (reduc_plus_scal_v16qi): New expander. | |
19454 | (REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for | |
19455 | TARGET_AVX512F. | |
19456 | (reduc_plus_scal_<mode>): Improve formatting by introducing | |
19457 | a temporary. | |
19458 | ||
19459 | 2019-07-31 Sudakshina Das <sudi.das@arm.com> | |
19460 | ||
19461 | * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add | |
19462 | AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT, | |
19463 | AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL. | |
19464 | (aarch64_init_tme_builtins): New. | |
19465 | (aarch64_init_builtins): Call aarch64_init_tme_builtins. | |
19466 | (aarch64_expand_builtin_tme): New. | |
19467 | (aarch64_expand_builtin): Handle TME builtins. | |
19468 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define | |
19469 | __ARM_FEATURE_TME when enabled. | |
19470 | * config/aarch64/aarch64-option-extensions.def: Add "tme". | |
19471 | * config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New. | |
19472 | (TARGET_TME): New. | |
19473 | * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST. | |
19474 | (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and | |
19475 | UNSPECV_TCANCEL. | |
19476 | (tstart, ttest, tcommit, tcancel): New instructions. | |
19477 | * config/aarch64/arm_acle.h (__tstart, __tcommit): New. | |
19478 | (__tcancel, __ttest): New. | |
19479 | (_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro. | |
19480 | (_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise. | |
19481 | (_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise. | |
19482 | (_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise. | |
19483 | * config/arm/types.md: Add new tme type attr. | |
19484 | * doc/invoke.texi: Document "tme". | |
19485 | ||
19486 | 2019-07-31 Joel Hutton <Joel.Hutton@arm.com> | |
19487 | ||
19488 | * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add | |
19489 | warn_unused_result attribute. | |
19490 | (cmse_check_address_range): Add warn_unused_result attribute. | |
19491 | ||
19492 | 2019-07-31 Richard Biener <rguenther@suse.de> | |
19493 | ||
19494 | PR tree-optimization/91257 | |
19495 | * tree-vrp.c (union_ranges): Unify equality and less tests | |
19496 | by using compare_values. Re-order cheap tests first. | |
19497 | ||
19498 | 2019-07-31 Jakub Jelinek <jakub@redhat.com> | |
19499 | ||
19500 | PR middle-end/91301 | |
19501 | * gimplify.c (gimplify_omp_for): If for class iterator on | |
19502 | distribute parallel for there is no data sharing clause | |
19503 | on inner_for_stmt, look for private clause on combined | |
19504 | parallel too and if found, move it to inner_for_stmt. | |
19505 | ||
19506 | 2019-07-31 Richard Sandiford <richard.sandiford@arm.com> | |
19507 | ||
19508 | * lra-int.h (lra_operand_data): Remove early_clobber field. | |
19509 | (lra_insn_reg): Likewise. | |
19510 | * lra.c (debug_operand_data): Update accordingly. | |
19511 | (setup_operand_alternative): Likewise. | |
19512 | (new_insn_reg): Likewise. Remove early_clobber parameter. | |
19513 | (collect_non_operand_hard_regs): Update call accordingly. | |
19514 | Don't assign to lra_insn_reg::early_clobber. | |
19515 | (add_regs_to_insn_regno_info): Remove early_clobber parameter | |
19516 | and update calls to new_insn_reg. | |
19517 | (lra_update_insn_regno_info): Update calls accordingly. | |
19518 | * lra-constraints.c (update_and_check_small_class_inputs): Take the | |
19519 | alternative number as a parameter and test whether the operand | |
19520 | is earlyclobbered in that particular alternative. | |
19521 | (process_alt_operands): Update call accordingly. Use per-alternative | |
19522 | checks for earyclobber here too. | |
19523 | * lra-lives.c (reg_early_clobber_p): Check early_clobber_alts | |
19524 | against zero for IRA_UNKNOWN_ALT. | |
19525 | ||
19526 | 2019-07-30 Uroš Bizjak <ubizjak@gmail.com> | |
19527 | ||
19528 | * config/alpha/alpha.c (alpha_option_override): Quote a C type. | |
19529 | ||
19530 | 2019-07-30 Wilco Dijkstra <wdijkstr@arm.com> | |
19531 | ||
19532 | * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset. | |
19533 | * config/arm/vfp.md (thumb2_movsi_vfp): Likewise. | |
19534 | ||
19535 | 2019-07-30 Martin Liska <mliska@suse.cz> | |
19536 | ||
19537 | PR ipa/89330 | |
19538 | * cgraph.c (cgraph_edge::make_direct): Use | |
19539 | edge->indirect_unknown_callee as edge->resolve_speculation can | |
19540 | deallocate edge which is this pointer. | |
19541 | ||
19542 | 2019-07-30 Richard Biener <rguenther@suse.de> | |
19543 | ||
19544 | PR tree-optimization/91257 | |
19545 | * bitmap.c (bitmap_ior_and_compl_into): Open-code. | |
19546 | ||
19547 | 2019-07-30 Martin Liska <mliska@suse.cz> | |
19548 | ||
19549 | * doc/invoke.texi: Document new behavior. | |
19550 | * lto-wrapper.c (cpuset_popcount): New function | |
19551 | is a copy of libgomp/config/linux/proc.c. | |
19552 | (init_num_threads): Likewise. | |
19553 | (run_gcc): Automatically detect core count for -flto. | |
19554 | (jobserver_active_p): New function. | |
19555 | ||
19556 | 2019-07-30 Richard Biener <rguenther@suse.de> | |
19557 | ||
19558 | PR tree-optimization/91257 | |
19559 | * bitmap.h (bitmap_ior_into_and_free): Declare. | |
19560 | * bitmap.c (bitmap_list_unlink_element): Add defaulted param | |
19561 | whether to add the unliked element to the freelist. | |
19562 | (bitmap_list_insert_element_after): Add defaulted param for | |
19563 | an already allocated element. | |
19564 | (bitmap_ior_into_and_free): New function. | |
19565 | * tree-ssa-structalias.c (condense_visit): Reduce the | |
19566 | ponts-to and edge bitmaps of the SCC members in a | |
19567 | logarithmic fashion rather than all to one. | |
19568 | ||
19569 | 2019-07-30 Richard Sandiford <richard.sandiford@arm.com> | |
19570 | ||
19571 | * tree-ssa-math-opts.c (convert_mult_to_fma): Add a mul_cond | |
19572 | parameter. When nonnull, make sure that the addition or subtraction | |
19573 | has the same condition. | |
19574 | (math_opts_dom_walker::after_dom_children): Try convert_mult_to_fma | |
19575 | for CFN_COND_MUL too. | |
19576 | ||
19577 | 2019-07-30 Richard Biener <rguenther@suse.de> | |
19578 | ||
19579 | PR tree-optimization/91291 | |
19580 | * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore | |
19581 | constant values. | |
19582 | ||
19583 | 2019-07-30 Jakub Jelinek <jakub@redhat.com> | |
19584 | ||
19585 | PR middle-end/91216 | |
19586 | * omp-low.c (global_nonaddressable_vars): New variable. | |
19587 | (use_pointer_for_field): For global decls, if they are non-addressable, | |
19588 | remember it in the global_nonaddressable_vars bitmap, if they are | |
19589 | addressable and in the global_nonaddressable_vars bitmap, ignore their | |
19590 | TREE_ADDRESSABLE bit. | |
19591 | (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of | |
19592 | vars in global_nonaddressable_vars bitmap. | |
19593 | (execute_lower_omp): Free global_nonaddressable_vars bitmap. | |
19594 | ||
19595 | PR target/91150 | |
19596 | * config/i386/i386-expand.c (expand_vec_perm_blend): Change mask type | |
19597 | from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast | |
19598 | comparison to unsigned HOST_WIDE_INT before shifting it left. | |
19599 | ||
19600 | 2019-07-30 Uroš Bizjak <ubizjak@gmail.com> | |
19601 | ||
19602 | * config/i386/i386.md (movstrict<mode>): Use register_operand | |
19603 | predicate for operand 0. Add expander condition. Assert that | |
19604 | operand 0 is a SUBREG RTX. | |
19605 | (*movstrict<mode>_1): Use register_operand predicate for operand 0. | |
19606 | Update operand constraints and insn condition. | |
19607 | (zero_extend<mode>si2_and): Do not call gen_movstrict<mode>. | |
19608 | (zero_extendqihi2_and): Do not call gen_movstrictqi. | |
19609 | (*setcc_qi_slp): Use register_operand predicate for operand 0. | |
19610 | Update operand 0 constraints. | |
19611 | (setcc_qi_slp splitters): Use register_operand predicate for operand 0. | |
19612 | ||
19613 | 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
19614 | ||
19615 | * config/msp430/msp430.h (DRIVER_SELF_SPECS): Define and emit errors | |
19616 | when -m{code,data}-region are used without -mlarge. | |
19617 | * config/msp430/msp430.c (msp430_option_override): Error when a | |
19618 | non-default code or data region is used without -mlarge. | |
19619 | (msp430_section_attr): Emit a warning and do not add upper/lower/either | |
19620 | attributes when they are used without -mlarge. | |
19621 | ||
19622 | 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
19623 | ||
19624 | PR target/70320 | |
19625 | * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES. | |
19626 | ||
19627 | 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> | |
19628 | ||
19629 | PR middle-end/91242 | |
19630 | * wide-int.h (generic_wide_int::sext_elt): New function. | |
19631 | * inchash.h (hash::add_wide_int): Use it instead of elt. | |
19632 | ||
19633 | 2019-07-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
19634 | ||
19635 | * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to | |
19636 | CODE_FOR_arm_##. | |
19637 | * config/arm/arm.md (<crc_variant>): Rename to... | |
19638 | (arm_<crc_variant>): ... This. | |
19639 | (<cdp>): Rename to... | |
19640 | (arm_<cdp>): ... This. | |
19641 | (<ldc>): Rename to... | |
19642 | (arm_<ldc>): ... This. | |
19643 | (<stc>): Rename to... | |
19644 | (arm_<stc>): ... This. | |
19645 | (<mcr>): Rename to... | |
19646 | (arm_<mcr>): ... This. | |
19647 | (<mrc>): Rename to... | |
19648 | (arm_<mrc>): ... This. | |
19649 | (<mcrr>): Rename to... | |
19650 | (arm_<mcrr>): ... This. | |
19651 | (<mrrc>): Rename to... | |
19652 | (arm_<mrrc>): ... This. | |
19653 | ||
19654 | 2019-07-29 Richard Biener <rguenther@suse.de> | |
19655 | ||
19656 | PR tree-optimization/91257 | |
19657 | * tree-ssa-sccvn.h (struct vn_avail): New. | |
19658 | (struct vn_ssa_aux): Add avail member. | |
19659 | * tree-ssa-sccvn.c (class rpo_elim): Remove m_rpo_avail | |
19660 | member, add m_avail_freelist one. | |
19661 | (rpo_elim::~rpo_elim): Remove. | |
19662 | (rpo_elim::eliminate_avail): Adjust to new avail tracking | |
19663 | data structure. | |
19664 | (rpo_elim::eliminate_push_avail): Likewise. | |
19665 | (do_unwind): Likewise. | |
19666 | (do_rpo_vn): Likewise. | |
19667 | ||
19668 | 2019-07-29 Richard Biener <rguenther@suse.de> | |
19669 | ||
19670 | PR tree-optimization/91257 | |
19671 | * tree-vrp.c (operand_less_p): Avoid dispatching to fold for | |
19672 | most cases, instead call compare_values which handles the | |
19673 | symbolic ranges we handle specially. | |
19674 | (compare_values_warnv): Do not call operand_less_p but open-code | |
19675 | the effective fold calls. Avoid converting so much. | |
19676 | ||
19677 | 2019-07-29 Martin Liska <mliska@suse.cz> | |
19678 | ||
19679 | * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not | |
19680 | remove LHS of operator new call. It's handled latter. | |
19681 | ||
19682 | 2019-07-29 Richard Biener <rguenther@suse.de> | |
19683 | ||
19684 | PR tree-optimization/91267 | |
19685 | * vr-values.c (vr_values::update_value_range): Add early return | |
19686 | for effectively VARYING lattice entry. | |
19687 | ||
19688 | 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> | |
19689 | ||
19690 | PR debug/86638 | |
19691 | * tree-ssa-dce.c (keep_all_vdefs_p): New function. | |
19692 | (mark_stmt_if_obviously_necessary): Mark all stmts with vdefs as | |
19693 | necessary if keep_all_vdefs_p is true. | |
19694 | (mark_aliased_reaching_defs_necessary): Add a gcc_checking_assert | |
19695 | that keep_all_vdefs_p is false. | |
19696 | (mark_all_reaching_defs_necessary): Likewise. | |
19697 | (propagate_necessity): Skip the vuse scan if keep_all_vdefs_p is true. | |
19698 | ||
19699 | 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> | |
19700 | ||
19701 | * common.opt (Og): Change the initial value of flag_dse to 0. | |
19702 | * opts.c (default_options_table): Move OPT_ftree_dse from | |
19703 | OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG. Also add | |
19704 | OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG. Put the OPT_ftree_pta | |
19705 | entry before the OPT_ftree_sra entry. | |
19706 | * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list | |
19707 | of flags disabled by Og. | |
19708 | ||
19709 | 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> | |
19710 | ||
19711 | * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only | |
19712 | variables for -Og. | |
19713 | ||
19714 | 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> | |
19715 | ||
19716 | * doc/sourcebuild.texi (check-function-bodies): Document. | |
19717 | ||
19718 | 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> | |
19719 | ||
19720 | * simplify-rtx.c (simplify_const_unary_operation): Fold a | |
19721 | VEC_DUPLICATE of a fixed-length vector even if the result | |
19722 | is variable-length. Likewise fold a duplicate of a | |
19723 | variable-length vector if the variable-length vector is | |
19724 | itself a duplicate of a fixed-length sequence. | |
19725 | (test_vector_ops_duplicate): Test more cases. | |
19726 | ||
19727 | 2019-07-29 Richard Sandiford <richard.sandiford@arm.com> | |
19728 | ||
19729 | * vector-builder.h (vector_builder): Add a shape template parameter. | |
19730 | (vector_builder::new_unary_operation): New function, generalizing | |
19731 | the old tree_vector_builder function. | |
19732 | (vector_builder::new_binary_operation): Likewise. | |
19733 | (vector_builder::binary_encoded_nelts): Likewise. | |
19734 | * int-vector-builder.h (int_vector_builder): Update template | |
19735 | parameters to vector_builder. | |
19736 | (int_vector_builder::shape_nelts): New function. | |
19737 | * rtx-vector-builder.h (rtx_vector_builder): Update template | |
19738 | parameters to vector_builder. | |
19739 | (rtx_vector_builder::shape_nelts): New function. | |
19740 | (rtx_vector_builder::nelts_of): Likewise. | |
19741 | (rtx_vector_builder::npatterns_of): Likewise. | |
19742 | (rtx_vector_builder::nelts_per_pattern_of): Likewise. | |
19743 | * tree-vector-builder.h (tree_vector_builder): Update template | |
19744 | parameters to vector_builder. | |
19745 | (tree_vector_builder::shape_nelts): New function. | |
19746 | (tree_vector_builder::nelts_of): Likewise. | |
19747 | (tree_vector_builder::npatterns_of): Likewise. | |
19748 | (tree_vector_builder::nelts_per_pattern_of): Likewise. | |
19749 | * tree-vector-builder.c (tree_vector_builder::new_unary_operation) | |
19750 | (tree_vector_builder::new_binary_operation): Delete. | |
19751 | (tree_vector_builder::binary_encoded_nelts): Likewise. | |
19752 | * simplify-rtx.c: Include rtx-vector-builder.h. | |
19753 | (distributes_over_addition_p): New function. | |
19754 | (simplify_const_unary_operation) | |
19755 | (simplify_const_binary_operation): Generalize handling of vector | |
19756 | constants to include variable-length vectors. | |
19757 | (test_vector_ops_series): Add more tests. | |
19758 | ||
19759 | 2019-07-28 Jan Hubicka <hubicka@ucw.cz> | |
19760 | ||
19761 | PR lto/91222 | |
19762 | * ipa-devirt.c (warn_types_mismatch): Compare indentifiers | |
19763 | than INDENTIFIER_POINTER. | |
19764 | ||
19765 | 2019-07-28 Martin Liska <mliska@suse.cz> | |
19766 | ||
19767 | PR ipa/89330 | |
19768 | * cgraph.c (symbol_table::create_edge): Always allocate | |
19769 | a cgraph_edge. | |
19770 | (symbol_table::free_edge): Store summary_id to | |
19771 | edge_released_summary_ids if != -1; | |
19772 | * cgraph.h (NEXT_FREE_NODE): Remove. | |
19773 | (SET_NEXT_FREE_NODE): Likewise. | |
19774 | (NEXT_FREE_EDGE): Likewise. | |
19775 | (symbol_table::release_symbol): Store summary_id to | |
19776 | cgraph_released_summary_ids if != -1; | |
19777 | (symbol_table::allocate_cgraph_symbol): Always allocate | |
19778 | a cgraph_node. | |
19779 | ||
19780 | 2019-07-28 Alan Modra <amodra@gmail.com> | |
19781 | ||
19782 | * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use | |
19783 | gen_sibcall. | |
19784 | ||
19785 | 2019-07-28 Alan Modra <amodra@gmail.com> | |
19786 | ||
19787 | PR target/91135 | |
19788 | * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't | |
19789 | define. | |
19790 | * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke | |
19791 | GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi. | |
19792 | (GNU_USER_TARGET_D_OS_VERSIONS): Don't define. | |
19793 | ||
19794 | 2019-07-28 Alan Modra <amodra@gmail.com> | |
19795 | ||
19796 | PR target/91050 | |
19797 | * config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64. | |
19798 | * config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define. | |
19799 | * config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define. | |
19800 | * config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise. | |
19801 | * config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise. | |
19802 | * config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use | |
19803 | in asm_default spec. | |
19804 | * config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine. | |
19805 | * config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine. | |
19806 | ||
19807 | 2019-07-28 Gerald Pfeifer <gerald@pfeifer.com> | |
19808 | ||
19809 | * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org. | |
19810 | ||
19811 | 2019-07-26 Tamar Christina <tamar.christina@arm.com> | |
19812 | ||
19813 | PR target/89517 | |
19814 | * config.gcc: Relax parsing of AARCH64_OPT_EXTENSION. | |
19815 | * config/aarch64/aarch64-option-extensions.def: Add new comments | |
19816 | and restore easier to read options. | |
19817 | ||
19818 | 2019-07-26 Tamar Christina <tamar.christina@arm.com> | |
19819 | ||
19820 | * convert.c (convert_to_real_1): Move part of conversion code... | |
19821 | * match.pd: ...To here. | |
19822 | ||
19823 | 2019-07-26 Martin Jambor <mjambor@suse.cz> | |
19824 | ||
19825 | PR ipa/89330 | |
19826 | * ipa-inline-transform.c (check_speculations_1): New function. | |
19827 | (push_all_edges_in_set_to_vec): Likewise. | |
19828 | (check_speculations): Use check_speculations_1, new parameter | |
19829 | new_edges. | |
19830 | (inline_call): Pass new_edges to check_speculations. | |
19831 | * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not | |
19832 | NULL. | |
19833 | (speculation_useful_p): Early return true if edge is inlined, remove | |
19834 | later checks for inline_failed. | |
19835 | ||
19836 | 2019-07-25 Vladimir Makarov <vmakarov@redhat.com> | |
19837 | ||
19838 | PR rtl-optimization/91223 | |
19839 | * lra-constraints.c (process_alt_operands): Fail for unsuccessful | |
19840 | matching with INOUT operand. | |
19841 | ||
19842 | 2019-07-25 Eric Botcazou <ebotcazou@adacore.com> | |
19843 | ||
19844 | * stmt.c (expand_case): Try to narrow the index type if it's larger | |
19845 | than a word. Tidy up. | |
19846 | ||
19847 | 2019-07-25 Eric Botcazou <ebotcazou@adacore.com> | |
19848 | ||
19849 | * cif-code.def (NEVER_CALL): New code. | |
19850 | * ipa-inline.c (want_inline_small_function_p): Fix formatting issues. | |
19851 | Set the failure to CIF_NEVER_CALL if the IPA count is zero. | |
19852 | ||
19853 | 2019-07-25 Wilco Dijkstra <wdijkstr@arm.com> | |
19854 | ||
19855 | * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg. | |
19856 | * config/arm/vfp.md (thumb2_movsi_vfp): Likewise. | |
19857 | ||
19858 | 2019-07-23 Jan Hubicka <hubicka@ucw.cz> | |
19859 | ||
19860 | * ipa-devirt.c (add_type_duplicate): Fix return value. | |
19861 | ||
19862 | 2019-07-25 Richard Biener <rguenther@suse.de> | |
19863 | ||
19864 | * tree-vrp.c (extract_range_from_multiplicative_op): Add | |
19865 | type parameter and use it instead of guessing expression | |
19866 | type from the first operand. | |
19867 | (extract_range_from_binary_expr): Pass expr_type down. | |
19868 | ||
19869 | 2019-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
19870 | ||
19871 | * config/arm/arm.md (SATrev): Change to code attribute. | |
19872 | (*satsi_<SAT:code>): Adjust for the above. | |
19873 | (*satsi_<SAT:code>_shift): Likewise. | |
19874 | ||
19875 | 2019-07-25 Richard Biener <rguenther@suse.de> | |
19876 | ||
19877 | * gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions): | |
19878 | Make value_range * temporary const. | |
19879 | * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range): | |
19880 | Likewise. | |
19881 | (evrp_range_analyzer::record_ranges_from_): Likewise. | |
19882 | (evrp_range_analyzer::pop_value_range): Return a const value_range *, | |
19883 | deal with having recorded a const one. | |
19884 | * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range): | |
19885 | Return a const value_range *. | |
19886 | (evrp_range_analyzer::pop_value_range): Likewise. | |
19887 | (evrp_range_analyzer::stack): Record const value_range *s. | |
19888 | * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): | |
19889 | Adjust. | |
19890 | * gimple-ssa-sprintf.c (get_int_range): Likewise. | |
19891 | (format_integer): Likewise. | |
19892 | (sprintf_dom_walker::handle_gimple_call): Likewise. | |
19893 | * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise. | |
19894 | * tree-vrp.c (vrp_prop::set_def_to_varying): Add. | |
19895 | (vrp_prop::get_value_range): Adjust. | |
19896 | (vrp_prop::vrp_initialize): Use set_def_to_varying instead of | |
19897 | modifying the lattice in-place. | |
19898 | (vrp_prop::visit_stmt): Likewise. | |
19899 | * vr-values.c (vr_values::get_lattice_entry): New private method. | |
19900 | (vr_values::get_value_range): Wrap it and return a const | |
19901 | value_range *. | |
19902 | (vr_values::set_def_to_varying): New. | |
19903 | (vr_values::set_defs_to_varying): Use it. | |
19904 | (vr_values::update_value_range): Likewise. | |
19905 | (vr_values::vrp_stmt_computes_nonzero): Adjust. | |
19906 | (values::op_with_constant_singleton_va): Likewise. | |
19907 | (vr_values::extract_range_for_var_from_co): Likewise. | |
19908 | (vr_values::extract_range_from_ssa_name): Likewise. | |
19909 | (vr_values::extract_range_from_cond_expr): Likewise. | |
19910 | (vr_values::extract_range_basic): Likewise. | |
19911 | (compare_ranges): Take const value_range *, adjust. | |
19912 | (compare_range_with_value): Likewise. | |
19913 | (vrp_valueize): Adjust. | |
19914 | (vrp_valueize_1): Likewise. | |
19915 | (vr_values::get_vr_for_comparison): Return a const value_range *. | |
19916 | (vr_values::compare_name_with_value): Adjust. | |
19917 | (vr_values::compare_names): Likewise. | |
19918 | (vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges): | |
19919 | Likewise. | |
19920 | (vr_values::vrp_evaluate_conditional): Likewise. | |
19921 | (find_case_label_ranges): Take a const value_range *. | |
19922 | (vr_values::vrp_visit_switch_stmt): Adjust. | |
19923 | (vr_values::extract_range_from_phi_node): Likewise. | |
19924 | (vr_values::simplify_div_or_mod_using_ran): Likewise. | |
19925 | (vr_values::simplify_abs_using_ranges): Likewise. | |
19926 | (test_for_singularity): Take a const value_range *. | |
19927 | (range_fits_type_p): Likewise. | |
19928 | (vr_values::simplify_cond_using_ranges_1): Adjust. | |
19929 | (vr_values::simplify_cond_using_ranges_2): Likewise. | |
19930 | (vr_values::simplify_switch_using_ranges): Likewise. | |
19931 | (vr_values::simplify_float_conversion_usi): Likewise. | |
19932 | (vr_values::two_valued_val_range_p): Likewise. | |
19933 | * vr-values.h (vr_values::get_value_range): Return a const | |
19934 | value_range *. | |
19935 | (vr_values::set_def_to_varying): New. | |
19936 | (vr_values::get_lattice_entry): New private method. | |
19937 | (vr_values::get_vr_for_comparison): Return a const value_range *. | |
19938 | ||
19939 | 2019-07-25 Martin Liska <mliska@suse.cz> | |
19940 | Dominik Infuhr <dominik.infuehr@theobroma-systems.com> | |
19941 | ||
19942 | PR c++/23383 | |
19943 | * common.opt: Add -fallocation-dce | |
19944 | * gimple.c (gimple_call_operator_delete_p): New. | |
19945 | * gimple.h (gimple_call_operator_delete_p): Likewise. | |
19946 | * tree-core.h (enum function_decl_type): Add OPERATOR_DELETE. | |
19947 | * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle | |
19948 | DECL_IS_OPERATOR_DELETE_P. | |
19949 | (mark_all_reaching_defs_necessary_1): Likewise. | |
19950 | (propagate_necessity): Likewise. | |
19951 | (eliminate_unnecessary_stmts): Handle | |
19952 | gimple_call_operator_delete_p. | |
19953 | * tree-streamer-in.c (unpack_ts_function_decl_value_fields): | |
19954 | Add packing of OPERATOR_DELETE. | |
19955 | * tree-streamer-out.c (pack_ts_function_decl_value_fields): | |
19956 | Similarly here. | |
19957 | * tree.h (DECL_IS_OPERATOR_DELETE_P): New. | |
19958 | (DECL_SET_IS_OPERATOR_DELETE): New. | |
19959 | (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise. | |
19960 | ||
19961 | 2019-07-25 Martin Liska <mliska@suse.cz> | |
19962 | ||
19963 | * calls.c (maybe_warn_alloc_args_overflow): Use new macros | |
19964 | (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P). | |
19965 | * coverage.c (coverage_begin_function): Likewise. | |
19966 | * fold-const.c (tree_expr_nonzero_warnv_p): Likewise. | |
19967 | * gimple.c (gimple_call_nonnull_result_p): Likewise. | |
19968 | * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise. | |
19969 | (sem_item::hash_referenced_symbol_properties): Likewise. | |
19970 | * lto-streamer-out.c (hash_tree): Likewise. | |
19971 | * predict.c (expr_expected_value_1): Likewise. | |
19972 | * tree-inline.c (expand_call_inline): Likewise. | |
19973 | * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise. | |
19974 | * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise. | |
19975 | * tree-core.h (enum function_decl_type): New enum. | |
19976 | (struct tree_function_decl): Remove operator_new_flag and lambda_function. | |
19977 | * tree.h (FUNCTION_DECL_DECL_TYPE): New. | |
19978 | (set_function_decl_type): Likewise. | |
19979 | (DECL_IS_OPERATOR_NEW_P): New. | |
19980 | (DECL_SET_IS_OPERATOR_NEW): Likewise. | |
19981 | (DECL_LAMBDA_FUNCTION): Likewise. | |
19982 | (DECL_LAMBDA_FUNCTION_P): Likewise. | |
19983 | (DECL_IS_OPERATOR_NEW): Remove. | |
19984 | (DECL_SET_LAMBDA_FUNCTION): Likewise. | |
19985 | ||
19986 | 2019-07-25 Xiong Hu Luo <luoxhu@linux.ibm.com> | |
19987 | ||
19988 | * ipa-profile.c (get_most_common_single_value): Use | |
19989 | get_nth_most_common_value. | |
19990 | * profile.c (sort_hist_value): New function. | |
19991 | (compute_value_histograms): Call sort_hist_value to sort the | |
19992 | values after loading from disk. | |
19993 | * value-prof.c (get_most_common_single_value): Rename to ... | |
19994 | get_nth_most_common_value. Add input params n, return | |
19995 | the n_th value and count. | |
19996 | (gimple_divmod_fixed_value_transform): Use | |
19997 | get_nth_most_common_value. | |
19998 | (gimple_ic_transform): Likewise. | |
19999 | (gimple_stringops_transform): Likewise. | |
20000 | * value-prof.h (get_most_common_single_value): Add input params | |
20001 | n, default to 0. | |
20002 | ||
20003 | 2019-07-25 Richard Biener <rguenther@suse.de> | |
20004 | ||
20005 | PR tree-optimization/91236 | |
20006 | * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix | |
20007 | size of CONSTRUCTOR write. Fix buffer size we pass to | |
20008 | native_encode_expr. | |
20009 | ||
20010 | 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
20011 | ||
20012 | * config.gcc (msp430*-*-*): Fix non-GNU style in r273774. | |
20013 | * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in | |
20014 | r273773. | |
20015 | ||
20016 | 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
20017 | ||
20018 | * config.gcc (msp430*-*-*): Enable initfini_array by default unless | |
20019 | explicitly disabled with --disable-initfini-array. | |
20020 | ||
20021 | 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
20022 | ||
20023 | * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in | |
20024 | if-exists. | |
20025 | ||
20026 | 2019-07-24 Martin Sebor <msebor@redhat.com> | |
20027 | ||
20028 | PR tree-optimization/91183 | |
20029 | PR tree-optimization/86688 | |
20030 | * builtins.c (compute_objsize): Handle MEM_REF. | |
20031 | * tree-ssa-strlen.c (class ssa_name_limit_t): New. | |
20032 | (get_min_string_length): Remove. | |
20033 | (count_nonzero_bytes): New function. | |
20034 | (handle_char_store): Rename... | |
20035 | (handle_store): to this. Handle multibyte stores via integer types. | |
20036 | (strlen_check_and_optimize_stmt): Adjust conditional and the called | |
20037 | function name. | |
20038 | ||
20039 | 2019-07-24 Martin Sebor <msebor@redhat.com> | |
20040 | ||
20041 | PR driver/80545 | |
20042 | * diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask. | |
20043 | (diagnostic_report_diagnostic): Same. | |
20044 | * diagnostic.h (diagnostic_context::option_enabled): Add an argument. | |
20045 | (diagnostic_context::lang_mask): New data member. | |
20046 | * ipa-pure-const.c (suggest_attribute): Use | |
20047 | lang_hooks.option_lang_mask (). | |
20048 | * opts-common.c (option_enabled): Handle new argument. | |
20049 | (get_option_state): Pass an additional argument. | |
20050 | * opts.c (print_filtered_help): Print supported languages for | |
20051 | unsupported options. Adjust printing of current state. | |
20052 | * opts.h (option_enabled): Add argument. | |
20053 | * toplev.c (print_switch_values): Use lang_mask. | |
20054 | (general_init): Set global_dc->lang_mask. | |
20055 | ||
20056 | 2019-07-24 Iain Sandoe <iain@sandoe.co.uk> | |
20057 | ||
20058 | PR bootstrap/87030 | |
20059 | * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749. | |
20060 | ||
20061 | 2019-07-24 Giuliano Belinassi <giuliano.belinassi@usp.br> | |
20062 | ||
20063 | * cgraphunit.c (symbol_table::compile): Start and stop | |
20064 | TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers. | |
20065 | * timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New. | |
20066 | ||
20067 | 2019-07-24 Oliver Browne <oliverbrowne62@gmail.com> | |
20068 | ||
20069 | * gimplify.c (flag_instrument_functions_exclude_p): Include | |
20070 | namespace/class information in the printable name. | |
20071 | * opts.c (add_comma_separated_to_vector): Add NUL terminator | |
20072 | to tokens entered into the vector. | |
20073 | ||
20074 | 2019-07-24 Eric Botcazou <ebotcazou@adacore.com> | |
20075 | ||
20076 | * tree-nested.c (build_simple_mem_ref_notrap): New function. | |
20077 | (get_static_chain): Call it instead of build_simple_mem_ref. | |
20078 | (get_frame_field): Likewise. | |
20079 | (get_nonlocal_debug_decl): Likewise. | |
20080 | (convert_nonlocal_reference_op): Likewise. | |
20081 | ||
20082 | 2019-07-24 Claudiu Zissulescu <claziss@synopsys.com> | |
20083 | ||
20084 | * config/arc/arc-protos.h (arc_output_function_epilogue): Delete | |
20085 | declaration. | |
20086 | (arc_compute_frame_size): Millicode is disabled when compiling | |
20087 | ISR. | |
20088 | (arc_return_address_register): Likewise. | |
20089 | (arc_compute_function_type): Likewise. | |
20090 | (arc_compute_frame_size): Likewise. | |
20091 | (secondary_reload_info): Likewise. | |
20092 | (arc_get_unalign): Likewise. | |
20093 | (arc_can_use_return_insn): Declare. | |
20094 | * config/arc/arc.c (AUX_LP_START): Define | |
20095 | (AUX_LP_END): Likewise. | |
20096 | (arc_frame_info): Update gmask member to 64-bit datum. | |
20097 | (GMASK_LEN): Update. | |
20098 | (arc_compute_function_type): Make it static, move it forward. | |
20099 | (arc_must_save_register): Update, consider the extra regs. | |
20100 | (arc_compute_millicode_save_restore_regs): Update to use the 64 | |
20101 | bit gmask. | |
20102 | (arc_compute_frame_size): Likewise. | |
20103 | (arc_enter_leave_p): Likewise. | |
20104 | (arc_save_callee_saves): Likewise. | |
20105 | (arc_restore_callee_saves): Likewise. | |
20106 | (arc_save_callee_enter): Likewise. | |
20107 | (arc_restore_callee_leave): Likewise. | |
20108 | (arc_save_callee_milli): Likewise. | |
20109 | (arc_restore_callee_milli): Likewise. | |
20110 | (arc_expand_prologue): Add new interrupt handling. | |
20111 | (arc_return_address_register): Make it static, move it forward. | |
20112 | (arc_expand_epilogue): Add new interrupt handling. | |
20113 | (arc_get_unalign): Delete. | |
20114 | (arc_epilogue_uses): Make sure we do not remove the extra | |
20115 | saved/restored registers when interrupt. | |
20116 | (arc_can_use_return_insn): New function. | |
20117 | (push_reg): Likewise. | |
20118 | (pop_reg): Likewise. | |
20119 | (arc_save_callee_saves): Add ZOL and FPX aux registers saving | |
20120 | procedures. | |
20121 | (arc_restore_callee_saves): Likewise, but restoring. | |
20122 | * config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define. | |
20123 | (R33_REG): Likewise. | |
20124 | (R34_REG): Likewise. | |
20125 | (R35_REG): Likewise. | |
20126 | (R36_REG): Likewise. | |
20127 | (R37_REG): Likewise. | |
20128 | (R38_REG): Likewise. | |
20129 | (R39_REG): Likewise. | |
20130 | (R45_REG): Likewise. | |
20131 | (R46_REG): Likewise. | |
20132 | (R47_REG): Likewise. | |
20133 | (R48_REG): Likewise. | |
20134 | (R49_REG): Likewise. | |
20135 | (R50_REG): Likewise. | |
20136 | (R51_REG): Likewise. | |
20137 | (R52_REG): Likewise. | |
20138 | (R53_REG): Likewise. | |
20139 | (R54_REG): Likewise. | |
20140 | (R55_REG): Likewise. | |
20141 | (R56_REG): Likewise. | |
20142 | (R58_REG): Likewise. | |
20143 | (type): Add rtie attribute. | |
20144 | (in_call_delay_slot): Use RETURN_ADDR_REGNUM. | |
20145 | (movsi_insn): Accept moves to lp_count. | |
20146 | (rtie): Update pattern. | |
20147 | (simple_return): Simplify it, don't use this pattern as a return | |
20148 | from an interrupt. | |
20149 | (arc600_rtie): New pattern. | |
20150 | (p_return_i): Clean up. | |
20151 | (return): Likewise. | |
20152 | * config/arc/builtins.def (rtie): Only available for non ARC6xx | |
20153 | family CPUs. | |
20154 | * config/arc/predicates.md (move_src_operand): Consider lp_count | |
20155 | as a register. | |
20156 | ||
20157 | 2019-07-24 Andreas Krebbel <krebbel@linux.ibm.com> | |
20158 | ||
20159 | * config/s390/predicates.md (addv_const_operand): New predicate. | |
20160 | * config/s390/s390-modes.def (CCO): New condition code mode. | |
20161 | * config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode. | |
20162 | (s390_branch_condition_mask): Likewise. | |
20163 | * config/s390/s390.md ("addv<mode>4", "subv<mode>4") | |
20164 | ("mulv<mode>4"): New expanders. | |
20165 | ("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const") | |
20166 | ("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New | |
20167 | pattern definitions. | |
20168 | ||
20169 | 2019-07-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
20170 | ||
20171 | PR middle-end/91166 | |
20172 | * match.pd (vec_perm_expr(v, v, mask) -> v): New pattern. | |
20173 | (define_predicates): Add entry for uniform_vector_p. | |
20174 | (vec_same_elem_p): New match pattern. | |
20175 | ||
20176 | 2019-07-24 Iain Sandoe <iain@sandoe.co.uk> | |
20177 | ||
20178 | PR bootstrap/87030 | |
20179 | * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here... | |
20180 | * config/i386/darwin32-biarch.h .. to here. | |
20181 | * config/i386/darwin64-biarch.h: Adjust comments. | |
20182 | * config/rs6000/darwin32-biarch.h: Likewise. | |
20183 | * config/rs6000/darwin64-biarch.h: Likewise. | |
20184 | * config.gcc: Missed commit from r273746 | |
20185 | (*-*-darwin*): Don't include CPU t-darwin here. | |
20186 | (i[34567]86-*-darwin*): Adjust to use biarch files. Produce | |
20187 | an error message if i686-darwin configuration is attempted for | |
20188 | Darwin >= 18. | |
20189 | ||
20190 | 2019-07-23 Iain Sandoe <iain@sandoe.co.uk> | |
20191 | ||
20192 | PR bootstrap/87030 | |
20193 | * config.gcc (*-*-darwin*): Don't include CPU t-darwin here. | |
20194 | (i[34567]86-*-darwin*): Adjust to use biarch files. Produce | |
20195 | an error message if i686-darwin configuration is attempted for | |
20196 | Darwin >= 18. | |
20197 | (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18. | |
20198 | (powerpc-*-darwin*): Use biarch files where needed. | |
20199 | (powerpc64-*-darwin*): Likewise. | |
20200 | * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file. | |
20201 | (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single | |
20202 | arch case. | |
20203 | * config/i386/darwin32-biarch.h: New. | |
20204 | * config/i386/darwin64.h: Rename. | |
20205 | * config/i386/darwin64-biarch.h: To this. | |
20206 | * config/i386/t-darwin: Rename. | |
20207 | * config/i386/t-darwin32-biarch: To this. | |
20208 | * config/i386/t-darwin64: Rename. | |
20209 | * config/i386/t-darwin64-biarch: To this. | |
20210 | * config/rs6000/darwin32-biarch.h: New. | |
20211 | * config/rs6000/darwin64.h: Rename. | |
20212 | * config/rs6000/darwin64-biarch.h: To this. | |
20213 | (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single | |
20214 | arch case. | |
20215 | * config/rs6000/t-darwin8: Rename. | |
20216 | * config/rs6000/t-darwin32-biarch: To this. | |
20217 | * config/rs6000/t-darwin64 Rename. | |
20218 | * config/rs6000/t-darwin64-biarch: To this. | |
20219 | ||
20220 | 2019-07-23 Martin Sebor <msebor@redhat.com> | |
20221 | ||
20222 | * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311. | |
20223 | ||
20224 | 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru> | |
20225 | ||
20226 | * gdbinit.in (reload-gdbhooks): New command with an attached doc string. | |
20227 | (rh): New alias for it. | |
20228 | ||
20229 | 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru> | |
20230 | ||
20231 | * gdbhooks.py: Pass replace=True to | |
20232 | gdb.printing.register_pretty_printer. | |
20233 | ||
20234 | 2019-07-23 Richard Biener <rguenther@suse.de> | |
20235 | ||
20236 | PR debug/91231 | |
20237 | * lto-streamer-in.c (input_function): Drop inline-entry markers | |
20238 | that ended up with an unknown location block. | |
20239 | ||
20240 | 2019-07-23 Richard Biener <rguenther@suse.de> | |
20241 | ||
20242 | PR tree-optimization/83518 | |
20243 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate | |
20244 | init from a constant even when partial defs are already recorded. | |
20245 | ||
20246 | 2019-07-23 Jan Hubicka <hubicka@ucw.cz> | |
20247 | ||
20248 | * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2. | |
20249 | * config/i386/znver1.md: Enable patterns for znver2 and add store | |
20250 | variants which use extra AGU unit. | |
20251 | ||
20252 | 2019-07-23 Jan Hubicka <hubicka@ucw.cz> | |
20253 | ||
20254 | * config/i386/i386-options.c (ix86_option_override_internal): Default | |
20255 | PARAM_AVOID_FMA_MAX_BITS to 256 for znver2. | |
20256 | * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set | |
20257 | for ZNVER2. | |
20258 | ||
20259 | 2019-07-23 Jan Hubicka <hubicka@ucw.cz> | |
20260 | ||
20261 | * config/i386/x86-tune-costs.h (znver2_memcpy): Update. | |
20262 | (znver2_costs): Update 256 bit SSE costs and multiplication. | |
20263 | ||
20264 | 2019-07-23 Jan Beulich <jbeulich@suse.com> | |
20265 | ||
20266 | * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>): | |
20267 | Require only AVX512F. | |
20268 | (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise. Add | |
20269 | alternative expanding to vpternlog. | |
20270 | ||
20271 | 2019-07-23 Martin Liska <mliska@suse.cz> | |
20272 | ||
20273 | * dwarf2out.c (gen_producer_string): Canonize -flto=N | |
20274 | to -flto in dwarf producer string. | |
20275 | ||
20276 | 2019-07-23 Richard Biener <rguenther@suse.de> | |
20277 | ||
20278 | * tree-cfg.c (label_for_bb): Remove global var. | |
20279 | (main_block_label): Take label_for_bb as argument. | |
20280 | (cleanup_dead_labels_eh): Likewise, adjust. | |
20281 | (cleanup_dead_labels): Adjust. | |
20282 | ||
20283 | 2019-07-22 Paul A. Clarke <pc@us.ibm.com> | |
20284 | ||
20285 | * doc/extend.texi (Basic PowerPC Built-in Functions Available on all | |
20286 | Configurations): Add documentation for __builtin_mtfsf. | |
20287 | ||
20288 | 2019-07-22 Ilia Diachkov <ilia.diachkov@optimitech.com> | |
20289 | ||
20290 | * config/riscv/riscv-opts.h (struct riscv_align_data): New. | |
20291 | * config/riscv/riscv.c (riscv_constant_alignment): Use | |
20292 | riscv_align_data_type. | |
20293 | * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New. | |
20294 | (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT. | |
20295 | (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT. | |
20296 | * config/riscv/riscv.opt (malign-data): New. | |
20297 | * doc/invoke.texi (RISC-V Options): Document -malign-data=. | |
20298 | ||
20299 | 2019-07-02 Giuliano Belinassi <giuliano.belinassi@usp.br> | |
20300 | ||
20301 | * cgraph.c (dump_graphviz): New function. | |
20302 | * cgraph.h (dump_graphviz): New function. | |
20303 | * symtab.c (dump_graphviz): New function. | |
20304 | ||
20305 | 2019-07-22 Sylvia Taylor <sylvia.taylor@arm.com> | |
20306 | ||
20307 | * config/aarch64/aarch64-simd.md | |
20308 | (*aarch64_simd_sra<mode>): New. | |
20309 | * config/aarch64/iterators.md | |
20310 | (SHIFTRT): New iterator. | |
20311 | (sra_op): New attribute. | |
20312 | ||
20313 | 2019-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
20314 | ||
20315 | * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save | |
20316 | callee-saved regs R4->R10 in an interrupt function that calls another | |
20317 | function. | |
20318 | ||
20319 | 2019-07-22 Paul A. Clarke <pc@us.ibm.com> | |
20320 | ||
20321 | * config/rs6000/smmintrin.h (_mm_blend_epi16): New. | |
20322 | (_mm_blendv_epi8): New. | |
20323 | ||
20324 | 2019-07-22 Richard Biener <rguenther@suse.de> | |
20325 | ||
20326 | PR tree-optimization/91221 | |
20327 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately | |
20328 | restrict partial-def handling of empty constructors and | |
20329 | memset to refs with known offset. | |
20330 | ||
20331 | 2019-07-22 Jan Beulich <jbeulich@suse.com> | |
20332 | ||
20333 | * config/i386/sse.md (ternlogsuffix): New. | |
20334 | (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when | |
20335 | AVX512F is in use. | |
20336 | (<mask_codefor>one_cmpl<mode>2<mask_name>): New. | |
20337 | ||
20338 | 2019-07-22 Martin Liska <mliska@suse.cz> | |
20339 | ||
20340 | * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update | |
20341 | comment. | |
20342 | * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol. | |
20343 | ||
20344 | 2019-07-22 Martin Liska <mliska@suse.cz> | |
20345 | ||
20346 | * lto-section-in.c (lto_get_section_data): | |
20347 | Use new function get_compression. | |
20348 | * lto-streamer-out.c (produce_lto_section): Use | |
20349 | set_compression to encode compression algorithm. | |
20350 | * lto-streamer.h (struct lto_section): Do not | |
20351 | use bitfields in the format. | |
20352 | ||
20353 | 2019-07-22 Martin Liska <mliska@suse.cz> | |
20354 | ||
20355 | PR driver/91172 | |
20356 | * opts-common.c (decode_cmdline_option): Decode | |
20357 | argument of -Werror and check it for a wrong language. | |
20358 | * opts-global.c (complain_wrong_lang): Remove such case. | |
20359 | ||
20360 | 2019-07-22 Claudiu Zissulescu <claziss@synopsys.com> | |
20361 | ||
20362 | * config/arc/arc.c (prepare_move_operands): Always use an | |
20363 | intermediate register when storing a TLS symbols. | |
20364 | ||
20365 | 2019-07-22 Stafford Horne <shorne@gmail.com> | |
20366 | ||
20367 | * config/or1k/or1k.c (or1k_expand_compare): Check for int before | |
20368 | force_reg. | |
20369 | ||
20370 | 2019-07-22 Stafford Horne <shorne@gmail.com> | |
20371 | ||
20372 | * config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float | |
20373 | and munordered-float validations. | |
20374 | * config/or1k/constraints.md (d): New register constraint. | |
20375 | * config/or1k/predicates.md (fp_comparison_operator): New. | |
20376 | * config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd' | |
20377 | operands. | |
20378 | (or1k_expand_compare): Normalize unordered comparisons. | |
20379 | * config/or1k/or1k.h (reg_class): Define DOUBLE_REGS. | |
20380 | (REG_CLASS_NAMES): Add "DOUBLE_REGS". | |
20381 | (REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS. | |
20382 | * config/or1k/or1k.md (type): Add fpu. | |
20383 | (fpu): New instruction reservation. | |
20384 | (F, f, fr, fi, FI, FOP, fop): New. | |
20385 | (<fop><F:mode>3): New ALU instruction definition. | |
20386 | (float<fi><F:mode>2): New conversion instruction definition. | |
20387 | (fix_trunc<F:mode><fi>2): New conversion instruction definition. | |
20388 | (fpcmpcc): New code iterator. | |
20389 | (*sf_fp_insn): New instruction definition. | |
20390 | (cstore<F:mode>4): New expand definition. | |
20391 | (cbranch<F:mode>4): New expand definition. | |
20392 | * config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float, | |
20393 | munordered-float): New options. | |
20394 | * doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and | |
20395 | munordered-float. | |
20396 | ||
20397 | 2019-07-22 Stafford Horne <shorne@gmail.com> | |
20398 | ||
20399 | * config.gcc (or1k*-*-*): Add mrori and mror to validation. | |
20400 | * doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all | |
20401 | documenation to be more clear. | |
20402 | * config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be | |
20403 | more clear. | |
20404 | * config/or1k/or1k.opt (mrori): New option. | |
20405 | (mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext, | |
20406 | msfimm, mshftimm): Rewrite documentation to be more clear. | |
20407 | * config/or1k/or1k.md (insn_support): Add ror and rori. | |
20408 | (enabled): Add conditions for ror and rori. | |
20409 | (rotrsi3): Replace condition for shftimm with ror and rori. | |
20410 | ||
20411 | 2019-07-22 Stafford Horne <shorne@gmail.com> | |
20412 | ||
20413 | PR target/90363 | |
20414 | * config/or1k/or1k.md (zero_extend<mode>si2): Update predicate. | |
20415 | (extend<mode>si2): Update predicate. | |
20416 | * config/or1k/predicates.md (volatile_mem_operand): New. | |
20417 | (reg_or_mem_operand): New. | |
20418 | ||
20419 | 2019-07-21 Iain Sandoe <iain@sandoe.co.uk> | |
20420 | ||
20421 | * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here... | |
20422 | * config/rs6000/rs6000-call.c: ... to here. | |
20423 | ||
20424 | 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org> | |
20425 | ||
20426 | * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile | |
20427 | memory. | |
20428 | ||
20429 | 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org> | |
20430 | ||
20431 | * config/rs6000/predicates.md (input_operand): Allow volatile memory. | |
20432 | ||
20433 | 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org> | |
20434 | ||
20435 | * config/rs6000/predicates.md (lwa_operand): Allow volatile memory. | |
20436 | ||
20437 | 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org> | |
20438 | ||
20439 | * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax. | |
20440 | (any_memory_operand): New predicate. | |
20441 | (reg_or_mem_operand): Use it. | |
20442 | ||
20443 | 2019-07-20 Jakub Jelinek <jakub@redhat.com> | |
20444 | ||
20445 | PR target/91204 | |
20446 | * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1. | |
20447 | ||
20448 | 2019-07-20 John David Anglin <danglin@gcc.gnu.org> | |
20449 | ||
20450 | * config/pa/pa.h (hppa_profile_hook): Delete declaration. | |
20451 | * config/pa/pa-protos.h (hppa_profile_hook): Add declaration. | |
20452 | ||
20453 | 2019-07-20 Jakub Jelinek <jakub@redhat.com> | |
20454 | ||
20455 | * tree.def (OMP_LOOP): New tree code. | |
20456 | * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND. | |
20457 | (enum omp_clause_bind_kind): New enum. | |
20458 | (struct tree_omp_clause): Add subcode.bind_kind. | |
20459 | * tree.h (OMP_LOOP_CHECK): Rename to ... | |
20460 | (OMP_LOOPING_CHECK): ... this. | |
20461 | (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND, | |
20462 | OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use | |
20463 | OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK. | |
20464 | (OMP_CLAUSE_BIND_KIND): Define. | |
20465 | * tree.c (omp_clause_num_ops, omp_clause_code_name): Add | |
20466 | bind clause entries. | |
20467 | (walk_tree_1): Handle OMP_CLAUSE_BIND. | |
20468 | * tree-pretty-print.c (dump_omp_clause): Likewise. | |
20469 | (dump_generic_node): Handle OMP_LOOP. | |
20470 | * gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET. | |
20471 | (in_omp_construct): New variable. | |
20472 | (is_gimple_stmt): Handle OMP_LOOP. | |
20473 | (gimplify_scan_omp_clauses): For lastprivate don't set | |
20474 | check_non_private if code == OMP_LOOP. For reduction clause | |
20475 | on OMP_LOOP combined with parallel or teams propagate as shared | |
20476 | on the combined construct. Handle OMP_CLAUSE_BIND. | |
20477 | (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND. | |
20478 | (gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE} | |
20479 | for constructs from a loop construct to gimplify_scan_omp_clauses. | |
20480 | Don't predetermine iterator linear on OMP_SIMD from loop construct. | |
20481 | (replace_reduction_placeholders, gimplify_omp_loop): New functions. | |
20482 | (gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying | |
20483 | to match the implicit ORT_TARGET construct around whole body. | |
20484 | Temporarily clear in_omp_construct when processing body. | |
20485 | (gimplify_expr): Handle OMP_LOOP. For OMP_MASTER, OMP_TASKGROUP | |
20486 | etc. temporarily set in_omp_construct when processing body. | |
20487 | (gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET. | |
20488 | * omp-low.c (struct omp_context): Add loop_p. | |
20489 | (build_outer_var_ref): Treat ctx->loop_p similarly to simd construct | |
20490 | in that the original var might be private. | |
20491 | (scan_sharing_clauses): Handle OMP_CLAUSE_BIND. | |
20492 | (check_omp_nesting_restrictions): Adjust nesting restrictions for | |
20493 | addition of loop construct. | |
20494 | (scan_omp_1_stmt): Allow setjmp inside of loop construct. | |
20495 | ||
20496 | * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for | |
20497 | lastprivate non-addressable iterator of a collapse(1) simd. | |
20498 | ||
20499 | 2019-07-17 Bill Seurer <seurer@linux.vnet.ibm.com> | |
20500 | ||
20501 | * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value | |
20502 | as in rs6000.c. | |
20503 | ||
20504 | 2019-07-19 Iain Sandoe <iain@sandoe.co.uk> | |
20505 | ||
20506 | * config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which | |
20507 | refer to default conditions. Warn for the 'y' spec which is ignored | |
20508 | by current linkers. | |
20509 | ||
20510 | 2019-07-19 Bill Seurer <seurer@linux.vnet.ibm.com> | |
20511 | ||
20512 | * config/rs6000/rs6000.c (builtin_description, cpu_is_info, | |
20513 | cpu_supports_info, builtin_hash_struct, builtin_hasher, | |
20514 | builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info, | |
20515 | rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate, | |
20516 | rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest, | |
20517 | init_cumulative_args, rs6000_promote_function_mode, | |
20518 | rs6000_must_pass_in_stack, is_complex_IBM_long_double, | |
20519 | abi_v4_pass_in_fpr, rs6000_function_arg_padding, | |
20520 | rs6000_function_arg_boundary, rs6000_parm_offset, | |
20521 | rs6000_parm_start, rs6000_arg_size, | |
20522 | rs6000_darwin64_record_arg_advance_flush, | |
20523 | rs6000_darwin64_record_arg_advance_recurse, | |
20524 | rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1, | |
20525 | rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush, | |
20526 | rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg, | |
20527 | rs6000_mixed_function_arg, rs6000_psave_function_arg, | |
20528 | rs6000_finish_function_arg, rs6000_function_arg, | |
20529 | rs6000_arg_partial_bytes, rs6000_pass_by_reference, | |
20530 | rs6000_parm_needs_stack, rs6000_function_parms_need_stack, | |
20531 | rs6000_reg_parm_stack_space, rs6000_move_block_from_reg, | |
20532 | setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start, | |
20533 | rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst, | |
20534 | bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg, | |
20535 | bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name, | |
20536 | rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin, | |
20537 | rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin, | |
20538 | rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin, | |
20539 | altivec_expand_abs_builtin, rs6000_expand_binop_builtin, | |
20540 | altivec_expand_predicate_builtin, swap_endian_selector_for_mode, | |
20541 | altivec_expand_lv_builtin, altivec_expand_stxvl_builtin, | |
20542 | altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode, | |
20543 | htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin, | |
20544 | altivec_expand_dst_builtin, altivec_expand_vec_init_builtin, | |
20545 | get_element_number, altivec_expand_vec_set_builtin, | |
20546 | altivec_expand_vec_ext_builtin, altivec_expand_builtin, | |
20547 | rs6000_builtin_is_supported_p, rs6000_invalid_builtin, | |
20548 | rs6000_fold_builtin, rs6000_builtin_valid_without_lhs, | |
20549 | fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper, | |
20550 | fold_mergeeo_helper, rs6000_gimple_fold_builtin, | |
20551 | rs6000_expand_builtin, rs6000_vector_type, | |
20552 | rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins, | |
20553 | htm_init_builtins, builtin_function_type, rs6000_common_init_builtins, | |
20554 | rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move | |
20555 | to rs6000-call.c. | |
20556 | * config/rs6000/rs6000-call.c (builtin_description, cpu_is_info, | |
20557 | cpu_supports_info, builtin_hash_struct, builtin_hasher, | |
20558 | builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info, | |
20559 | rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate, | |
20560 | rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest, | |
20561 | init_cumulative_args, rs6000_promote_function_mode, | |
20562 | rs6000_must_pass_in_stack, is_complex_IBM_long_double, | |
20563 | abi_v4_pass_in_fpr, rs6000_function_arg_padding, | |
20564 | rs6000_function_arg_boundary, rs6000_parm_offset, | |
20565 | rs6000_parm_start, rs6000_arg_size, | |
20566 | rs6000_darwin64_record_arg_advance_flush, | |
20567 | rs6000_darwin64_record_arg_advance_recurse, | |
20568 | rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1, | |
20569 | rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush, | |
20570 | rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg, | |
20571 | rs6000_mixed_function_arg, rs6000_psave_function_arg, | |
20572 | rs6000_finish_function_arg, rs6000_function_arg, | |
20573 | rs6000_arg_partial_bytes, rs6000_pass_by_reference, | |
20574 | rs6000_parm_needs_stack, rs6000_function_parms_need_stack, | |
20575 | rs6000_reg_parm_stack_space, rs6000_move_block_from_reg, | |
20576 | setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start, | |
20577 | rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst, | |
20578 | bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg, | |
20579 | bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name, | |
20580 | rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin, | |
20581 | rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin, | |
20582 | rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin, | |
20583 | altivec_expand_abs_builtin, rs6000_expand_binop_builtin, | |
20584 | altivec_expand_predicate_builtin, swap_endian_selector_for_mode, | |
20585 | altivec_expand_lv_builtin, altivec_expand_stxvl_builtin, | |
20586 | altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode, | |
20587 | htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin, | |
20588 | altivec_expand_dst_builtin, altivec_expand_vec_init_builtin, | |
20589 | get_element_number, altivec_expand_vec_set_builtin, | |
20590 | altivec_expand_vec_ext_builtin, altivec_expand_builtin, | |
20591 | rs6000_builtin_is_supported_p, rs6000_invalid_builtin, | |
20592 | rs6000_fold_builtin, rs6000_builtin_valid_without_lhs, | |
20593 | fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper, | |
20594 | fold_mergeeo_helper, rs6000_gimple_fold_builtin, | |
20595 | rs6000_expand_builtin, rs6000_vector_type, | |
20596 | rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins, | |
20597 | htm_init_builtins, builtin_function_type, rs6000_common_init_builtins, | |
20598 | rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move | |
20599 | to here from rs6000.c. | |
20600 | * config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p, | |
20601 | rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk, | |
20602 | rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin, | |
20603 | rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start, | |
20604 | rs6000_gimplify_va_arg, rs6000_promote_function_mode, | |
20605 | rs6000_return_in_memory, rs6000_return_in_msb, | |
20606 | rs6000_pass_by_reference, setup_incoming_varargs, | |
20607 | rs6000_function_arg_boundary, rs6000_must_pass_in_stack, | |
20608 | rs6000_arg_partial_bytes, rs6000_function_arg_advance, | |
20609 | rs6000_function_arg_padding, rs6000_function_arg, | |
20610 | rs6000_darwin64_record_arg, rs6000_internal_arg_pointer, | |
20611 | rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin, | |
20612 | rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float, | |
20613 | rs6000_passes_long_double, rs6000_passes_vector, | |
20614 | rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type, | |
20615 | altivec_builtin_mask_for_load) Add declarations. | |
20616 | * config/rs6000/t-rs6000: Add new source file rs6000-call.c. | |
20617 | * config/config.gcc: Add new source file rs6000-call.c to garbage | |
20618 | collector and extra_objs. | |
20619 | ||
20620 | 2019-07-19 Jeff Law <law@redhat.com> | |
20621 | ||
20622 | PR tree-optimization/86061 | |
20623 | * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle | |
20624 | strncpy. Drop some trivial dead code. | |
20625 | (maybe_trim_memstar_call): Handle strncpy. | |
20626 | ||
20627 | 2019-07-19 Richard Biener <rguenther@suse.de> | |
20628 | ||
20629 | PR tree-optimization/91211 | |
20630 | * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix | |
20631 | memset encoding size. | |
20632 | ||
20633 | 2019-07-19 Uroš Bizjak <ubizjak@gmail.com> | |
20634 | ||
20635 | PR target/91204 | |
20636 | * config/i386/mmx.md (one_cmpl<mode>2): New expander. | |
20637 | ||
20638 | 2019-07-19 Jan Hubicka <hubicka@ucw.cz> | |
20639 | ||
20640 | PR ipa/91194 | |
20641 | * ipa-inline.c (recursive_inlining): Fix limits check. | |
20642 | ||
20643 | 2019-07-19 Richard Biener <rguenther@suse.de> | |
20644 | ||
20645 | PR tree-optimization/91200 | |
20646 | * tree-ssa-phiopt.c (cond_store_replacement): Check we have | |
20647 | no PHI nodes in middle-bb. | |
20648 | ||
20649 | 2019-07-19 Richard Sandiford <richard.sandiford@arm.com> | |
20650 | ||
20651 | * doc/invoke.texi: Rename the AArch64 +bitperm extension flag | |
20652 | to +sve-bitperm. | |
20653 | * config/aarch64/aarch64-option-extensions.def: Likewise. | |
20654 | ||
20655 | 2019-07-19 Jakub Jelinek <jakub@redhat.com> | |
20656 | ||
20657 | PR middle-end/91190 | |
20658 | * function.c (insert_temp_slot_address): Store into the hash table | |
20659 | a copy of address to avoid RTL sharing issues. | |
20660 | ||
20661 | 2019-07-19 Richard Biener <rguenther@suse.de> | |
20662 | ||
20663 | PR tree-optimization/91207 | |
20664 | Revert | |
20665 | 2019-07-17 Richard Biener <rguenther@suse.de> | |
20666 | ||
20667 | PR tree-optimization/91178 | |
20668 | * tree-vect-stmts.c (get_group_load_store_type): For SLP | |
20669 | loads with a gap larger than the vector size always use | |
20670 | VMAT_STRIDED_SLP. | |
20671 | (vectorizable_load): For VMAT_STRIDED_SLP with a permutation | |
20672 | avoid loading vectors that are only contained in the gap | |
20673 | and thus are not needed. | |
20674 | ||
20675 | 2019-07-18 Uroš Bizjak <ubizjak@gmail.com> | |
20676 | ||
20677 | * config/i386/i386.md (*addqi_2_slp): Remove. | |
20678 | (*<code>qi_2_slp): Ditto. | |
20679 | ||
20680 | 2019-07-18 Michael Meissner <meissner@linux.ibm.com> | |
20681 | ||
20682 | * config/rs6000/predicates.md (prefixed_mem_operand): Call | |
20683 | rs6000_prefixed_address_mode_p instead of rs6000_prefixed_address. | |
20684 | * config/rs6000/rs6000-protos.h (rs6000_prefixed_address_mode_p): | |
20685 | Rename function from rs6000_prefixed_address. | |
20686 | * config/rs6000/aix.h (TARGET_HAS_TOC): Rename TARGET_TOC to | |
20687 | TARGET_HAS_TOC. | |
20688 | (TARGET_TOC): Likewise. | |
20689 | (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in | |
20690 | rs6000.h. | |
20691 | * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to | |
20692 | TARGET_HAS_TOC. | |
20693 | (TARGET_TOC): Likewise. | |
20694 | (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in | |
20695 | rs6000.h. | |
20696 | * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to | |
20697 | TARGET_HAS_TOC. | |
20698 | (TARGET_TOC): Likewise. | |
20699 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Add | |
20700 | check to require -mcmodel=medium for pc-relative addressing. | |
20701 | (create_TOC_reference): Add assertion for TARGET_TOC. | |
20702 | (rs6000_legitimize_address): Use TARGET_NO_TOC_OR_PCREL instead of | |
20703 | TARGET_NO_TOC. | |
20704 | (rs6000_emit_move): Likewise. | |
20705 | (TOC_alias_set): Rename TOC alias set static variable from 'set' | |
20706 | to 'TOC_alias_set'. | |
20707 | (get_TOC_alias_set): Likewise. | |
20708 | (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of | |
20709 | TARGET_NO_TOC. | |
20710 | (rs6000_can_eliminate): Likewise. | |
20711 | (rs6000_prefixed_address_mode_p): Rename function from | |
20712 | rs6000_prefixed_address. | |
20713 | * config/rs6000/rs6000.h (TARGET_TOC): Define in terms of | |
20714 | TARGET_HAS_TOC and not pc-relative. | |
20715 | (TARGET_NO_TOC_OR_PCREL): New macro to replace TARGET_NO_TOC. | |
20716 | * config/rs6000/sysv4.h (TARGET_HAS_TOC): Rename TARGET_TOC to | |
20717 | TARGET_HAS_TOC. | |
20718 | (TARGET_TOC): Likewise. | |
20719 | (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in | |
20720 | rs6000.h. | |
20721 | ||
20722 | 2019-07-18 Uroš Bizjak <ubizjak@gmail.com> | |
20723 | ||
20724 | PR target/91188 | |
20725 | * config/i386/i386.md (*addqi_1_slp): Use register_operand predicate | |
20726 | for operand 0. Do not use (match_dup) to match operand 1 with | |
20727 | operand 0. Add check in insn constraint that either input operand | |
20728 | matches operand 0. Use SWI12 mode iterator to also handle | |
20729 | HImode operands. | |
20730 | (*and<mode>_1_slp): Ditto. | |
20731 | (*<code>qi_1_slp): Ditto. | |
20732 | (*sub<mode>_1_slp): Use register_operand predicate for operand 0. | |
20733 | Do not use (match_dup) to match operand 1 with operand 0. Add | |
20734 | check in insn constraint that operand 1 matches operand 0. | |
20735 | Use SWI12 mode iterator to also handle HImode operands. | |
20736 | (*ashl<mode>3_1_slp): Ditto. | |
20737 | (*<shift_insn><mode>3_1_slp): Ditto. | |
20738 | (*<rotate_insn><mode>3_1_slp): Ditto. | |
20739 | ||
20740 | 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com> | |
20741 | ||
20742 | * config/arm/arm-builtins.c | |
20743 | (arm_expand_ternop_builtin): Remove explicit sha1 builtin handling. | |
20744 | (arm_expand_unop_builtin): Likewise. | |
20745 | * config/arm/crypto.md | |
20746 | (crypto_sha1h): Convert from define_insn to define_expand. | |
20747 | (crypto_<crypto_pattern>): Likewise. | |
20748 | (crypto_sha1h_lb): New define_insn. | |
20749 | (crypto_<crypto_pattern>_lb): Likewise. | |
20750 | ||
20751 | 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com> | |
20752 | ||
20753 | PR target/90317 | |
20754 | * config/arm/arm_neon.h (vsha1h_u32): Refactor. | |
20755 | (vsha1cq_u32): Likewise. | |
20756 | (vsha1pq_u32): Likewise. | |
20757 | (vsha1mq_u32): Likewise. | |
20758 | * config/arm/crypto.md (crypto_sha1h): Remove zero extend, correct | |
20759 | vec select. | |
20760 | (crypto_sha1c): Correct vec select. | |
20761 | (crypto_sha1m): Likewise. | |
20762 | (crypto_sha1p): Likewise. | |
20763 | ||
20764 | 2019-07-18 Richard Earnshaw <rearnsha@arm.com> | |
20765 | ||
20766 | * config/arm/predicates.md (arm_borrow_operation): New predicate. | |
20767 | * config/arm/arm.c (subdi3_compare1): Use CCmode for the split. | |
20768 | (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise. | |
20769 | (subdi_zesidi_zesidi): Likewise. | |
20770 | (negdi2_compare, negdi2_insn): Likewise. | |
20771 | (negdi_extensidi): Likewise. | |
20772 | (negdi_zero_extendsidi): Likewise. | |
20773 | (arm_cmpdi_insn): Likewise. | |
20774 | (subsi3_carryin): Use arm_borrow_operation. | |
20775 | (subsi3_carryin_const): Likewise. | |
20776 | (subsi3_carryin_const0): Likewise. | |
20777 | (subsi3_carryin_compare): Likewise. | |
20778 | (subsi3_carryin_compare_const): Likewise. | |
20779 | (subsi3_carryin_compare_const0): Likewise. | |
20780 | (subsi3_carryin_shift): Likewise. | |
20781 | (rsbsi3_carryin_shift): Likewise. | |
20782 | (negsi2_carryin_compare): Likewise. | |
20783 | ||
20784 | 2019-07-18 Bin Cheng <bin.cheng@linux.alibaba.com> | |
20785 | ||
20786 | PR tree-optimization/91137 | |
20787 | * tree-ssa-loop-ivopts.c (struct ivopts_data): New field. | |
20788 | (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize): | |
20789 | Init, use and fini the above new field. | |
20790 | (determine_base_object_1): New function. | |
20791 | (determine_base_object): Reimplement using walk_tree. | |
20792 | ||
20793 | 2019-07-18 Richard Sandiford <richard.sandiford@arm.com> | |
20794 | ||
20795 | * basic-block.h (CLEANUP_FORCE_FAST_DCE): New macro. | |
20796 | * cfgcleanup.c (cleanup_cfg): Call run_fast_dce if | |
20797 | CLEANUP_FORCE_FAST_DCE is set. | |
20798 | * ifcvt.c (rest_of_handle_if_conversion): Pass | |
20799 | CLEANUP_FORCE_FAST_DCE to the final cleanup_cfg call if | |
20800 | if-conversion succeeded. | |
20801 | ||
20802 | 2019-07-18 Richard Biener <rguenther@suse.de> | |
20803 | ||
20804 | * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor | |
20805 | branches to make code less indented. | |
20806 | ||
20807 | 2019-07-17 Alexandre Oliva <oliva@adacore.com> | |
20808 | ||
20809 | PR middle-end/81824 | |
20810 | * attribs.c (decls_mismatched_attributes): Simplify the logic | |
20811 | that avoids duplicates and false positives. | |
20812 | ||
20813 | 2019-07-17 John David Anglin <danglin@gcc.gnu.org> | |
20814 | ||
20815 | * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant | |
20816 | data into data section when generating PIC code. | |
20817 | (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs. | |
20818 | (pa_reloc_rw_mask): Return 3 when generating PIC code and when | |
20819 | generating code for SOM targets earlier than HP-UX 11. Otherwise, | |
20820 | return 2 for SOM and 0 for other targets. | |
20821 | ||
20822 | 2019-07-17 Jeff Law <law@redhat.com> | |
20823 | ||
20824 | * tree-ssa-dse.c (initialize_ao_ref_for_dse): Fix formatting. | |
20825 | (dse_walker::dse_optimize_stmt): Likewise. Add missing return to | |
20826 | avoid unexpected switch statement fallthru. | |
20827 | ||
20828 | 2019-07-17 Uroš Bizjak <ubizjak@gmail.com> | |
20829 | ||
20830 | * config/i386/i386.md (*add<dwi>3_doubleword): | |
20831 | Remove redundant constraints. | |
20832 | (*add<mode>_1): Ditto. | |
20833 | (*addhi_1): Ditto. | |
20834 | (*addqi_1): Ditto. | |
20835 | (*addqi_1_slp): Ditto. | |
20836 | (*add<mode>_2): Ditto. | |
20837 | (*addv<mode>4): Ditto. | |
20838 | (*sub<dwi>3_doubleword): Ditto. | |
20839 | (*sub<mode>_1): Ditto. | |
20840 | (*subqi_1_slp): Ditto. | |
20841 | (*sub<mode>_2): Ditto. | |
20842 | (*subv<mode>4): Ditto. | |
20843 | (*sub<mode>_3): Ditto. | |
20844 | (@add<mode>3_carry): Ditto. | |
20845 | (@sub<mode>3_carry): Ditto. | |
20846 | (*add<mode>3_cc_overflow_1): Ditto. | |
20847 | (*add<mode>3_zext_cc_overflow_2): Ditto. | |
20848 | (*anddi_1): Ditto. | |
20849 | (*and<mode>_1): Ditto. | |
20850 | (*andqi_1): Ditto. | |
20851 | (*andqi_1_slp): Ditto. | |
20852 | (*anddi_2): Ditto. | |
20853 | (*andqi_2_maybe_si): Ditto. | |
20854 | (*and<mode>_2): Ditto. | |
20855 | (*andqi_2_slp): Ditto. | |
20856 | (*<code><mode>_1): Ditto. | |
20857 | (*<code>qi_1): Ditto. | |
20858 | (*<code>qi_1_slp): Ditto. | |
20859 | (*<code><mode>_2): Ditto. | |
20860 | (*<code>qi_2_slp): Ditto. | |
20861 | ||
20862 | 2019-07-17 Jan Hubicka <hubicka@ucw.cz> | |
20863 | ||
20864 | * alias.c (record_component_aliases): Do not simplify pointed-to | |
20865 | types of ODR types. | |
20866 | ||
20867 | 2019-07-17 Uroš Bizjak <ubizjak@gmail.com> | |
20868 | ||
20869 | * config/i386/i386.md (*andqi_2_maybe_si): Handle potential | |
20870 | partial reg stall on alternative 2. | |
20871 | ||
20872 | 2019-07-17 Richard Biener <rguenther@suse.de> | |
20873 | ||
20874 | PR tree-optimization/91178 | |
20875 | * tree-ssa.c (release_defs_bitset): Iterate from higher to | |
20876 | lower SSA names to avoid quadratic behavior in the common case. | |
20877 | * tree-data-ref.c (split_constant_offset): Add limit argument | |
20878 | and pass it down. Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT. | |
20879 | (split_constant_offset_1): Add limit argument and use it to | |
20880 | limit SSA def walking. Optimize the common plus/minus case. | |
20881 | ||
20882 | 2019-07-17 Richard Biener <rguenther@suse.de> | |
20883 | ||
20884 | PR tree-optimization/91178 | |
20885 | * tree-vect-stmts.c (get_group_load_store_type): For SLP | |
20886 | loads with a gap larger than the vector size always use | |
20887 | VMAT_STRIDED_SLP. | |
20888 | (vectorizable_load): For VMAT_STRIDED_SLP with a permutation | |
20889 | avoid loading vectors that are only contained in the gap | |
20890 | and thus are not needed. | |
20891 | ||
20892 | 2019-07-17 Richard Biener <rguenther@suse.de> | |
20893 | ||
20894 | PR tree-optimization/91180 | |
20895 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset | |
20896 | computation for memset partial defs. | |
20897 | ||
20898 | 2019-07-17 Jakub Jelinek <jakub@redhat.com> | |
20899 | ||
20900 | * gimple.h (enum gf_mask): Remove GF_OMP_FOR_SIMD, change | |
20901 | GF_OMP_FOR_KIND_SIMD to a value serially after other kinds, | |
20902 | divide GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_COMBINED, | |
20903 | GF_OMP_FOR_COMBINED_INTO, GF_OMP_FOR_GRID_PHONY, | |
20904 | GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER by two. | |
20905 | * omp-grid.c (grid_process_grid_body, | |
20906 | grid_eliminate_combined_simd_part): Use GF_OMP_FOR_KIND_SIMD instead | |
20907 | of GF_OMP_FOR_SIMD, don't test & GF_OMP_FOR_SIMD but | |
20908 | == GF_OMP_FOR_KIND_SIMD. | |
20909 | * omp-low.c (build_outer_var_ref, scan_sharing_clauses, | |
20910 | check_omp_nesting_restrictions, scan_omp_1_stmt, | |
20911 | lower_rec_input_clauses, lower_lastprivate_conditional_clauses, | |
20912 | lower_lastprivate_clauses, lower_reduction_clauses, lower_omp_scan, | |
20913 | omp_find_scan): Likewise. | |
20914 | * omp-expand.c (expand_omp_for): Likewise. | |
20915 | * omp-general.c (omp_extract_for_data): Likewise. | |
20916 | ||
20917 | PR tree-optimization/91157 | |
20918 | * tree-vect-generic.c (expand_vector_comparison): Handle lhs being | |
20919 | a vector boolean with scalar mode. | |
20920 | (expand_vector_condition): Handle first operand being a vector boolean | |
20921 | with scalar mode. | |
20922 | (expand_vector_operations_1): For comparisons, don't bail out early | |
20923 | if the return type is vector boolean with scalar mode, but comparison | |
20924 | operand type is not. | |
20925 | ||
20926 | 2019-07-17 Richard Biener <rguenther@suse.de> | |
20927 | ||
20928 | PR tree-optimization/91181 | |
20929 | * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare | |
20930 | IFN_LOADs as calls. | |
20931 | ||
20932 | 2019-07-16 Uroš Bizjak <ubizjak@gmail.com> | |
20933 | ||
20934 | * config/i386/i386.md (*testdi_1): Match CCZmode for | |
20935 | constants that might have the SImode sign bit set. | |
20936 | (*testqi_1_maybe_si): Remove "!" constraint modifier. | |
20937 | Use correct constraints for pentium pairing. | |
20938 | (*test<mode>_1): Ditto. | |
20939 | ||
20940 | 2019-07-16 Jeff Law <law@redhat.com> | |
20941 | ||
20942 | PR rtl-optimization/91173 | |
20943 | * tree-ssa-address.c (addr_for_mem_ref): If the base is an | |
20944 | SSA_NAME with a constant value, fold its value into the offset | |
20945 | and clear the base before calling gen_addr_rtx. | |
20946 | ||
20947 | 2019-07-16 Jakub Jelinek <jakub@redhat.com> | |
20948 | ||
20949 | PR rtl-optimization/91164 | |
20950 | * dse.c (rest_of_handle_dse): If dead edges have been purged, | |
20951 | invalidate dominance info. | |
20952 | ||
20953 | 2019-07-16 Richard Sandiford <richard.sandiford@arm.com> | |
20954 | ||
20955 | * read-md.h (md_reader::record_potential_iterator_use): Add a | |
20956 | file_location parameter. | |
20957 | * read-rtl.c (attribute_use::loc): New field. | |
20958 | (map_attr_string): Take a file_location parameter. Report cases | |
20959 | in which attributes map to multiple distinct values. | |
20960 | (apply_attribute_uses): Update call accordingly. | |
20961 | (md_reader::handle_overloaded_name): Likewise. | |
20962 | (md_reader::apply_iterator_to_string): Likewise. Skip empty | |
20963 | nonnull strings. | |
20964 | (record_attribute_use): Take a file_location parameter. | |
20965 | Initialize attribute_use::loc. | |
20966 | (md_reader::record_potential_iterator_use): Take a file_location | |
20967 | parameter. Update call to record_attribute_use. | |
20968 | (rtx_reader::rtx_alloc_for_name): Update call accordingly. | |
20969 | (rtx_reader::read_rtx_code): Likewise. | |
20970 | (rtx_reader::read_rtx_operand): Likewise. Record a location | |
20971 | for implicitly-expanded empty strings. | |
20972 | ||
20973 | 2019-07-16 Richard Sandiford <richard.sandiford@arm.com> | |
20974 | ||
20975 | * read-md.h (md_reader::ptr_loc): Moved from read-md.c. | |
20976 | Use file_location instead of separate fields. | |
20977 | (md_reader::set_md_ptr_loc): Take a file_location instead of a | |
20978 | separate filename and line number. | |
20979 | * read-md.c (ptr_loc): As above. | |
20980 | (md_reader::copy_md_ptr_loc): Update for new ptr_loc layout. | |
20981 | (md_reader::fprint_md_ptr_loc): Likewise. | |
20982 | (md_reader::set_md_ptr_loc): Likewise. Take a file_location | |
20983 | instead of a separate filename and line number. | |
20984 | (md_reader::read_string): Update call accordingly. | |
20985 | ||
20986 | 2019-07-16 Richard Sandiford <richard.sandiford@arm.com> | |
20987 | ||
20988 | * config/rs6000/rs6000.md (*mov<mode>_update1): Explicitly | |
20989 | use <SFDF:mode>, <SFDF:MODE>, <SFDF:Ff> and <SFDF:bits> rather than | |
20990 | leaving the choice between SFDF and P implicit. | |
20991 | (*mov<mode>_update2): Likewise. | |
20992 | (*cmp<IBM128:mode>_internal2): Explicitly use <IBM128:MODE> | |
20993 | rather than leaving the choice betweem IBM128 and GPR implicit. | |
20994 | (*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Explicitly use | |
20995 | <IEEE128:MODE> rather than leaving the choice between IEEE128 and | |
20996 | QHSI implicit. | |
20997 | (AltiVec define_peephole2s): Explicitly use <ALTIVEC_DFORM:MODE> | |
20998 | rather than leaving the choice between ALTIVEC_DFORM and P implicit. | |
20999 | * config/rs6000/vsx.md | |
21000 | (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>) | |
21001 | (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Explicitly | |
21002 | use <FL_CONV:VSisa> rather than leaving the choice between FL_CONV | |
21003 | and VSX_EXTRACT_I implicit. | |
21004 | ||
21005 | 2019-07-16 Richard Sandiford <richard.sandiford@arm.com> | |
21006 | ||
21007 | * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>): | |
21008 | Explicitly use <MOVEP1:MODE> for the mode attribute. | |
21009 | ||
21010 | 2019-07-16 Jan Hubicka <hubicka@ucw.cz> | |
21011 | ||
21012 | PR bootstrap/91176 | |
21013 | * ipa-fnsummary.c (analyze_function_body): Skip debug stmts | |
21014 | ||
21015 | 2019-07-15 Segher Boessenkool <segher@kernel.crashing.org> | |
21016 | ||
21017 | PR target/91050 | |
21018 | * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a | |
21019 | .machine directive. | |
21020 | ||
21021 | 2019-07-15 Uroš Bizjak <ubizjak@gmail.com> | |
21022 | ||
21023 | * config/i386/i386.md (@test<mode>_ccno_1): | |
21024 | Rename from test<mode>_ccno_1. | |
21025 | (*testdi_1): Remove redundant alternatives. Remove modrm attribute. | |
21026 | (*testqi_1_maybe_si): Remove modrm attribute. | |
21027 | (*test<mode>_1): Ditto. | |
21028 | * config/i386/i386-expand.c (ix86_split_idivmod): Use | |
21029 | gen_test_ccno_1 and gen_extend_insn. | |
21030 | ||
21031 | 2019-07-15 Jan Hubicka <hubicka@ucw.cz> | |
21032 | ||
21033 | * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p | |
21034 | to 0. | |
21035 | ||
21036 | 2019-07-15 Richard Biener <rguenther@suse.de> | |
21037 | ||
21038 | PR middle-end/91162 | |
21039 | * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI | |
21040 | node make sure to replace all uses with something valid. | |
21041 | ||
21042 | 2019-07-15 Kewen Lin <linkw@gcc.gnu.org> | |
21043 | ||
21044 | PR tree-optimization/88497 | |
21045 | * tree-ssa-reassoc.c (reassociate_bb): Swap the positions of | |
21046 | GIMPLE_BINARY_RHS check and gimple_visited_p check, call new | |
21047 | function undistribute_bitref_for_vector. | |
21048 | (undistribute_bitref_for_vector): New function. | |
21049 | (cleanup_vinfo_map): Likewise. | |
21050 | (sort_by_mach_mode): Likewise. | |
21051 | ||
21052 | 2019-07-14 Uroš Bizjak <ubizjak@gmail.com> | |
21053 | ||
21054 | * config/i386/i386.md (nonmemory_szext_operand): New mode attribute. | |
21055 | (test<mode>_ccno_1): Macroize insn pattern from testsi_ccno_1 | |
21056 | and testdi_ccno_1 using SWI48 mode attribute. | |
21057 | (*testdi_1): Use x86_64_szext_nonmemory_operand instead of | |
21058 | x86_64_szext_general_operand. | |
21059 | (*testqi_1_maybe_si): Use nonmemory_operand instead of general_operand. | |
21060 | (*test<mode>_1): Use nonmemory_szext_operand mode attribute | |
21061 | instead of genera_operand mode attribute. | |
21062 | ||
21063 | 2019-07-14 Vladislav Ivanishin <vlad@ispras.ru> | |
21064 | ||
21065 | * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of | |
21066 | fopen and fclose to their respective types. | |
21067 | (DotFn.invoke): Ditto. | |
21068 | ||
21069 | 2019-07-14 Jan Hubicka <hubicka@ucw.cz> | |
21070 | ||
21071 | * ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index. | |
21072 | (ipa_fn_summary::~ipa_fn_summary): Do not destroy array_index. | |
21073 | (ipa_fn_summary_t::duplicate): Do not duplicate array_index. | |
21074 | (array_index_predicate): Remove. | |
21075 | (analyze_function_body): Account cost for variable ofsetted array | |
21076 | indexing. | |
21077 | (estimate_node_size_and_time): Do not compute array index hint. | |
21078 | (ipa_merge_fn_summary_after_inlining): Do not merge array index hint. | |
21079 | (inline_read_section): Do not read array index hint. | |
21080 | (ipa_fn_summary_write): Do not write array index hint. | |
21081 | * doc/invoke.texi (ipa-cp-array-index-hint-bonus): Remove. | |
21082 | * ipa-cp.c (hint_time_bonus): Remove. | |
21083 | * ipa-fnsummary.h (ipa_hints_vals): Remove array_index. | |
21084 | (ipa_fnsummary): Remove array_index. | |
21085 | * ipa-inline.c (want_inline_small_function_p): Do not use | |
21086 | array_index. | |
21087 | (edge_badness): Likewise. | |
21088 | * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove. | |
21089 | ||
21090 | 2019-07-14 Segher Boessenkool <segher@kernel.crashing.org> | |
21091 | ||
21092 | PR target/91148 | |
21093 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove | |
21094 | superfluous "builtin function" phrasing. | |
21095 | ||
21096 | 2019-07-13 Jan Hubicka <hubicka@ucw.cz> | |
21097 | ||
21098 | * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p): | |
21099 | Break out from ... | |
21100 | (aliasing_component_refs_walk): Break out from ... | |
21101 | (aliasing_component_refs_p): ... here. | |
21102 | ||
21103 | 2019-07-13 Segher Boessenkool <segher@kernel.crashing.org> | |
21104 | ||
21105 | PR target/91148 | |
21106 | * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous | |
21107 | "builtin function" phrasing. | |
21108 | ||
21109 | 2019-07-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
21110 | ||
21111 | PR target/90723 | |
21112 | * recog.h (temporary_volatile_ok): New class. | |
21113 | * config/aarch64/aarch64.c (aarch64_emit_sve_pred_move): Set | |
21114 | volatile_ok temporarily to true using temporary_volatile_ok. | |
21115 | * expr.c (emit_block_move_via_cpymem): Likewise. | |
21116 | * optabs.c (maybe_legitimize_operand): Likewise. | |
21117 | ||
21118 | 2019-07-13 Jakub Jelinek <jakub@redhat.com> | |
21119 | ||
21120 | * gimplify.c (struct gimplify_omp_ctx): Add order_concurrent member. | |
21121 | (omp_notice_threadprivate_variable): Diagnose threadprivate variable | |
21122 | uses inside of order(concurrent) constructs. | |
21123 | (gimplify_scan_omp_clauses): Set ctx->order_concurrent if | |
21124 | OMP_CLAUSE_ORDER is seen. | |
21125 | * omp-low.c (struct omp_context): Add order_concurrent member. | |
21126 | (scan_sharing_clauses): Set ctx->order_concurrent if | |
21127 | OMP_CLAUSE_ORDER is seen. | |
21128 | (check_omp_nesting_restrictions): Diagnose ordered or atomic inside | |
21129 | of simd order(concurrent). Diagnose constructs not allowed inside of | |
21130 | for order(concurrent). | |
21131 | (setjmp_or_longjmp_p): Add a context and TREE_PUBLIC check to avoid | |
21132 | complaining about static double setjmp (double); or class static | |
21133 | methods or non-global namespace setjmps. | |
21134 | (omp_runtime_api_call): New function. | |
21135 | (scan_omp_1_stmt): Diagnose OpenMP runtime API calls inside of | |
21136 | order(concurrent) loops. | |
21137 | ||
21138 | 2019-07-12 Martin Sebor <msebor@redhat.com> | |
21139 | ||
21140 | * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param. | |
21141 | * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param. | |
21142 | * tree-vrp.c (vrp_prop::check_mem_ref): Use | |
21143 | PARAM_SSA_NAME_DEF_CHAIN_LIMIT. | |
21144 | ||
21145 | 2019-07-12 Jan Hubicka <jh@suse.cz> | |
21146 | ||
21147 | * tree-ssa-alias.c (same_tmr_indexing_p): Break out from ... | |
21148 | (indirect_refs_may_alias_p): ... here. | |
21149 | (nonoverlapping_component_refs_since_match_p): Support also non-trivial | |
21150 | mem refs in the access paths. | |
21151 | ||
21152 | 2019-07-12 Jiangning Liu <jiangning.liu@amperecomputing.com> | |
21153 | ||
21154 | PR tree-optimization/89430 | |
21155 | * tree-ssa-phiopt.c (cond_store_replacement): Support conditional | |
21156 | store elimination for local variable without address escape. | |
21157 | ||
21158 | 2019-07-12 Jeff Law <law@redhat.com> | |
21159 | ||
21160 | * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE | |
21161 | for the ".far" section. | |
21162 | ||
21163 | 2019-07-12 Richard Biener <rguenther@suse.de> | |
21164 | ||
21165 | PR tree-optimization/91145 | |
21166 | * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction | |
21167 | chain check. | |
21168 | ||
21169 | 2019-07-12 Alexandre Oliva <oliva@adacore.com> | |
21170 | ||
21171 | * tree-eh.c (honor_protect_cleanup_actions): Use outer_ | |
21172 | rather than this_state as the lowering context for the ELSE | |
21173 | seq in a GIMPLE_EH_ELSE. | |
21174 | ||
21175 | 2019-07-12 Richard Sandiford <richard.sandiford@arm.com> | |
21176 | ||
21177 | * vector-builder.h (vector_builder::elt): Allow already-supplied | |
21178 | elements to be read back before building is complete. | |
21179 | ||
21180 | 2019-07-12 Eric Botcazou <ebotcazou@adacore.com> | |
21181 | ||
21182 | PR rtl-optimization/91136 | |
21183 | * df-core.c (ACCESSING REFS): Fix typos in comment. | |
21184 | * resource.c (mark_target_live_reg): Add artificial defs that occur at | |
21185 | the beginning of the block to the initial set of live registers. | |
21186 | ||
21187 | 2019-07-12 Richard Biener <rguenther@suse.de> | |
21188 | ||
21189 | * fold-const.h (get_array_ctor_element_at_index): Adjust. | |
21190 | * fold-const.c (get_array_ctor_element_at_index): Add | |
21191 | ctor_idx output parameter informing the caller where in | |
21192 | the constructor the element was (not) found. Add early exit | |
21193 | for when the ctor is sorted. | |
21194 | * gimple-fold.c (fold_array_ctor_reference): Support constant | |
21195 | folding across multiple array elements. | |
21196 | ||
21197 | 2019-07-12 Eric Botcazou <ebotcazou@adacore.com> | |
21198 | ||
21199 | * cfgexpand.c (expand_gimple_stmt_1) <GIMPLE_RETURN>: If the statement | |
21200 | doesn't have location, set the current location to the function's end. | |
21201 | ||
21202 | 2019-07-12 Richard Sandiford <richard.sandiford@arm.com> | |
21203 | ||
21204 | * config/aarch64/aarch64.md (*compare_condjump<mode>) | |
21205 | (loadwb_pair<GPI:mode>_<P:mode>, loadwb_pair<GPF:mode>_<P:mode>) | |
21206 | (storewb_pair<GPI:mode>_<P:mode>, storewb_pair<GPF:mode>_<P:mode>) | |
21207 | (*ands<mode>_compare0): Fix ambiguous uses of .md attributes. | |
21208 | * config/aarch64/aarch64-simd.md | |
21209 | (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise. | |
21210 | (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): Likewise. | |
21211 | * config/aarch64/aarch64-sve.md | |
21212 | (while_ult<GPI:mode><PRED_ALL:mode>): Likewise. | |
21213 | (*cond_<optab><mode>_any): Fix SVE_I/SVE_SDI typo. | |
21214 | ||
21215 | 2019-07-12 Richard Sandiford <richard.sandiford@arm.com> | |
21216 | ||
21217 | * doc/md.texi: Document that @ patterns can have different | |
21218 | numbers of operands. | |
21219 | * genemit.c (handle_overloaded_gen): Handle this case. | |
21220 | * genopinit.c (handle_overloaded_gen): Likewise. | |
21221 | * gensupport.c (replace_operands_with_dups): Iterate over | |
21222 | the new rtx's format rather than the old one's. | |
21223 | ||
21224 | 2019-07-12 Jakub Jelinek <jakub@redhat.com> | |
21225 | ||
21226 | * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ORDER. | |
21227 | * tree.c (omp_clause_num_ops, omp_clause_code_name): Add | |
21228 | order clause entries. | |
21229 | (walk_tree_1): Handle OMP_CLAUSE_ORDER. | |
21230 | * tree-pretty-print.c (dump_omp_clause): Likewise. | |
21231 | * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses): | |
21232 | Likewise. | |
21233 | * omp-low.c (scan_sharing_clauses): Likewise. | |
21234 | * tree-nested.c (convert_nonlocal_omp_clauses, | |
21235 | convert_local_omp_clauses): Likewise. | |
21236 | ||
21237 | 2019-07-12 Kewen Lin <linkw@gcc.gnu.org> | |
21238 | ||
21239 | * cfgrtl.c (print_rtl_with_bb): Emit a hint if the | |
21240 | fallthrough target of current basic block isn't the placed | |
21241 | right next. | |
21242 | ||
21243 | 2019-07-11 Sunil K Pandey <sunil.k.pandey@intel.com> | |
21244 | ||
21245 | PR target/90980 | |
21246 | * config/i386/avx512fintrin.h (_mm512_loadu_epi64): New. | |
21247 | (_mm512_storeu_epi64): Likewise. | |
21248 | (_mm512_loadu_epi32): Likewise. | |
21249 | (_mm512_storeu_epi32): Likewise. | |
21250 | * config/i386/avx512vlintrin.h (_mm256_storeu_epi64): New. | |
21251 | (_mm_storeu_epi64): Likewise. | |
21252 | (_mm256_storeu_epi32): Likewise. | |
21253 | (_mm_storeu_epi32): Likewise. | |
21254 | ||
21255 | 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org> | |
21256 | ||
21257 | * config/rs6000/rs6000-logue.c: Add Modula-2 to comment. | |
21258 | ||
21259 | 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org> | |
21260 | ||
21261 | * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue): | |
21262 | Handle Modula-2. | |
21263 | ||
21264 | 2019-07-11 Jakub Jelinek <jakub@redhat.com> | |
21265 | ||
21266 | PR target/91124 | |
21267 | * config/i386/sse.md (sse2_cvtpd2dq<mask_name>): Change into ... | |
21268 | (sse2_cvtpd2dq): ... this. Remove mask substitution macros. | |
21269 | (sse2_cvtpd2dq_mask, sse2_cvtpd2dq_mask_1): New define_insns. | |
21270 | (ufix_notruncv2dfv2si2<mask_name>): Change into ... | |
21271 | (ufix_notruncv2dfv2si2): ... this. Remove mask substitution macros. | |
21272 | (ufix_notruncv2dfv2si2_mask, ufix_notruncv2dfv2si2_mask_1): New | |
21273 | define_insns. | |
21274 | (ufix_truncv2dfv2si2<mask_name>): Change into ... | |
21275 | (ufix_truncv2dfv2si2): ... this. Remove mask substitution macros. | |
21276 | (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New | |
21277 | define_insns. | |
21278 | (sse2_cvttpd2dq<mask_name>): Change into ... | |
21279 | (sse2_cvttpd2dq): ... this. Remove mask substitution macros. | |
21280 | (sse2_cvttpd2dq_mask, sse2_cvttpd2dq_mask_1): New define_insns. | |
21281 | (*sse2_cvtpd2dq<mask_name>): Change into ... | |
21282 | (*sse2_cvtpd2dq): ... this. Remove mask substitution macros. | |
21283 | Add "C" constraint to const0_operand. | |
21284 | (*sse2_cvtpd2dq_mask, *sse2_cvtpd2dq_mask_1): New define_insns. | |
21285 | (sse2_cvtpd2ps_mask): Adjust expand to match *sse2_cvtpd2ps_mask | |
21286 | changes. | |
21287 | ||
21288 | PR target/91124 | |
21289 | * config/i386/i386-builtin-types.def | |
21290 | (V32HI_FTYPE_V32HI_V32HI_V32HI_INT, | |
21291 | V16HI_FTYPE_V16HI_V16HI_V16HI_INT, V8HI_FTYPE_V8HI_V8HI_V8HI_INT, | |
21292 | V8SI_FTYPE_V8SI_V8SI_V8SI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT, | |
21293 | V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V16SI_FTYPE_V16SI_V16SI_V16SI_INT, | |
21294 | V2DI_FTYPE_V2DI_V2DI_V2DI_INT, V4SI_FTYPE_V4SI_V4SI_V4SI_INT): Remove. | |
21295 | * config/i386/i386-builtin.def (__builtin_ia32_vpshrdv_v32hi_mask, | |
21296 | __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshrdv_v16hi_mask, | |
21297 | __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi_mask, | |
21298 | __builtin_ia32_vpshrdv_v8hi_maskz, __builtin_ia32_vpshrdv_v16si_mask, | |
21299 | __builtin_ia32_vpshrdv_v16si_maskz, __builtin_ia32_vpshrdv_v8si_mask, | |
21300 | __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si_mask, | |
21301 | __builtin_ia32_vpshrdv_v4si_maskz, __builtin_ia32_vpshrdv_v8di_mask, | |
21302 | __builtin_ia32_vpshrdv_v8di_maskz, __builtin_ia32_vpshrdv_v4di_mask, | |
21303 | __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di_mask, | |
21304 | __builtin_ia32_vpshrdv_v2di_maskz, __builtin_ia32_vpshldv_v32hi_mask, | |
21305 | __builtin_ia32_vpshldv_v32hi_maskz, __builtin_ia32_vpshldv_v16hi_mask, | |
21306 | __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi_mask, | |
21307 | __builtin_ia32_vpshldv_v8hi_maskz, __builtin_ia32_vpshldv_v16si_mask, | |
21308 | __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si_mask, | |
21309 | __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si_mask, | |
21310 | __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di_mask, | |
21311 | __builtin_ia32_vpshldv_v8di_maskz, __builtin_ia32_vpshldv_v4di_mask, | |
21312 | __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di_mask, | |
21313 | __builtin_ia32_vpshldv_v2di_maskz, __builtin_ia32_vpdpbusd_v16si_mask, | |
21314 | __builtin_ia32_vpdpbusd_v16si_maskz, __builtin_ia32_vpdpbusd_v8si_mask, | |
21315 | __builtin_ia32_vpdpbusd_v8si_maskz, __builtin_ia32_vpdpbusd_v4si_mask, | |
21316 | __builtin_ia32_vpdpbusd_v4si_maskz, | |
21317 | __builtin_ia32_vpdpbusds_v16si_mask, | |
21318 | __builtin_ia32_vpdpbusds_v16si_maskz, | |
21319 | __builtin_ia32_vpdpbusds_v8si_mask, | |
21320 | __builtin_ia32_vpdpbusds_v8si_maskz, | |
21321 | __builtin_ia32_vpdpbusds_v4si_mask, | |
21322 | __builtin_ia32_vpdpbusds_v4si_maskz, | |
21323 | __builtin_ia32_vpdpwssd_v16si_mask, | |
21324 | __builtin_ia32_vpdpwssd_v16si_maskz, __builtin_ia32_vpdpwssd_v8si_mask, | |
21325 | __builtin_ia32_vpdpwssd_v8si_maskz, __builtin_ia32_vpdpwssd_v4si_mask, | |
21326 | __builtin_ia32_vpdpwssd_v4si_maskz, | |
21327 | __builtin_ia32_vpdpwssds_v16si_mask, | |
21328 | __builtin_ia32_vpdpwssds_v16si_maskz, | |
21329 | __builtin_ia32_vpdpwssds_v8si_mask, | |
21330 | __builtin_ia32_vpdpwssds_v8si_maskz, | |
21331 | __builtin_ia32_vpdpwssds_v4si_mask, | |
21332 | __builtin_ia32_vpdpwssds_v4si_maskz): Use *_USI, *_UHI or *_UQI | |
21333 | suffixed types rather than *_INT. | |
21334 | * config/i386/i386-expand.c (ix86_expand_args_builtin): Don't handle | |
21335 | V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT, | |
21336 | V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT, | |
21337 | V4DI_FTYPE_V4DI_V4DI_V4DI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI_INT, | |
21338 | V16SI_FTYPE_V16SI_V16SI_V16SI_INT, V2DI_FTYPE_V2DI_V2DI_V2DI_INT | |
21339 | and V4SI_FTYPE_V4SI_V4SI_V4SI_INT. | |
21340 | ||
21341 | 2019-07-11 Aldy Hernandez <aldyh@redhat.com> | |
21342 | ||
21343 | * tree-vrp.c (intersect_ranges): If we know the intersection is | |
21344 | empty, there is no need to conservatively add anything else to | |
21345 | the set. | |
21346 | ||
21347 | 2019-07-11 Richard Biener <rguenther@suse.de> | |
21348 | ||
21349 | PR middle-end/91131 | |
21350 | * gimplify.c (gimplify_compound_literal_expr): Force a temporary | |
21351 | when the object is volatile and we have not cleared it even though | |
21352 | there are no nonzero elements. | |
21353 | ||
21354 | 2019-07-10 Michael Meissner <meissner@linux.ibm.com> | |
21355 | ||
21356 | * config/rs6000/predicates.md (cint34_operand): Update | |
21357 | SIGNED_34BIT_OFFSET_P call. | |
21358 | (pcrel_address): Update SIGNED_34BIT_OFFSET_P call. | |
21359 | (pcrel_external_address): Update SIGNED_34BIT_OFFSET_P call. | |
21360 | * config/rs6000/rs6000.c (rs6000_prefixed_address): Update | |
21361 | SIGNED_16BIT_OFFSET_P and SIGNED_34BIT_OFFSET_P calls. | |
21362 | * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): Remove EXTRA | |
21363 | argument. | |
21364 | (SIGNED_34BIT_OFFSET_P): Remove EXTRA argument. | |
21365 | (SIGNED_16BIT_OFFSET_EXTRA_P): New macro, like | |
21366 | SIGNED_16BIT_OFFSET_P with an EXTRA argument. | |
21367 | (SIGNED_34BIT_OFFSET_EXTRA_P): New macro, like | |
21368 | SIGNED_34BIT_OFFSET_P with an EXTRA argument. | |
21369 | ||
21370 | 2019-07-10 Iain Sandoe <iain@sandoe.co.uk> | |
21371 | ||
21372 | * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here. | |
21373 | * config/rs6000/darwin7.h (LIB_SPEC): Remove. | |
21374 | * config/rs6000/darwin8.h (LIB_SPEC): Remove. | |
21375 | (DEF_MIN_OSX_VERSION): New. | |
21376 | ||
21377 | 2019-07-10 Richard Sandiford <richard.sandiford@arm.com> | |
21378 | ||
21379 | * fold-const.c (fold_relational_const): Fix folding of | |
21380 | vector-to-scalar NE_EXPRs. | |
21381 | (test_vector_folding): Add more tests. | |
21382 | ||
21383 | 2019-07-10 Richard Sandiford <richard.sandiford@arm.com> | |
21384 | ||
21385 | PR target/91060 | |
21386 | * config/arm/iterators.md (V2DI_ONLY): New mode iterator. | |
21387 | * config/arm/neon.md (vec_set<mode>_internal): Add a '@' prefix. | |
21388 | (vec_setv2di_internal): Reexpress as... | |
21389 | (@vec_set<V2DI_ONLY:mode>_internal): ...this. | |
21390 | * config/arm/arm.c (neon_expand_vector_init): Use gen_vec_set_internal | |
21391 | rather than gen_neon_vset_lane<mode>. | |
21392 | ||
21393 | 2019-07-10 Vladimir Makarov <vmakarov@redhat.com> | |
21394 | ||
21395 | PR target/91102 | |
21396 | * lra-constraints.c (process_alt_operands): Don't match user | |
21397 | defined regs only if they are early clobbers. | |
21398 | ||
21399 | 2019-07-10 Marc Glisse <marc.glisse@inria.fr> | |
21400 | ||
21401 | * wide-int.h (wi::lshift): Reject negative values for the fast path. | |
21402 | ||
21403 | 2019-07-10 Richard Biener <rguenther@suse.de> | |
21404 | ||
21405 | PR tree-optimization/91126 | |
21406 | * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust | |
21407 | native encoding offset for BYTES_BIG_ENDIAN. | |
21408 | (vn_reference_lookup_3): Likewise. | |
21409 | ||
21410 | 2019-07-10 Richard Biener <rguenther@suse.de> | |
21411 | ||
21412 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized | |
21413 | LHS whenever possible. | |
21414 | ||
21415 | 2019-07-09 Jan Hubicka <hubicka@ucw.cz> | |
21416 | ||
21417 | * tree-ssa-alias.c (nonoverlapping_component_refs_p_1): Break out | |
21418 | from ...; work also on duplicated types. | |
21419 | (nonoverlapping_component_refs_since_match): ... here | |
21420 | (ncr_type_uid): Break out from ... | |
21421 | (ncr_compar): ... here; look for TYPE_UID of canonical type if | |
21422 | available. | |
21423 | (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match | |
21424 | the types and nonoverlapping_component_refs_p_1 to disambiguate. | |
21425 | ||
21426 | 2019-07-09 Martin Sebor <msebor@redhat.com> | |
21427 | ||
21428 | PR tree-optimization/90989 | |
21429 | * tree-ssa-strlen.c (handle_char_store): Constrain a single character | |
21430 | optimization to just single character stores. | |
21431 | ||
21432 | 2019-07-09 Joern Rennecke <joern.rennecke@riscy-ip.com> | |
21433 | ||
21434 | * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>: | |
21435 | Swap operands only once. | |
21436 | ||
21437 | 2019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com> | |
21438 | ||
21439 | * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal | |
21440 | for both call instructions. | |
21441 | ||
21442 | 2019-07-09 John Darrington <john@darrington.wattle.id.au> | |
21443 | ||
21444 | * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION | |
21445 | rather than GET_MODE_BITSIZE to better handle partial integer modes. | |
21446 | ||
21447 | 2019-07-09 Michael Meissner <meissner@linux.ibm.com> | |
21448 | ||
21449 | * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete. | |
21450 | * config/rs6000/rs6000-logue.c (create_TOC_reference): Move | |
21451 | function from rs6000-logue.c back to rs6000.c. | |
21452 | * config/rs6000/rs6000.c (create_TOC_reference): Likewise. | |
21453 | ||
21454 | 2019-07-09 Martin Sebor <msebor@redhat.com> | |
21455 | ||
21456 | PR c++/61339 | |
21457 | * auto-profile.c: Change class-key of PODs to struct and others | |
21458 | to class. | |
21459 | * basic-block.h: Same. | |
21460 | * bitmap.c (bitmap_alloc): Same. | |
21461 | * bitmap.h: Same. | |
21462 | * builtins.c (expand_builtin_prefetch): Same. | |
21463 | (expand_builtin_interclass_mathfn): Same. | |
21464 | (expand_builtin_strlen): Same. | |
21465 | (expand_builtin_mempcpy_args): Same. | |
21466 | (expand_cmpstr): Same. | |
21467 | (expand_builtin___clear_cache): Same. | |
21468 | (expand_ifn_atomic_bit_test_and): Same. | |
21469 | (expand_builtin_thread_pointer): Same. | |
21470 | (expand_builtin_set_thread_pointer): Same. | |
21471 | * caller-save.c (setup_save_areas): Same. | |
21472 | (replace_reg_with_saved_mem): Same. | |
21473 | (insert_restore): Same. | |
21474 | (insert_save): Same. | |
21475 | (add_used_regs): Same. | |
21476 | * cfg.c (get_bb_copy): Same. | |
21477 | (set_loop_copy): Same. | |
21478 | * cfg.h: Same. | |
21479 | * cfganal.h: Same. | |
21480 | * cfgexpand.c (alloc_stack_frame_space): Same. | |
21481 | (add_stack_var): Same. | |
21482 | (add_stack_var_conflict): Same. | |
21483 | (add_scope_conflicts_1): Same. | |
21484 | (update_alias_info_with_stack_vars): Same. | |
21485 | (expand_used_vars): Same. | |
21486 | * cfghooks.c (redirect_edge_and_branch_force): Same. | |
21487 | (delete_basic_block): Same. | |
21488 | (split_edge): Same. | |
21489 | (make_forwarder_block): Same. | |
21490 | (force_nonfallthru): Same. | |
21491 | (duplicate_block): Same. | |
21492 | (lv_flush_pending_stmts): Same. | |
21493 | * cfghooks.h: Same. | |
21494 | * cfgloop.c (flow_loops_cfg_dump): Same. | |
21495 | (flow_loop_nested_p): Same. | |
21496 | (superloop_at_depth): Same. | |
21497 | (get_loop_latch_edges): Same. | |
21498 | (flow_loop_dump): Same. | |
21499 | (flow_loops_dump): Same. | |
21500 | (flow_loops_free): Same. | |
21501 | (flow_loop_nodes_find): Same. | |
21502 | (establish_preds): Same. | |
21503 | (flow_loop_tree_node_add): Same. | |
21504 | (flow_loop_tree_node_remove): Same. | |
21505 | (flow_loops_find): Same. | |
21506 | (find_subloop_latch_edge_by_profile): Same. | |
21507 | (find_subloop_latch_edge_by_ivs): Same. | |
21508 | (mfb_redirect_edges_in_set): Same. | |
21509 | (form_subloop): Same. | |
21510 | (merge_latch_edges): Same. | |
21511 | (disambiguate_multiple_latches): Same. | |
21512 | (disambiguate_loops_with_multiple_latches): Same. | |
21513 | (flow_bb_inside_loop_p): Same. | |
21514 | (glb_enum_p): Same. | |
21515 | (get_loop_body_with_size): Same. | |
21516 | (get_loop_body): Same. | |
21517 | (fill_sons_in_loop): Same. | |
21518 | (get_loop_body_in_dom_order): Same. | |
21519 | (get_loop_body_in_custom_order): Same. | |
21520 | (release_recorded_exits): Same. | |
21521 | (get_loop_exit_edges): Same. | |
21522 | (num_loop_branches): Same. | |
21523 | (remove_bb_from_loops): Same. | |
21524 | (find_common_loop): Same. | |
21525 | (delete_loop): Same. | |
21526 | (cancel_loop): Same. | |
21527 | (verify_loop_structure): Same. | |
21528 | (loop_preheader_edge): Same. | |
21529 | (loop_exit_edge_p): Same. | |
21530 | (single_exit): Same. | |
21531 | (loop_exits_to_bb_p): Same. | |
21532 | (loop_exits_from_bb_p): Same. | |
21533 | (get_loop_location): Same. | |
21534 | (record_niter_bound): Same. | |
21535 | (get_estimated_loop_iterations_int): Same. | |
21536 | (max_stmt_executions_int): Same. | |
21537 | (likely_max_stmt_executions_int): Same. | |
21538 | (get_estimated_loop_iterations): Same. | |
21539 | (get_max_loop_iterations): Same. | |
21540 | (get_max_loop_iterations_int): Same. | |
21541 | (get_likely_max_loop_iterations): Same. | |
21542 | * cfgloop.h (simple_loop_desc): Same. | |
21543 | (get_loop): Same. | |
21544 | (loop_depth): Same. | |
21545 | (loop_outer): Same. | |
21546 | (loop_iterator::next): Same. | |
21547 | (loop_outermost): Same. | |
21548 | * cfgloopanal.c (mark_irreducible_loops): Same. | |
21549 | (num_loop_insns): Same. | |
21550 | (average_num_loop_insns): Same. | |
21551 | (expected_loop_iterations_unbounded): Same. | |
21552 | (expected_loop_iterations): Same. | |
21553 | (mark_loop_exit_edges): Same. | |
21554 | (single_likely_exit): Same. | |
21555 | * cfgloopmanip.c (fix_bb_placement): Same. | |
21556 | (fix_bb_placements): Same. | |
21557 | (remove_path): Same. | |
21558 | (place_new_loop): Same. | |
21559 | (add_loop): Same. | |
21560 | (scale_loop_frequencies): Same. | |
21561 | (scale_loop_profile): Same. | |
21562 | (create_empty_if_region_on_edge): Same. | |
21563 | (create_empty_loop_on_edge): Same. | |
21564 | (loopify): Same. | |
21565 | (unloop): Same. | |
21566 | (fix_loop_placements): Same. | |
21567 | (copy_loop_info): Same. | |
21568 | (duplicate_loop): Same. | |
21569 | (duplicate_subloops): Same. | |
21570 | (loop_redirect_edge): Same. | |
21571 | (can_duplicate_loop_p): Same. | |
21572 | (duplicate_loop_to_header_edge): Same. | |
21573 | (mfb_keep_just): Same. | |
21574 | (has_preds_from_loop): Same. | |
21575 | (create_preheader): Same. | |
21576 | (create_preheaders): Same. | |
21577 | (lv_adjust_loop_entry_edge): Same. | |
21578 | (loop_version): Same. | |
21579 | * cfgloopmanip.h: Same. | |
21580 | * cgraph.h: Same. | |
21581 | * cgraphbuild.c: Same. | |
21582 | * combine.c (make_extraction): Same. | |
21583 | * config/i386/i386-features.c: Same. | |
21584 | * config/i386/i386-features.h: Same. | |
21585 | * config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same. | |
21586 | (ix86_emit_outlined_ms2sysv_restore): Same. | |
21587 | (ix86_noce_conversion_profitable_p): Same. | |
21588 | (ix86_init_cost): Same. | |
21589 | (ix86_simd_clone_usable): Same. | |
21590 | * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Add -Wclass-is-pod and | |
21591 | Wstruct-not-pod. | |
21592 | * coretypes.h: Same. | |
21593 | * data-streamer-in.c (string_for_index): Change class-key of PODs | |
21594 | to struct and others to class. | |
21595 | (streamer_read_indexed_string): Same. | |
21596 | (streamer_read_string): Same. | |
21597 | (bp_unpack_indexed_string): Same. | |
21598 | (bp_unpack_string): Same. | |
21599 | (streamer_read_uhwi): Same. | |
21600 | (streamer_read_hwi): Same. | |
21601 | (streamer_read_gcov_count): Same. | |
21602 | (streamer_read_wide_int): Same. | |
21603 | * data-streamer.h (streamer_write_bitpack): Same. | |
21604 | (bp_unpack_value): Same. | |
21605 | (streamer_write_char_stream): Same. | |
21606 | (streamer_write_hwi_in_range): Same. | |
21607 | (streamer_write_record_start): Same. | |
21608 | * ddg.c (create_ddg_dep_from_intra_loop_link): Same. | |
21609 | (add_cross_iteration_register_deps): Same. | |
21610 | (build_intra_loop_deps): Same. | |
21611 | * df-core.c (df_analyze): Same. | |
21612 | (loop_post_order_compute): Same. | |
21613 | (loop_inverted_post_order_compute): Same. | |
21614 | * df-problems.c (df_rd_alloc): Same. | |
21615 | (df_rd_simulate_one_insn): Same. | |
21616 | (df_rd_local_compute): Same. | |
21617 | (df_rd_init_solution): Same. | |
21618 | (df_rd_confluence_n): Same. | |
21619 | (df_rd_transfer_function): Same. | |
21620 | (df_rd_free): Same. | |
21621 | (df_rd_dump_defs_set): Same. | |
21622 | (df_rd_top_dump): Same. | |
21623 | (df_lr_alloc): Same. | |
21624 | (df_lr_reset): Same. | |
21625 | (df_lr_local_compute): Same. | |
21626 | (df_lr_init): Same. | |
21627 | (df_lr_confluence_n): Same. | |
21628 | (df_lr_free): Same. | |
21629 | (df_lr_top_dump): Same. | |
21630 | (df_lr_verify_transfer_functions): Same. | |
21631 | (df_live_alloc): Same. | |
21632 | (df_live_reset): Same. | |
21633 | (df_live_init): Same. | |
21634 | (df_live_confluence_n): Same. | |
21635 | (df_live_finalize): Same. | |
21636 | (df_live_free): Same. | |
21637 | (df_live_top_dump): Same. | |
21638 | (df_live_verify_transfer_functions): Same. | |
21639 | (df_mir_alloc): Same. | |
21640 | (df_mir_reset): Same. | |
21641 | (df_mir_init): Same. | |
21642 | (df_mir_confluence_n): Same. | |
21643 | (df_mir_free): Same. | |
21644 | (df_mir_top_dump): Same. | |
21645 | (df_word_lr_alloc): Same. | |
21646 | (df_word_lr_reset): Same. | |
21647 | (df_word_lr_init): Same. | |
21648 | (df_word_lr_confluence_n): Same. | |
21649 | (df_word_lr_free): Same. | |
21650 | (df_word_lr_top_dump): Same. | |
21651 | (df_md_alloc): Same. | |
21652 | (df_md_simulate_one_insn): Same. | |
21653 | (df_md_reset): Same. | |
21654 | (df_md_init): Same. | |
21655 | (df_md_free): Same. | |
21656 | (df_md_top_dump): Same. | |
21657 | * df-scan.c (df_insn_delete): Same. | |
21658 | (df_insn_rescan): Same. | |
21659 | (df_notes_rescan): Same. | |
21660 | (df_sort_and_compress_mws): Same. | |
21661 | (df_install_mws): Same. | |
21662 | (df_refs_add_to_chains): Same. | |
21663 | (df_ref_create_structure): Same. | |
21664 | (df_ref_record): Same. | |
21665 | (df_def_record_1): Same. | |
21666 | (df_find_hard_reg_defs): Same. | |
21667 | (df_uses_record): Same. | |
21668 | (df_get_conditional_uses): Same. | |
21669 | (df_get_call_refs): Same. | |
21670 | (df_recompute_luids): Same. | |
21671 | (df_get_entry_block_def_set): Same. | |
21672 | (df_entry_block_defs_collect): Same. | |
21673 | (df_get_exit_block_use_set): Same. | |
21674 | (df_exit_block_uses_collect): Same. | |
21675 | (df_mws_verify): Same. | |
21676 | (df_bb_verify): Same. | |
21677 | * df.h (df_scan_get_bb_info): Same. | |
21678 | * doc/tm.texi: Same. | |
21679 | * dse.c (record_store): Same. | |
21680 | * dumpfile.h: Same. | |
21681 | * emit-rtl.c (const_fixed_hasher::equal): Same. | |
21682 | (set_mem_attributes_minus_bitpos): Same. | |
21683 | (change_address): Same. | |
21684 | (adjust_address_1): Same. | |
21685 | (offset_address): Same. | |
21686 | * emit-rtl.h: Same. | |
21687 | * except.c (dw2_build_landing_pads): Same. | |
21688 | (sjlj_emit_dispatch_table): Same. | |
21689 | * explow.c (allocate_dynamic_stack_space): Same. | |
21690 | (emit_stack_probe): Same. | |
21691 | (probe_stack_range): Same. | |
21692 | * expmed.c (store_bit_field_using_insv): Same. | |
21693 | (store_bit_field_1): Same. | |
21694 | (store_integral_bit_field): Same. | |
21695 | (extract_bit_field_using_extv): Same. | |
21696 | (extract_bit_field_1): Same. | |
21697 | (emit_cstore): Same. | |
21698 | * expr.c (emit_block_move_via_cpymem): Same. | |
21699 | (expand_cmpstrn_or_cmpmem): Same. | |
21700 | (set_storage_via_setmem): Same. | |
21701 | (emit_single_push_insn_1): Same. | |
21702 | (expand_assignment): Same. | |
21703 | (store_constructor): Same. | |
21704 | (expand_expr_real_2): Same. | |
21705 | (expand_expr_real_1): Same. | |
21706 | (try_casesi): Same. | |
21707 | * flags.h: Same. | |
21708 | * function.c (try_fit_stack_local): Same. | |
21709 | (assign_stack_local_1): Same. | |
21710 | (assign_stack_local): Same. | |
21711 | (cut_slot_from_list): Same. | |
21712 | (insert_slot_to_list): Same. | |
21713 | (max_slot_level): Same. | |
21714 | (move_slot_to_level): Same. | |
21715 | (temp_address_hasher::equal): Same. | |
21716 | (remove_unused_temp_slot_addresses): Same. | |
21717 | (assign_temp): Same. | |
21718 | (combine_temp_slots): Same. | |
21719 | (update_temp_slot_address): Same. | |
21720 | (preserve_temp_slots): Same. | |
21721 | * function.h: Same. | |
21722 | * fwprop.c: Same. | |
21723 | * gcc-rich-location.h: Same. | |
21724 | * gcov.c: Same. | |
21725 | * genattrtab.c (check_attr_test): Same. | |
21726 | (check_attr_value): Same. | |
21727 | (convert_set_attr_alternative): Same. | |
21728 | (convert_set_attr): Same. | |
21729 | (check_defs): Same. | |
21730 | (copy_boolean): Same. | |
21731 | (get_attr_value): Same. | |
21732 | (expand_delays): Same. | |
21733 | (make_length_attrs): Same. | |
21734 | (min_fn): Same. | |
21735 | (make_alternative_compare): Same. | |
21736 | (simplify_test_exp): Same. | |
21737 | (tests_attr_p): Same. | |
21738 | (get_attr_order): Same. | |
21739 | (clear_struct_flag): Same. | |
21740 | (gen_attr): Same. | |
21741 | (compares_alternatives_p): Same. | |
21742 | (gen_insn): Same. | |
21743 | (gen_delay): Same. | |
21744 | (find_attrs_to_cache): Same. | |
21745 | (write_test_expr): Same. | |
21746 | (walk_attr_value): Same. | |
21747 | (write_attr_get): Same. | |
21748 | (eliminate_known_true): Same. | |
21749 | (write_insn_cases): Same. | |
21750 | (write_attr_case): Same. | |
21751 | (write_attr_valueq): Same. | |
21752 | (write_attr_value): Same. | |
21753 | (write_dummy_eligible_delay): Same. | |
21754 | (next_comma_elt): Same. | |
21755 | (find_attr): Same. | |
21756 | (make_internal_attr): Same. | |
21757 | (copy_rtx_unchanging): Same. | |
21758 | (gen_insn_reserv): Same. | |
21759 | (check_tune_attr): Same. | |
21760 | (make_automaton_attrs): Same. | |
21761 | (handle_arg): Same. | |
21762 | * genextract.c (gen_insn): Same. | |
21763 | (VEC_char_to_string): Same. | |
21764 | * genmatch.c (print_operand): Same. | |
21765 | (lower): Same. | |
21766 | (parser::parse_operation): Same. | |
21767 | (parser::parse_capture): Same. | |
21768 | (parser::parse_c_expr): Same. | |
21769 | (parser::parse_simplify): Same. | |
21770 | (main): Same. | |
21771 | * genoutput.c (output_operand_data): Same. | |
21772 | (output_get_insn_name): Same. | |
21773 | (compare_operands): Same. | |
21774 | (place_operands): Same. | |
21775 | (process_template): Same. | |
21776 | (validate_insn_alternatives): Same. | |
21777 | (validate_insn_operands): Same. | |
21778 | (gen_expand): Same. | |
21779 | (note_constraint): Same. | |
21780 | * genpreds.c (write_one_predicate_function): Same. | |
21781 | (add_constraint): Same. | |
21782 | (process_define_register_constraint): Same. | |
21783 | (write_lookup_constraint_1): Same. | |
21784 | (write_lookup_constraint_array): Same. | |
21785 | (write_insn_constraint_len): Same. | |
21786 | (write_reg_class_for_constraint_1): Same. | |
21787 | (write_constraint_satisfied_p_array): Same. | |
21788 | * genrecog.c (optimize_subroutine_group): Same. | |
21789 | * gensupport.c (process_define_predicate): Same. | |
21790 | (queue_pattern): Same. | |
21791 | (remove_from_queue): Same. | |
21792 | (process_rtx): Same. | |
21793 | (is_predicable): Same. | |
21794 | (change_subst_attribute): Same. | |
21795 | (subst_pattern_match): Same. | |
21796 | (alter_constraints): Same. | |
21797 | (alter_attrs_for_insn): Same. | |
21798 | (shift_output_template): Same. | |
21799 | (alter_output_for_subst_insn): Same. | |
21800 | (process_one_cond_exec): Same. | |
21801 | (subst_dup): Same. | |
21802 | (process_define_cond_exec): Same. | |
21803 | (mnemonic_htab_callback): Same. | |
21804 | (gen_mnemonic_attr): Same. | |
21805 | (read_md_rtx): Same. | |
21806 | * ggc-page.c: Same. | |
21807 | * gimple-loop-interchange.cc (dump_reduction): Same. | |
21808 | (dump_induction): Same. | |
21809 | (loop_cand::~loop_cand): Same. | |
21810 | (free_data_refs_with_aux): Same. | |
21811 | (tree_loop_interchange::interchange_loops): Same. | |
21812 | (tree_loop_interchange::map_inductions_to_loop): Same. | |
21813 | (tree_loop_interchange::move_code_to_inner_loop): Same. | |
21814 | (compute_access_stride): Same. | |
21815 | (compute_access_strides): Same. | |
21816 | (proper_loop_form_for_interchange): Same. | |
21817 | (tree_loop_interchange_compute_ddrs): Same. | |
21818 | (prune_datarefs_not_in_loop): Same. | |
21819 | (prepare_data_references): Same. | |
21820 | (pass_linterchange::execute): Same. | |
21821 | * gimple-loop-jam.c (bb_prevents_fusion_p): Same. | |
21822 | (unroll_jam_possible_p): Same. | |
21823 | (fuse_loops): Same. | |
21824 | (adjust_unroll_factor): Same. | |
21825 | (tree_loop_unroll_and_jam): Same. | |
21826 | * gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same. | |
21827 | (loop_versioning::expensive_stmt_p): Same. | |
21828 | (loop_versioning::version_for_unity): Same. | |
21829 | (loop_versioning::dump_inner_likelihood): Same. | |
21830 | (loop_versioning::find_per_loop_multiplication): Same. | |
21831 | (loop_versioning::analyze_term_using_scevs): Same. | |
21832 | (loop_versioning::record_address_fragment): Same. | |
21833 | (loop_versioning::analyze_expr): Same. | |
21834 | (loop_versioning::analyze_blocks): Same. | |
21835 | (loop_versioning::prune_conditions): Same. | |
21836 | (loop_versioning::merge_loop_info): Same. | |
21837 | (loop_versioning::add_loop_to_queue): Same. | |
21838 | (loop_versioning::decide_whether_loop_is_versionable): Same. | |
21839 | (loop_versioning::make_versioning_decisions): Same. | |
21840 | (loop_versioning::implement_versioning_decisions): Same. | |
21841 | * gimple-ssa-evrp-analyze.c | |
21842 | (evrp_range_analyzer::record_ranges_from_phis): Same. | |
21843 | * gimple-ssa-store-merging.c (split_store::split_store): Same. | |
21844 | (count_multiple_uses): Same. | |
21845 | (split_group): Same. | |
21846 | (imm_store_chain_info::output_merged_store): Same. | |
21847 | (pass_store_merging::process_store): Same. | |
21848 | * gimple-ssa-strength-reduction.c (slsr_process_phi): Same. | |
21849 | * gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same. | |
21850 | (is_max): Same. | |
21851 | (alloca_call_type): Same. | |
21852 | (pass_walloca::execute): Same. | |
21853 | * gimple-streamer-in.c (input_phi): Same. | |
21854 | (input_gimple_stmt): Same. | |
21855 | * gimple-streamer.h: Same. | |
21856 | * godump.c (go_force_record_alignment): Same. | |
21857 | (go_format_type): Same. | |
21858 | (go_output_type): Same. | |
21859 | (go_output_fndecl): Same. | |
21860 | (go_output_typedef): Same. | |
21861 | (keyword_hash_init): Same. | |
21862 | (find_dummy_types): Same. | |
21863 | * graph.c (draw_cfg_nodes_no_loops): Same. | |
21864 | (draw_cfg_nodes_for_loop): Same. | |
21865 | * hard-reg-set.h (hard_reg_set_iter_next): Same. | |
21866 | * hsa-brig.c: Same. | |
21867 | * hsa-common.h (hsa_internal_fn_hasher::equal): Same. | |
21868 | * hsa-dump.c (dump_hsa_cfun): Same. | |
21869 | * hsa-gen.c (gen_function_def_parameters): Same. | |
21870 | * hsa-regalloc.c (dump_hsa_cfun_regalloc): Same. | |
21871 | * input.c (dump_line_table_statistics): Same. | |
21872 | (test_lexer): Same. | |
21873 | * input.h: Same. | |
21874 | * internal-fn.c (get_multi_vector_move): Same. | |
21875 | (expand_load_lanes_optab_fn): Same. | |
21876 | (expand_GOMP_SIMT_ENTER_ALLOC): Same. | |
21877 | (expand_GOMP_SIMT_EXIT): Same. | |
21878 | (expand_GOMP_SIMT_LAST_LANE): Same. | |
21879 | (expand_GOMP_SIMT_ORDERED_PRED): Same. | |
21880 | (expand_GOMP_SIMT_VOTE_ANY): Same. | |
21881 | (expand_GOMP_SIMT_XCHG_BFLY): Same. | |
21882 | (expand_GOMP_SIMT_XCHG_IDX): Same. | |
21883 | (expand_addsub_overflow): Same. | |
21884 | (expand_neg_overflow): Same. | |
21885 | (expand_mul_overflow): Same. | |
21886 | (expand_call_mem_ref): Same. | |
21887 | (expand_mask_load_optab_fn): Same. | |
21888 | (expand_scatter_store_optab_fn): Same. | |
21889 | (expand_gather_load_optab_fn): Same. | |
21890 | * ipa-cp.c (ipa_get_parm_lattices): Same. | |
21891 | (print_all_lattices): Same. | |
21892 | (ignore_edge_p): Same. | |
21893 | (build_toporder_info): Same. | |
21894 | (free_toporder_info): Same. | |
21895 | (push_node_to_stack): Same. | |
21896 | (ipcp_lattice<valtype>::set_contains_variable): Same. | |
21897 | (set_agg_lats_to_bottom): Same. | |
21898 | (ipcp_bits_lattice::meet_with): Same. | |
21899 | (set_single_call_flag): Same. | |
21900 | (initialize_node_lattices): Same. | |
21901 | (ipa_get_jf_ancestor_result): Same. | |
21902 | (ipcp_verify_propagated_values): Same. | |
21903 | (propagate_scalar_across_jump_function): Same. | |
21904 | (propagate_context_across_jump_function): Same. | |
21905 | (propagate_bits_across_jump_function): Same. | |
21906 | (ipa_vr_operation_and_type_effects): Same. | |
21907 | (propagate_vr_across_jump_function): Same. | |
21908 | (set_check_aggs_by_ref): Same. | |
21909 | (set_chain_of_aglats_contains_variable): Same. | |
21910 | (merge_aggregate_lattices): Same. | |
21911 | (agg_pass_through_permissible_p): Same. | |
21912 | (propagate_aggs_across_jump_function): Same. | |
21913 | (call_passes_through_thunk_p): Same. | |
21914 | (propagate_constants_across_call): Same. | |
21915 | (devirtualization_time_bonus): Same. | |
21916 | (good_cloning_opportunity_p): Same. | |
21917 | (context_independent_aggregate_values): Same. | |
21918 | (gather_context_independent_values): Same. | |
21919 | (perform_estimation_of_a_value): Same. | |
21920 | (estimate_local_effects): Same. | |
21921 | (value_topo_info<valtype>::add_val): Same. | |
21922 | (add_all_node_vals_to_toposort): Same. | |
21923 | (value_topo_info<valtype>::propagate_effects): Same. | |
21924 | (ipcp_propagate_stage): Same. | |
21925 | (ipcp_discover_new_direct_edges): Same. | |
21926 | (same_node_or_its_all_contexts_clone_p): Same. | |
21927 | (cgraph_edge_brings_value_p): Same. | |
21928 | (gather_edges_for_value): Same. | |
21929 | (create_specialized_node): Same. | |
21930 | (find_more_scalar_values_for_callers_subset): Same. | |
21931 | (find_more_contexts_for_caller_subset): Same. | |
21932 | (copy_plats_to_inter): Same. | |
21933 | (intersect_aggregates_with_edge): Same. | |
21934 | (find_aggregate_values_for_callers_subset): Same. | |
21935 | (cgraph_edge_brings_all_agg_vals_for_node): Same. | |
21936 | (decide_about_value): Same. | |
21937 | (decide_whether_version_node): Same. | |
21938 | (spread_undeadness): Same. | |
21939 | (identify_dead_nodes): Same. | |
21940 | (ipcp_store_vr_results): Same. | |
21941 | * ipa-devirt.c (final_warning_record::grow_type_warnings): Same. | |
21942 | * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same. | |
21943 | (redirect_to_unreachable): Same. | |
21944 | (edge_set_predicate): Same. | |
21945 | (evaluate_conditions_for_known_args): Same. | |
21946 | (evaluate_properties_for_edge): Same. | |
21947 | (ipa_fn_summary_t::duplicate): Same. | |
21948 | (ipa_call_summary_t::duplicate): Same. | |
21949 | (dump_ipa_call_summary): Same. | |
21950 | (ipa_dump_fn_summary): Same. | |
21951 | (eliminated_by_inlining_prob): Same. | |
21952 | (set_cond_stmt_execution_predicate): Same. | |
21953 | (set_switch_stmt_execution_predicate): Same. | |
21954 | (compute_bb_predicates): Same. | |
21955 | (will_be_nonconstant_expr_predicate): Same. | |
21956 | (phi_result_unknown_predicate): Same. | |
21957 | (analyze_function_body): Same. | |
21958 | (compute_fn_summary): Same. | |
21959 | (estimate_edge_devirt_benefit): Same. | |
21960 | (estimate_edge_size_and_time): Same. | |
21961 | (estimate_calls_size_and_time): Same. | |
21962 | (estimate_node_size_and_time): Same. | |
21963 | (remap_edge_change_prob): Same. | |
21964 | (remap_edge_summaries): Same. | |
21965 | (ipa_merge_fn_summary_after_inlining): Same. | |
21966 | (ipa_fn_summary_generate): Same. | |
21967 | (inline_read_section): Same. | |
21968 | (ipa_fn_summary_read): Same. | |
21969 | (ipa_fn_summary_write): Same. | |
21970 | * ipa-fnsummary.h: Same. | |
21971 | * ipa-hsa.c (ipa_hsa_read_section): Same. | |
21972 | * ipa-icf-gimple.c (func_checker::compare_loops): Same. | |
21973 | * ipa-icf.c (sem_function::param_used_p): Same. | |
21974 | * ipa-inline-analysis.c (do_estimate_edge_time): Same. | |
21975 | * ipa-inline.c (edge_badness): Same. | |
21976 | (inline_small_functions): Same. | |
21977 | * ipa-polymorphic-call.c | |
21978 | (ipa_polymorphic_call_context::stream_out): Same. | |
21979 | * ipa-predicate.c (predicate::remap_after_duplication): Same. | |
21980 | (predicate::remap_after_inlining): Same. | |
21981 | (predicate::stream_out): Same. | |
21982 | * ipa-predicate.h: Same. | |
21983 | * ipa-profile.c (ipa_profile_read_summary): Same. | |
21984 | * ipa-prop.c (ipa_get_param_decl_index_1): Same. | |
21985 | (count_formal_params): Same. | |
21986 | (ipa_dump_param): Same. | |
21987 | (ipa_alloc_node_params): Same. | |
21988 | (ipa_print_node_jump_functions_for_edge): Same. | |
21989 | (ipa_print_node_jump_functions): Same. | |
21990 | (ipa_load_from_parm_agg): Same. | |
21991 | (get_ancestor_addr_info): Same. | |
21992 | (ipa_compute_jump_functions_for_edge): Same. | |
21993 | (ipa_analyze_virtual_call_uses): Same. | |
21994 | (ipa_analyze_stmt_uses): Same. | |
21995 | (ipa_analyze_params_uses_in_bb): Same. | |
21996 | (update_jump_functions_after_inlining): Same. | |
21997 | (try_decrement_rdesc_refcount): Same. | |
21998 | (ipa_impossible_devirt_target): Same. | |
21999 | (update_indirect_edges_after_inlining): Same. | |
22000 | (combine_controlled_uses_counters): Same. | |
22001 | (ipa_edge_args_sum_t::duplicate): Same. | |
22002 | (ipa_write_jump_function): Same. | |
22003 | (ipa_write_indirect_edge_info): Same. | |
22004 | (ipa_write_node_info): Same. | |
22005 | (ipa_read_edge_info): Same. | |
22006 | (ipa_prop_read_section): Same. | |
22007 | (read_replacements_section): Same. | |
22008 | * ipa-prop.h (ipa_get_param_count): Same. | |
22009 | (ipa_get_param): Same. | |
22010 | (ipa_get_type): Same. | |
22011 | (ipa_get_param_move_cost): Same. | |
22012 | (ipa_set_param_used): Same. | |
22013 | (ipa_get_controlled_uses): Same. | |
22014 | (ipa_set_controlled_uses): Same. | |
22015 | (ipa_get_cs_argument_count): Same. | |
22016 | * ipa-pure-const.c (analyze_function): Same. | |
22017 | (pure_const_read_summary): Same. | |
22018 | * ipa-ref.h: Same. | |
22019 | * ipa-reference.c (ipa_reference_read_optimization_summary): Same. | |
22020 | * ipa-split.c (test_nonssa_use): Same. | |
22021 | (dump_split_point): Same. | |
22022 | (dominated_by_forbidden): Same. | |
22023 | (split_part_set_ssa_name_p): Same. | |
22024 | (find_split_points): Same. | |
22025 | * ira-build.c (finish_loop_tree_nodes): Same. | |
22026 | (low_pressure_loop_node_p): Same. | |
22027 | * ira-color.c (ira_reuse_stack_slot): Same. | |
22028 | * ira-int.h: Same. | |
22029 | * ira.c (setup_reg_equiv): Same. | |
22030 | (print_insn_chain): Same. | |
22031 | (ira): Same. | |
22032 | * loop-doloop.c (doloop_condition_get): Same. | |
22033 | (add_test): Same. | |
22034 | (record_reg_sets): Same. | |
22035 | (doloop_optimize): Same. | |
22036 | * loop-init.c (loop_optimizer_init): Same. | |
22037 | (fix_loop_structure): Same. | |
22038 | * loop-invariant.c (merge_identical_invariants): Same. | |
22039 | (compute_always_reached): Same. | |
22040 | (find_exits): Same. | |
22041 | (may_assign_reg_p): Same. | |
22042 | (find_invariants_bb): Same. | |
22043 | (find_invariants_body): Same. | |
22044 | (replace_uses): Same. | |
22045 | (can_move_invariant_reg): Same. | |
22046 | (free_inv_motion_data): Same. | |
22047 | (move_single_loop_invariants): Same. | |
22048 | (change_pressure): Same. | |
22049 | (mark_ref_regs): Same. | |
22050 | (calculate_loop_reg_pressure): Same. | |
22051 | * loop-iv.c (biv_entry_hasher::equal): Same. | |
22052 | (iv_extend_to_rtx_code): Same. | |
22053 | (check_iv_ref_table_size): Same. | |
22054 | (clear_iv_info): Same. | |
22055 | (latch_dominating_def): Same. | |
22056 | (iv_get_reaching_def): Same. | |
22057 | (iv_constant): Same. | |
22058 | (iv_subreg): Same. | |
22059 | (iv_extend): Same. | |
22060 | (iv_neg): Same. | |
22061 | (iv_add): Same. | |
22062 | (iv_mult): Same. | |
22063 | (get_biv_step): Same. | |
22064 | (record_iv): Same. | |
22065 | (analyzed_for_bivness_p): Same. | |
22066 | (record_biv): Same. | |
22067 | (iv_analyze_biv): Same. | |
22068 | (iv_analyze_expr): Same. | |
22069 | (iv_analyze_def): Same. | |
22070 | (iv_analyze_op): Same. | |
22071 | (iv_analyze): Same. | |
22072 | (iv_analyze_result): Same. | |
22073 | (biv_p): Same. | |
22074 | (eliminate_implied_conditions): Same. | |
22075 | (simplify_using_initial_values): Same. | |
22076 | (shorten_into_mode): Same. | |
22077 | (canonicalize_iv_subregs): Same. | |
22078 | (determine_max_iter): Same. | |
22079 | (check_simple_exit): Same. | |
22080 | (find_simple_exit): Same. | |
22081 | (get_simple_loop_desc): Same. | |
22082 | * loop-unroll.c (report_unroll): Same. | |
22083 | (decide_unrolling): Same. | |
22084 | (unroll_loops): Same. | |
22085 | (loop_exit_at_end_p): Same. | |
22086 | (decide_unroll_constant_iterations): Same. | |
22087 | (unroll_loop_constant_iterations): Same. | |
22088 | (compare_and_jump_seq): Same. | |
22089 | (unroll_loop_runtime_iterations): Same. | |
22090 | (decide_unroll_stupid): Same. | |
22091 | (unroll_loop_stupid): Same. | |
22092 | (referenced_in_one_insn_in_loop_p): Same. | |
22093 | (reset_debug_uses_in_loop): Same. | |
22094 | (analyze_iv_to_split_insn): Same. | |
22095 | * lra-eliminations.c (lra_debug_elim_table): Same. | |
22096 | (setup_can_eliminate): Same. | |
22097 | (form_sum): Same. | |
22098 | (lra_get_elimination_hard_regno): Same. | |
22099 | (lra_eliminate_regs_1): Same. | |
22100 | (eliminate_regs_in_insn): Same. | |
22101 | (update_reg_eliminate): Same. | |
22102 | (init_elimination): Same. | |
22103 | (lra_eliminate): Same. | |
22104 | * lra-int.h: Same. | |
22105 | * lra-lives.c (initiate_live_solver): Same. | |
22106 | * lra-remat.c (create_remat_bb_data): Same. | |
22107 | * lra-spills.c (lra_spill): Same. | |
22108 | * lra.c (lra_set_insn_recog_data): Same. | |
22109 | (lra_set_used_insn_alternative_by_uid): Same. | |
22110 | (init_reg_info): Same. | |
22111 | (expand_reg_info): Same. | |
22112 | * lto-cgraph.c (output_symtab): Same. | |
22113 | (read_identifier): Same. | |
22114 | (get_alias_symbol): Same. | |
22115 | (input_node): Same. | |
22116 | (input_varpool_node): Same. | |
22117 | (input_ref): Same. | |
22118 | (input_edge): Same. | |
22119 | (input_cgraph_1): Same. | |
22120 | (input_refs): Same. | |
22121 | (input_symtab): Same. | |
22122 | (input_offload_tables): Same. | |
22123 | (output_cgraph_opt_summary): Same. | |
22124 | (input_edge_opt_summary): Same. | |
22125 | (input_cgraph_opt_section): Same. | |
22126 | * lto-section-in.c (lto_free_raw_section_data): Same. | |
22127 | (lto_create_simple_input_block): Same. | |
22128 | (lto_free_function_in_decl_state_for_node): Same. | |
22129 | * lto-streamer-in.c (lto_tag_check_set): Same. | |
22130 | (lto_location_cache::revert_location_cache): Same. | |
22131 | (lto_location_cache::input_location): Same. | |
22132 | (lto_input_location): Same. | |
22133 | (stream_input_location_now): Same. | |
22134 | (lto_input_tree_ref): Same. | |
22135 | (lto_input_eh_catch_list): Same. | |
22136 | (input_eh_region): Same. | |
22137 | (lto_init_eh): Same. | |
22138 | (make_new_block): Same. | |
22139 | (input_cfg): Same. | |
22140 | (fixup_call_stmt_edges): Same. | |
22141 | (input_struct_function_base): Same. | |
22142 | (input_function): Same. | |
22143 | (lto_read_body_or_constructor): Same. | |
22144 | (lto_read_tree_1): Same. | |
22145 | (lto_read_tree): Same. | |
22146 | (lto_input_scc): Same. | |
22147 | (lto_input_tree_1): Same. | |
22148 | (lto_input_toplevel_asms): Same. | |
22149 | (lto_input_mode_table): Same. | |
22150 | (lto_reader_init): Same. | |
22151 | (lto_data_in_create): Same. | |
22152 | * lto-streamer-out.c (output_cfg): Same. | |
22153 | * lto-streamer.h: Same. | |
22154 | * modulo-sched.c (duplicate_insns_of_cycles): Same. | |
22155 | (generate_prolog_epilog): Same. | |
22156 | (mark_loop_unsched): Same. | |
22157 | (dump_insn_location): Same. | |
22158 | (loop_canon_p): Same. | |
22159 | (sms_schedule): Same. | |
22160 | * omp-expand.c (expand_omp_for_ordered_loops): Same. | |
22161 | (expand_omp_for_generic): Same. | |
22162 | (expand_omp_for_static_nochunk): Same. | |
22163 | (expand_omp_for_static_chunk): Same. | |
22164 | (expand_omp_simd): Same. | |
22165 | (expand_omp_taskloop_for_inner): Same. | |
22166 | (expand_oacc_for): Same. | |
22167 | (expand_omp_atomic_pipeline): Same. | |
22168 | (mark_loops_in_oacc_kernels_region): Same. | |
22169 | * omp-offload.c (oacc_xform_loop): Same. | |
22170 | * omp-simd-clone.c (simd_clone_adjust): Same. | |
22171 | * optabs-query.c (get_traditional_extraction_insn): Same. | |
22172 | * optabs.c (expand_vector_broadcast): Same. | |
22173 | (expand_binop_directly): Same. | |
22174 | (expand_twoval_unop): Same. | |
22175 | (expand_twoval_binop): Same. | |
22176 | (expand_unop_direct): Same. | |
22177 | (emit_indirect_jump): Same. | |
22178 | (emit_conditional_move): Same. | |
22179 | (emit_conditional_neg_or_complement): Same. | |
22180 | (emit_conditional_add): Same. | |
22181 | (vector_compare_rtx): Same. | |
22182 | (expand_vec_perm_1): Same. | |
22183 | (expand_vec_perm_const): Same. | |
22184 | (expand_vec_cond_expr): Same. | |
22185 | (expand_vec_series_expr): Same. | |
22186 | (maybe_emit_atomic_exchange): Same. | |
22187 | (maybe_emit_sync_lock_test_and_set): Same. | |
22188 | (expand_atomic_compare_and_swap): Same. | |
22189 | (expand_atomic_load): Same. | |
22190 | (expand_atomic_store): Same. | |
22191 | (maybe_emit_op): Same. | |
22192 | (valid_multiword_target_p): Same. | |
22193 | (create_integer_operand): Same. | |
22194 | (maybe_legitimize_operand_same_code): Same. | |
22195 | (maybe_legitimize_operand): Same. | |
22196 | (create_convert_operand_from_type): Same. | |
22197 | (can_reuse_operands_p): Same. | |
22198 | (maybe_legitimize_operands): Same. | |
22199 | (maybe_gen_insn): Same. | |
22200 | (maybe_expand_insn): Same. | |
22201 | (maybe_expand_jump_insn): Same. | |
22202 | (expand_insn): Same. | |
22203 | * optabs.h (create_expand_operand): Same. | |
22204 | (create_fixed_operand): Same. | |
22205 | (create_output_operand): Same. | |
22206 | (create_input_operand): Same. | |
22207 | (create_convert_operand_to): Same. | |
22208 | (create_convert_operand_from): Same. | |
22209 | * optinfo.h: Same. | |
22210 | * poly-int.h: Same. | |
22211 | * predict.c (optimize_insn_for_speed_p): Same. | |
22212 | (optimize_loop_for_size_p): Same. | |
22213 | (optimize_loop_for_speed_p): Same. | |
22214 | (optimize_loop_nest_for_speed_p): Same. | |
22215 | (get_base_value): Same. | |
22216 | (predicted_by_loop_heuristics_p): Same. | |
22217 | (predict_extra_loop_exits): Same. | |
22218 | (predict_loops): Same. | |
22219 | (predict_paths_for_bb): Same. | |
22220 | (predict_paths_leading_to): Same. | |
22221 | (propagate_freq): Same. | |
22222 | (pass_profile::execute): Same. | |
22223 | * predict.h: Same. | |
22224 | * profile-count.c (profile_count::differs_from_p): Same. | |
22225 | (profile_probability::differs_lot_from_p): Same. | |
22226 | * profile-count.h: Same. | |
22227 | * profile.c (branch_prob): Same. | |
22228 | * regrename.c (free_chain_data): Same. | |
22229 | (mark_conflict): Same. | |
22230 | (create_new_chain): Same. | |
22231 | (merge_overlapping_regs): Same. | |
22232 | (init_rename_info): Same. | |
22233 | (merge_chains): Same. | |
22234 | (regrename_analyze): Same. | |
22235 | (regrename_do_replace): Same. | |
22236 | (scan_rtx_reg): Same. | |
22237 | (record_out_operands): Same. | |
22238 | (build_def_use): Same. | |
22239 | * regrename.h: Same. | |
22240 | * reload.h: Same. | |
22241 | * reload1.c (init_reload): Same. | |
22242 | (maybe_fix_stack_asms): Same. | |
22243 | (copy_reloads): Same. | |
22244 | (count_pseudo): Same. | |
22245 | (count_spilled_pseudo): Same. | |
22246 | (find_reg): Same. | |
22247 | (find_reload_regs): Same. | |
22248 | (select_reload_regs): Same. | |
22249 | (spill_hard_reg): Same. | |
22250 | (fixup_eh_region_note): Same. | |
22251 | (set_reload_reg): Same. | |
22252 | (allocate_reload_reg): Same. | |
22253 | (compute_reload_subreg_offset): Same. | |
22254 | (reload_adjust_reg_for_icode): Same. | |
22255 | (emit_input_reload_insns): Same. | |
22256 | (emit_output_reload_insns): Same. | |
22257 | (do_input_reload): Same. | |
22258 | (inherit_piecemeal_p): Same. | |
22259 | * rtl.h: Same. | |
22260 | * sanopt.c (maybe_get_dominating_check): Same. | |
22261 | (maybe_optimize_ubsan_ptr_ifn): Same. | |
22262 | (can_remove_asan_check): Same. | |
22263 | (maybe_optimize_asan_check_ifn): Same. | |
22264 | (sanopt_optimize_walker): Same. | |
22265 | * sched-deps.c (add_dependence_list): Same. | |
22266 | (chain_to_prev_insn): Same. | |
22267 | (add_insn_mem_dependence): Same. | |
22268 | (create_insn_reg_set): Same. | |
22269 | (maybe_extend_reg_info_p): Same. | |
22270 | (sched_analyze_reg): Same. | |
22271 | (sched_analyze_1): Same. | |
22272 | (get_implicit_reg_pending_clobbers): Same. | |
22273 | (chain_to_prev_insn_p): Same. | |
22274 | (deps_analyze_insn): Same. | |
22275 | (deps_start_bb): Same. | |
22276 | (sched_free_deps): Same. | |
22277 | (init_deps): Same. | |
22278 | (init_deps_reg_last): Same. | |
22279 | (free_deps): Same. | |
22280 | * sched-ebb.c: Same. | |
22281 | * sched-int.h: Same. | |
22282 | * sched-rgn.c (add_branch_dependences): Same. | |
22283 | (concat_insn_mem_list): Same. | |
22284 | (deps_join): Same. | |
22285 | (sched_rgn_compute_dependencies): Same. | |
22286 | * sel-sched-ir.c (reset_target_context): Same. | |
22287 | (copy_deps_context): Same. | |
22288 | (init_id_from_df): Same. | |
22289 | (has_dependence_p): Same. | |
22290 | (change_loops_latches): Same. | |
22291 | (bb_top_order_comparator): Same. | |
22292 | (make_region_from_loop_preheader): Same. | |
22293 | (sel_init_pipelining): Same. | |
22294 | (get_loop_nest_for_rgn): Same. | |
22295 | (make_regions_from_the_rest): Same. | |
22296 | (sel_is_loop_preheader_p): Same. | |
22297 | * sel-sched-ir.h (inner_loop_header_p): Same. | |
22298 | (get_all_loop_exits): Same. | |
22299 | * selftest.h: Same. | |
22300 | * sese.c (sese_build_liveouts): Same. | |
22301 | (sese_insert_phis_for_liveouts): Same. | |
22302 | * sese.h (defined_in_sese_p): Same. | |
22303 | * sreal.c (sreal::stream_out): Same. | |
22304 | * sreal.h: Same. | |
22305 | * streamer-hooks.h: Same. | |
22306 | * target-globals.c (save_target_globals): Same. | |
22307 | * target-globals.h: Same. | |
22308 | * target.def: Same. | |
22309 | * target.h: Same. | |
22310 | * targhooks.c (default_has_ifunc_p): Same. | |
22311 | (default_empty_mask_is_expensive): Same. | |
22312 | (default_init_cost): Same. | |
22313 | * targhooks.h: Same. | |
22314 | * toplev.c: Same. | |
22315 | * tree-affine.c (aff_combination_mult): Same. | |
22316 | (aff_combination_expand): Same. | |
22317 | (aff_combination_constant_multiple_p): Same. | |
22318 | * tree-affine.h: Same. | |
22319 | * tree-cfg.c (build_gimple_cfg): Same. | |
22320 | (replace_loop_annotate_in_block): Same. | |
22321 | (replace_uses_by): Same. | |
22322 | (remove_bb): Same. | |
22323 | (dump_cfg_stats): Same. | |
22324 | (gimple_duplicate_sese_region): Same. | |
22325 | (gimple_duplicate_sese_tail): Same. | |
22326 | (move_block_to_fn): Same. | |
22327 | (replace_block_vars_by_duplicates): Same. | |
22328 | (move_sese_region_to_fn): Same. | |
22329 | (print_loops_bb): Same. | |
22330 | (print_loop): Same. | |
22331 | (print_loops): Same. | |
22332 | (debug): Same. | |
22333 | (debug_loops): Same. | |
22334 | * tree-cfg.h: Same. | |
22335 | * tree-chrec.c (chrec_fold_plus_poly_poly): Same. | |
22336 | (chrec_fold_multiply_poly_poly): Same. | |
22337 | (chrec_evaluate): Same. | |
22338 | (chrec_component_in_loop_num): Same. | |
22339 | (reset_evolution_in_loop): Same. | |
22340 | (is_multivariate_chrec): Same. | |
22341 | (chrec_contains_symbols): Same. | |
22342 | (nb_vars_in_chrec): Same. | |
22343 | (chrec_convert_1): Same. | |
22344 | (chrec_convert_aggressive): Same. | |
22345 | * tree-chrec.h: Same. | |
22346 | * tree-core.h: Same. | |
22347 | * tree-data-ref.c (dump_data_dependence_relation): Same. | |
22348 | (canonicalize_base_object_address): Same. | |
22349 | (data_ref_compare_tree): Same. | |
22350 | (prune_runtime_alias_test_list): Same. | |
22351 | (get_segment_min_max): Same. | |
22352 | (create_intersect_range_checks): Same. | |
22353 | (conflict_fn_no_dependence): Same. | |
22354 | (object_address_invariant_in_loop_p): Same. | |
22355 | (analyze_ziv_subscript): Same. | |
22356 | (analyze_siv_subscript_cst_affine): Same. | |
22357 | (analyze_miv_subscript): Same. | |
22358 | (analyze_overlapping_iterations): Same. | |
22359 | (build_classic_dist_vector_1): Same. | |
22360 | (add_other_self_distances): Same. | |
22361 | (same_access_functions): Same. | |
22362 | (build_classic_dir_vector): Same. | |
22363 | (subscript_dependence_tester_1): Same. | |
22364 | (subscript_dependence_tester): Same. | |
22365 | (access_functions_are_affine_or_constant_p): Same. | |
22366 | (get_references_in_stmt): Same. | |
22367 | (loop_nest_has_data_refs): Same. | |
22368 | (graphite_find_data_references_in_stmt): Same. | |
22369 | (find_data_references_in_bb): Same. | |
22370 | (get_base_for_alignment): Same. | |
22371 | (find_loop_nest_1): Same. | |
22372 | (find_loop_nest): Same. | |
22373 | * tree-data-ref.h (dr_alignment): Same. | |
22374 | (ddr_dependence_level): Same. | |
22375 | * tree-if-conv.c (fold_build_cond_expr): Same. | |
22376 | (add_to_predicate_list): Same. | |
22377 | (add_to_dst_predicate_list): Same. | |
22378 | (phi_convertible_by_degenerating_args): Same. | |
22379 | (idx_within_array_bound): Same. | |
22380 | (all_preds_critical_p): Same. | |
22381 | (pred_blocks_visited_p): Same. | |
22382 | (predicate_bbs): Same. | |
22383 | (build_region): Same. | |
22384 | (if_convertible_loop_p_1): Same. | |
22385 | (is_cond_scalar_reduction): Same. | |
22386 | (predicate_scalar_phi): Same. | |
22387 | (remove_conditions_and_labels): Same. | |
22388 | (combine_blocks): Same. | |
22389 | (version_loop_for_if_conversion): Same. | |
22390 | (versionable_outer_loop_p): Same. | |
22391 | (ifcvt_local_dce): Same. | |
22392 | (tree_if_conversion): Same. | |
22393 | (pass_if_conversion::gate): Same. | |
22394 | * tree-if-conv.h: Same. | |
22395 | * tree-inline.c (maybe_move_debug_stmts_to_successors): Same. | |
22396 | * tree-loop-distribution.c (bb_top_order_cmp): Same. | |
22397 | (free_rdg): Same. | |
22398 | (stmt_has_scalar_dependences_outside_loop): Same. | |
22399 | (copy_loop_before): Same. | |
22400 | (create_bb_after_loop): Same. | |
22401 | (const_with_all_bytes_same): Same. | |
22402 | (generate_memset_builtin): Same. | |
22403 | (generate_memcpy_builtin): Same. | |
22404 | (destroy_loop): Same. | |
22405 | (build_rdg_partition_for_vertex): Same. | |
22406 | (compute_access_range): Same. | |
22407 | (data_ref_segment_size): Same. | |
22408 | (latch_dominated_by_data_ref): Same. | |
22409 | (compute_alias_check_pairs): Same. | |
22410 | (fuse_memset_builtins): Same. | |
22411 | (finalize_partitions): Same. | |
22412 | (find_seed_stmts_for_distribution): Same. | |
22413 | (prepare_perfect_loop_nest): Same. | |
22414 | * tree-parloops.c (lambda_transform_legal_p): Same. | |
22415 | (loop_parallel_p): Same. | |
22416 | (reduc_stmt_res): Same. | |
22417 | (add_field_for_name): Same. | |
22418 | (create_call_for_reduction_1): Same. | |
22419 | (replace_uses_in_bb_by): Same. | |
22420 | (transform_to_exit_first_loop_alt): Same. | |
22421 | (try_transform_to_exit_first_loop_alt): Same. | |
22422 | (transform_to_exit_first_loop): Same. | |
22423 | (num_phis): Same. | |
22424 | (gen_parallel_loop): Same. | |
22425 | (gather_scalar_reductions): Same. | |
22426 | (get_omp_data_i_param): Same. | |
22427 | (try_create_reduction_list): Same. | |
22428 | (oacc_entry_exit_single_gang): Same. | |
22429 | (parallelize_loops): Same. | |
22430 | * tree-pass.h: Same. | |
22431 | * tree-predcom.c (determine_offset): Same. | |
22432 | (last_always_executed_block): Same. | |
22433 | (split_data_refs_to_components): Same. | |
22434 | (suitable_component_p): Same. | |
22435 | (valid_initializer_p): Same. | |
22436 | (find_looparound_phi): Same. | |
22437 | (insert_looparound_copy): Same. | |
22438 | (add_looparound_copies): Same. | |
22439 | (determine_roots_comp): Same. | |
22440 | (predcom_tmp_var): Same. | |
22441 | (initialize_root_vars): Same. | |
22442 | (initialize_root_vars_store_elim_1): Same. | |
22443 | (initialize_root_vars_store_elim_2): Same. | |
22444 | (finalize_eliminated_stores): Same. | |
22445 | (initialize_root_vars_lm): Same. | |
22446 | (remove_stmt): Same. | |
22447 | (determine_unroll_factor): Same. | |
22448 | (execute_pred_commoning_cbck): Same. | |
22449 | (base_names_in_chain_on): Same. | |
22450 | (combine_chains): Same. | |
22451 | (pcom_stmt_dominates_stmt_p): Same. | |
22452 | (try_combine_chains): Same. | |
22453 | (prepare_initializers_chain_store_elim): Same. | |
22454 | (prepare_initializers_chain): Same. | |
22455 | (prepare_initializers): Same. | |
22456 | (prepare_finalizers_chain): Same. | |
22457 | (prepare_finalizers): Same. | |
22458 | (insert_init_seqs): Same. | |
22459 | * tree-scalar-evolution.c (loop_phi_node_p): Same. | |
22460 | (compute_overall_effect_of_inner_loop): Same. | |
22461 | (add_to_evolution_1): Same. | |
22462 | (add_to_evolution): Same. | |
22463 | (follow_ssa_edge_binary): Same. | |
22464 | (follow_ssa_edge_expr): Same. | |
22465 | (backedge_phi_arg_p): Same. | |
22466 | (follow_ssa_edge_in_condition_phi_branch): Same. | |
22467 | (follow_ssa_edge_in_condition_phi): Same. | |
22468 | (follow_ssa_edge_inner_loop_phi): Same. | |
22469 | (follow_ssa_edge): Same. | |
22470 | (analyze_evolution_in_loop): Same. | |
22471 | (analyze_initial_condition): Same. | |
22472 | (interpret_loop_phi): Same. | |
22473 | (interpret_condition_phi): Same. | |
22474 | (interpret_rhs_expr): Same. | |
22475 | (interpret_expr): Same. | |
22476 | (interpret_gimple_assign): Same. | |
22477 | (analyze_scalar_evolution_1): Same. | |
22478 | (analyze_scalar_evolution): Same. | |
22479 | (analyze_scalar_evolution_for_address_of): Same. | |
22480 | (get_instantiated_value_entry): Same. | |
22481 | (loop_closed_phi_def): Same. | |
22482 | (instantiate_scev_name): Same. | |
22483 | (instantiate_scev_poly): Same. | |
22484 | (instantiate_scev_binary): Same. | |
22485 | (instantiate_scev_convert): Same. | |
22486 | (instantiate_scev_not): Same. | |
22487 | (instantiate_scev_r): Same. | |
22488 | (instantiate_scev): Same. | |
22489 | (resolve_mixers): Same. | |
22490 | (initialize_scalar_evolutions_analyzer): Same. | |
22491 | (scev_reset_htab): Same. | |
22492 | (scev_reset): Same. | |
22493 | (derive_simple_iv_with_niters): Same. | |
22494 | (simple_iv_with_niters): Same. | |
22495 | (expression_expensive_p): Same. | |
22496 | (final_value_replacement_loop): Same. | |
22497 | * tree-scalar-evolution.h (block_before_loop): Same. | |
22498 | * tree-ssa-address.h: Same. | |
22499 | * tree-ssa-dce.c (find_obviously_necessary_stmts): Same. | |
22500 | * tree-ssa-dom.c (edge_info::record_simple_equiv): Same. | |
22501 | (record_edge_info): Same. | |
22502 | * tree-ssa-live.c (var_map_base_fini): Same. | |
22503 | (remove_unused_locals): Same. | |
22504 | * tree-ssa-live.h: Same. | |
22505 | * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same. | |
22506 | (pass_ch_vect::execute): Same. | |
22507 | (pass_ch::process_loop_p): Same. | |
22508 | * tree-ssa-loop-im.c (mem_ref_hasher::hash): Same. | |
22509 | (movement_possibility): Same. | |
22510 | (outermost_invariant_loop): Same. | |
22511 | (stmt_cost): Same. | |
22512 | (determine_max_movement): Same. | |
22513 | (invariantness_dom_walker::before_dom_children): Same. | |
22514 | (move_computations): Same. | |
22515 | (may_move_till): Same. | |
22516 | (force_move_till_op): Same. | |
22517 | (force_move_till): Same. | |
22518 | (memref_free): Same. | |
22519 | (record_mem_ref_loc): Same. | |
22520 | (set_ref_stored_in_loop): Same. | |
22521 | (mark_ref_stored): Same. | |
22522 | (sort_bbs_in_loop_postorder_cmp): Same. | |
22523 | (sort_locs_in_loop_postorder_cmp): Same. | |
22524 | (analyze_memory_references): Same. | |
22525 | (mem_refs_may_alias_p): Same. | |
22526 | (find_ref_loc_in_loop_cmp): Same. | |
22527 | (rewrite_mem_ref_loc::operator): Same. | |
22528 | (first_mem_ref_loc_1::operator): Same. | |
22529 | (sm_set_flag_if_changed::operator): Same. | |
22530 | (execute_sm_if_changed_flag_set): Same. | |
22531 | (execute_sm): Same. | |
22532 | (hoist_memory_references): Same. | |
22533 | (ref_always_accessed::operator): Same. | |
22534 | (refs_independent_p): Same. | |
22535 | (record_dep_loop): Same. | |
22536 | (ref_indep_loop_p_1): Same. | |
22537 | (ref_indep_loop_p): Same. | |
22538 | (can_sm_ref_p): Same. | |
22539 | (find_refs_for_sm): Same. | |
22540 | (loop_suitable_for_sm): Same. | |
22541 | (store_motion_loop): Same. | |
22542 | (store_motion): Same. | |
22543 | (fill_always_executed_in): Same. | |
22544 | * tree-ssa-loop-ivcanon.c (constant_after_peeling): Same. | |
22545 | (estimated_unrolled_size): Same. | |
22546 | (loop_edge_to_cancel): Same. | |
22547 | (remove_exits_and_undefined_stmts): Same. | |
22548 | (remove_redundant_iv_tests): Same. | |
22549 | (unloop_loops): Same. | |
22550 | (estimated_peeled_sequence_size): Same. | |
22551 | (try_peel_loop): Same. | |
22552 | (canonicalize_loop_induction_variables): Same. | |
22553 | (canonicalize_induction_variables): Same. | |
22554 | * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same. | |
22555 | (name_info): Same. | |
22556 | (stmt_after_inc_pos): Same. | |
22557 | (contains_abnormal_ssa_name_p): Same. | |
22558 | (niter_for_exit): Same. | |
22559 | (find_bivs): Same. | |
22560 | (mark_bivs): Same. | |
22561 | (find_givs_in_bb): Same. | |
22562 | (find_induction_variables): Same. | |
22563 | (find_interesting_uses_cond): Same. | |
22564 | (outermost_invariant_loop_for_expr): Same. | |
22565 | (idx_find_step): Same. | |
22566 | (add_candidate_1): Same. | |
22567 | (add_iv_candidate_derived_from_uses): Same. | |
22568 | (alloc_use_cost_map): Same. | |
22569 | (prepare_decl_rtl): Same. | |
22570 | (generic_predict_doloop_p): Same. | |
22571 | (computation_cost): Same. | |
22572 | (determine_common_wider_type): Same. | |
22573 | (get_computation_aff_1): Same. | |
22574 | (get_use_type): Same. | |
22575 | (determine_group_iv_cost_address): Same. | |
22576 | (iv_period): Same. | |
22577 | (difference_cannot_overflow_p): Same. | |
22578 | (may_eliminate_iv): Same. | |
22579 | (determine_set_costs): Same. | |
22580 | (cheaper_cost_pair): Same. | |
22581 | (compare_cost_pair): Same. | |
22582 | (iv_ca_cand_for_group): Same. | |
22583 | (iv_ca_recount_cost): Same. | |
22584 | (iv_ca_set_remove_invs): Same. | |
22585 | (iv_ca_set_no_cp): Same. | |
22586 | (iv_ca_set_add_invs): Same. | |
22587 | (iv_ca_set_cp): Same. | |
22588 | (iv_ca_add_group): Same. | |
22589 | (iv_ca_cost): Same. | |
22590 | (iv_ca_compare_deps): Same. | |
22591 | (iv_ca_delta_reverse): Same. | |
22592 | (iv_ca_delta_commit): Same. | |
22593 | (iv_ca_cand_used_p): Same. | |
22594 | (iv_ca_delta_free): Same. | |
22595 | (iv_ca_new): Same. | |
22596 | (iv_ca_free): Same. | |
22597 | (iv_ca_dump): Same. | |
22598 | (iv_ca_extend): Same. | |
22599 | (iv_ca_narrow): Same. | |
22600 | (iv_ca_prune): Same. | |
22601 | (cheaper_cost_with_cand): Same. | |
22602 | (iv_ca_replace): Same. | |
22603 | (try_add_cand_for): Same. | |
22604 | (get_initial_solution): Same. | |
22605 | (try_improve_iv_set): Same. | |
22606 | (find_optimal_iv_set_1): Same. | |
22607 | (create_new_iv): Same. | |
22608 | (rewrite_use_compare): Same. | |
22609 | (remove_unused_ivs): Same. | |
22610 | (determine_scaling_factor): Same. | |
22611 | * tree-ssa-loop-ivopts.h: Same. | |
22612 | * tree-ssa-loop-manip.c (create_iv): Same. | |
22613 | (compute_live_loop_exits): Same. | |
22614 | (add_exit_phi): Same. | |
22615 | (add_exit_phis): Same. | |
22616 | (find_uses_to_rename_use): Same. | |
22617 | (find_uses_to_rename_def): Same. | |
22618 | (find_uses_to_rename_in_loop): Same. | |
22619 | (rewrite_into_loop_closed_ssa): Same. | |
22620 | (check_loop_closed_ssa_bb): Same. | |
22621 | (split_loop_exit_edge): Same. | |
22622 | (ip_end_pos): Same. | |
22623 | (ip_normal_pos): Same. | |
22624 | (copy_phi_node_args): Same. | |
22625 | (gimple_duplicate_loop_to_header_edge): Same. | |
22626 | (can_unroll_loop_p): Same. | |
22627 | (determine_exit_conditions): Same. | |
22628 | (scale_dominated_blocks_in_loop): Same. | |
22629 | (niter_for_unrolled_loop): Same. | |
22630 | (tree_transform_and_unroll_loop): Same. | |
22631 | (rewrite_all_phi_nodes_with_iv): Same. | |
22632 | * tree-ssa-loop-manip.h: Same. | |
22633 | * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same. | |
22634 | (number_of_iterations_ne): Same. | |
22635 | (assert_no_overflow_lt): Same. | |
22636 | (assert_loop_rolls_lt): Same. | |
22637 | (number_of_iterations_lt): Same. | |
22638 | (adjust_cond_for_loop_until_wrap): Same. | |
22639 | (tree_simplify_using_condition): Same. | |
22640 | (simplify_using_initial_conditions): Same. | |
22641 | (simplify_using_outer_evolutions): Same. | |
22642 | (loop_only_exit_p): Same. | |
22643 | (ssa_defined_by_minus_one_stmt_p): Same. | |
22644 | (number_of_iterations_popcount): Same. | |
22645 | (number_of_iterations_exit): Same. | |
22646 | (find_loop_niter): Same. | |
22647 | (finite_loop_p): Same. | |
22648 | (chain_of_csts_start): Same. | |
22649 | (get_val_for): Same. | |
22650 | (loop_niter_by_eval): Same. | |
22651 | (derive_constant_upper_bound_ops): Same. | |
22652 | (do_warn_aggressive_loop_optimizations): Same. | |
22653 | (record_estimate): Same. | |
22654 | (get_cst_init_from_scev): Same. | |
22655 | (record_nonwrapping_iv): Same. | |
22656 | (idx_infer_loop_bounds): Same. | |
22657 | (infer_loop_bounds_from_ref): Same. | |
22658 | (infer_loop_bounds_from_array): Same. | |
22659 | (infer_loop_bounds_from_pointer_arith): Same. | |
22660 | (infer_loop_bounds_from_signedness): Same. | |
22661 | (bound_index): Same. | |
22662 | (discover_iteration_bound_by_body_walk): Same. | |
22663 | (maybe_lower_iteration_bound): Same. | |
22664 | (estimate_numbers_of_iterations): Same. | |
22665 | (estimated_loop_iterations): Same. | |
22666 | (estimated_loop_iterations_int): Same. | |
22667 | (max_loop_iterations): Same. | |
22668 | (max_loop_iterations_int): Same. | |
22669 | (likely_max_loop_iterations): Same. | |
22670 | (likely_max_loop_iterations_int): Same. | |
22671 | (estimated_stmt_executions_int): Same. | |
22672 | (max_stmt_executions): Same. | |
22673 | (likely_max_stmt_executions): Same. | |
22674 | (estimated_stmt_executions): Same. | |
22675 | (stmt_dominates_stmt_p): Same. | |
22676 | (nowrap_type_p): Same. | |
22677 | (loop_exits_before_overflow): Same. | |
22678 | (scev_var_range_cant_overflow): Same. | |
22679 | (scev_probably_wraps_p): Same. | |
22680 | (free_numbers_of_iterations_estimates): Same. | |
22681 | * tree-ssa-loop-niter.h: Same. | |
22682 | * tree-ssa-loop-prefetch.c (release_mem_refs): Same. | |
22683 | (idx_analyze_ref): Same. | |
22684 | (analyze_ref): Same. | |
22685 | (gather_memory_references_ref): Same. | |
22686 | (mark_nontemporal_store): Same. | |
22687 | (emit_mfence_after_loop): Same. | |
22688 | (may_use_storent_in_loop_p): Same. | |
22689 | (mark_nontemporal_stores): Same. | |
22690 | (should_unroll_loop_p): Same. | |
22691 | (volume_of_dist_vector): Same. | |
22692 | (add_subscript_strides): Same. | |
22693 | (self_reuse_distance): Same. | |
22694 | (insn_to_prefetch_ratio_too_small_p): Same. | |
22695 | * tree-ssa-loop-split.c (split_at_bb_p): Same. | |
22696 | (patch_loop_exit): Same. | |
22697 | (find_or_create_guard_phi): Same. | |
22698 | (easy_exit_values): Same. | |
22699 | (connect_loop_phis): Same. | |
22700 | (connect_loops): Same. | |
22701 | (compute_new_first_bound): Same. | |
22702 | (split_loop): Same. | |
22703 | (tree_ssa_split_loops): Same. | |
22704 | * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same. | |
22705 | (is_maybe_undefined): Same. | |
22706 | (tree_may_unswitch_on): Same. | |
22707 | (simplify_using_entry_checks): Same. | |
22708 | (tree_unswitch_single_loop): Same. | |
22709 | (tree_unswitch_loop): Same. | |
22710 | (tree_unswitch_outer_loop): Same. | |
22711 | (empty_bb_without_guard_p): Same. | |
22712 | (used_outside_loop_p): Same. | |
22713 | (get_vop_from_header): Same. | |
22714 | (hoist_guard): Same. | |
22715 | * tree-ssa-loop.c (gate_oacc_kernels): Same. | |
22716 | (get_lsm_tmp_name): Same. | |
22717 | * tree-ssa-loop.h: Same. | |
22718 | * tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same. | |
22719 | (build_and_add_sum): Same. | |
22720 | (no_side_effect_bb): Same. | |
22721 | (get_ops): Same. | |
22722 | (linearize_expr): Same. | |
22723 | (should_break_up_subtract): Same. | |
22724 | (linearize_expr_tree): Same. | |
22725 | * tree-ssa-scopedtables.c: Same. | |
22726 | * tree-ssa-scopedtables.h: Same. | |
22727 | * tree-ssa-structalias.c (condense_visit): Same. | |
22728 | (label_visit): Same. | |
22729 | (dump_pred_graph): Same. | |
22730 | (perform_var_substitution): Same. | |
22731 | (move_complex_constraints): Same. | |
22732 | (remove_preds_and_fake_succs): Same. | |
22733 | * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same. | |
22734 | (determine_bb_domination_status): Same. | |
22735 | (duplicate_thread_path): Same. | |
22736 | (thread_through_all_blocks): Same. | |
22737 | * tree-ssa-threadupdate.h: Same. | |
22738 | * tree-streamer-in.c (streamer_read_string_cst): Same. | |
22739 | (input_identifier): Same. | |
22740 | (unpack_ts_type_common_value_fields): Same. | |
22741 | (unpack_ts_block_value_fields): Same. | |
22742 | (unpack_ts_translation_unit_decl_value_fields): Same. | |
22743 | (unpack_ts_omp_clause_value_fields): Same. | |
22744 | (streamer_read_tree_bitfields): Same. | |
22745 | (streamer_alloc_tree): Same. | |
22746 | (lto_input_ts_common_tree_pointers): Same. | |
22747 | (lto_input_ts_vector_tree_pointers): Same. | |
22748 | (lto_input_ts_poly_tree_pointers): Same. | |
22749 | (lto_input_ts_complex_tree_pointers): Same. | |
22750 | (lto_input_ts_decl_minimal_tree_pointers): Same. | |
22751 | (lto_input_ts_decl_common_tree_pointers): Same. | |
22752 | (lto_input_ts_decl_non_common_tree_pointers): Same. | |
22753 | (lto_input_ts_decl_with_vis_tree_pointers): Same. | |
22754 | (lto_input_ts_field_decl_tree_pointers): Same. | |
22755 | (lto_input_ts_function_decl_tree_pointers): Same. | |
22756 | (lto_input_ts_type_common_tree_pointers): Same. | |
22757 | (lto_input_ts_type_non_common_tree_pointers): Same. | |
22758 | (lto_input_ts_list_tree_pointers): Same. | |
22759 | (lto_input_ts_vec_tree_pointers): Same. | |
22760 | (lto_input_ts_exp_tree_pointers): Same. | |
22761 | (lto_input_ts_block_tree_pointers): Same. | |
22762 | (lto_input_ts_binfo_tree_pointers): Same. | |
22763 | (lto_input_ts_constructor_tree_pointers): Same. | |
22764 | (lto_input_ts_omp_clause_tree_pointers): Same. | |
22765 | (streamer_read_tree_body): Same. | |
22766 | * tree-streamer.h: Same. | |
22767 | * tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same. | |
22768 | * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same. | |
22769 | (vect_analyze_possibly_independent_ddr): Same. | |
22770 | (vect_analyze_data_ref_dependence): Same. | |
22771 | (vect_compute_data_ref_alignment): Same. | |
22772 | (vect_enhance_data_refs_alignment): Same. | |
22773 | (vect_analyze_data_ref_access): Same. | |
22774 | (vect_check_gather_scatter): Same. | |
22775 | (vect_find_stmt_data_reference): Same. | |
22776 | (vect_create_addr_base_for_vector_ref): Same. | |
22777 | (vect_setup_realignment): Same. | |
22778 | (vect_supportable_dr_alignment): Same. | |
22779 | * tree-vect-loop-manip.c (rename_variables_in_bb): Same. | |
22780 | (adjust_phi_and_debug_stmts): Same. | |
22781 | (vect_set_loop_mask): Same. | |
22782 | (add_preheader_seq): Same. | |
22783 | (vect_maybe_permute_loop_masks): Same. | |
22784 | (vect_set_loop_masks_directly): Same. | |
22785 | (vect_set_loop_condition_masked): Same. | |
22786 | (vect_set_loop_condition_unmasked): Same. | |
22787 | (slpeel_duplicate_current_defs_from_edges): Same. | |
22788 | (slpeel_add_loop_guard): Same. | |
22789 | (slpeel_can_duplicate_loop_p): Same. | |
22790 | (create_lcssa_for_virtual_phi): Same. | |
22791 | (iv_phi_p): Same. | |
22792 | (vect_update_ivs_after_vectorizer): Same. | |
22793 | (vect_gen_vector_loop_niters_mult_vf): Same. | |
22794 | (slpeel_update_phi_nodes_for_loops): Same. | |
22795 | (slpeel_update_phi_nodes_for_guard1): Same. | |
22796 | (find_guard_arg): Same. | |
22797 | (slpeel_update_phi_nodes_for_guard2): Same. | |
22798 | (slpeel_update_phi_nodes_for_lcssa): Same. | |
22799 | (vect_do_peeling): Same. | |
22800 | (vect_create_cond_for_alias_checks): Same. | |
22801 | (vect_loop_versioning): Same. | |
22802 | * tree-vect-loop.c (vect_determine_vf_for_stmt): Same. | |
22803 | (vect_inner_phi_in_double_reduction_p): Same. | |
22804 | (vect_analyze_scalar_cycles_1): Same. | |
22805 | (vect_fixup_scalar_cycles_with_patterns): Same. | |
22806 | (vect_get_loop_niters): Same. | |
22807 | (bb_in_loop_p): Same. | |
22808 | (vect_get_max_nscalars_per_iter): Same. | |
22809 | (vect_verify_full_masking): Same. | |
22810 | (vect_compute_single_scalar_iteration_cost): Same. | |
22811 | (vect_analyze_loop_form_1): Same. | |
22812 | (vect_analyze_loop_form): Same. | |
22813 | (vect_active_double_reduction_p): Same. | |
22814 | (vect_analyze_loop_operations): Same. | |
22815 | (neutral_op_for_slp_reduction): Same. | |
22816 | (vect_is_simple_reduction): Same. | |
22817 | (vect_model_reduction_cost): Same. | |
22818 | (get_initial_def_for_reduction): Same. | |
22819 | (get_initial_defs_for_reduction): Same. | |
22820 | (vect_create_epilog_for_reduction): Same. | |
22821 | (vectorize_fold_left_reduction): Same. | |
22822 | (vectorizable_reduction): Same. | |
22823 | (vectorizable_induction): Same. | |
22824 | (vectorizable_live_operation): Same. | |
22825 | (loop_niters_no_overflow): Same. | |
22826 | (vect_get_loop_mask): Same. | |
22827 | (vect_transform_loop_stmt): Same. | |
22828 | (vect_transform_loop): Same. | |
22829 | * tree-vect-patterns.c (vect_reassociating_reduction_p): Same. | |
22830 | (vect_determine_precisions): Same. | |
22831 | (vect_pattern_recog_1): Same. | |
22832 | * tree-vect-slp.c (vect_analyze_slp_instance): Same. | |
22833 | * tree-vect-stmts.c (stmt_vectype): Same. | |
22834 | (process_use): Same. | |
22835 | (vect_init_vector_1): Same. | |
22836 | (vect_truncate_gather_scatter_offset): Same. | |
22837 | (get_group_load_store_type): Same. | |
22838 | (vect_build_gather_load_calls): Same. | |
22839 | (vect_get_strided_load_store_ops): Same. | |
22840 | (vectorizable_simd_clone_call): Same. | |
22841 | (vectorizable_store): Same. | |
22842 | (permute_vec_elements): Same. | |
22843 | (vectorizable_load): Same. | |
22844 | (vect_transform_stmt): Same. | |
22845 | (supportable_widening_operation): Same. | |
22846 | * tree-vectorizer.c (vec_info::replace_stmt): Same. | |
22847 | (vec_info::free_stmt_vec_info): Same. | |
22848 | (vect_free_loop_info_assumptions): Same. | |
22849 | (vect_loop_vectorized_call): Same. | |
22850 | (set_uid_loop_bbs): Same. | |
22851 | (vectorize_loops): Same. | |
22852 | * tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same. | |
22853 | * tree.c (add_tree_to_fld_list): Same. | |
22854 | (fld_type_variant_equal_p): Same. | |
22855 | (fld_decl_context): Same. | |
22856 | (fld_incomplete_type_of): Same. | |
22857 | (free_lang_data_in_binfo): Same. | |
22858 | (need_assembler_name_p): Same. | |
22859 | (find_decls_types_r): Same. | |
22860 | (get_eh_types_for_runtime): Same. | |
22861 | (find_decls_types_in_eh_region): Same. | |
22862 | (find_decls_types_in_node): Same. | |
22863 | (assign_assembler_name_if_needed): Same. | |
22864 | * value-prof.c (stream_out_histogram_value): Same. | |
22865 | * value-prof.h: Same. | |
22866 | * var-tracking.c (use_narrower_mode): Same. | |
22867 | (prepare_call_arguments): Same. | |
22868 | (vt_expand_loc_callback): Same. | |
22869 | (resolve_expansions_pending_recursion): Same. | |
22870 | (vt_expand_loc): Same. | |
22871 | * varasm.c (const_hash_1): Same. | |
22872 | (compare_constant): Same. | |
22873 | (tree_output_constant_def): Same. | |
22874 | (simplify_subtraction): Same. | |
22875 | (get_pool_constant): Same. | |
22876 | (output_constant_pool_2): Same. | |
22877 | (output_constant_pool_1): Same. | |
22878 | (mark_constants_in_pattern): Same. | |
22879 | (mark_constant_pool): Same. | |
22880 | (get_section_anchor): Same. | |
22881 | * vr-values.c (compare_range_with_value): Same. | |
22882 | (vr_values::extract_range_from_phi_node): Same. | |
22883 | * vr-values.h: Same. | |
22884 | * web.c (unionfind_union): Same. | |
22885 | * wide-int.h: Same. | |
22886 | ||
22887 | 2019-07-09 Martin Sebor <msebor@redhat.com> | |
22888 | ||
22889 | PR c++/61339 | |
22890 | * align.h: Change class-key from class to struct and vice versa | |
22891 | to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod. | |
22892 | * alloc-pool.h: Same. | |
22893 | * asan.c (shadow_mem_size): Same. | |
22894 | * auto-profile.c: Same. | |
22895 | * basic-block.h: Same. | |
22896 | * bitmap.h: Same. | |
22897 | * cfgexpand.c (set_rtl): Same. | |
22898 | (expand_one_stack_var_at): Same. | |
22899 | * cfghooks.h: Same. | |
22900 | * cfgloop.h: Same. | |
22901 | * cgraph.h: Same. | |
22902 | * config/i386/i386.h: Same. | |
22903 | * df-problems.c (df_print_bb_index): Same. | |
22904 | * df-scan.c: Same. | |
22905 | * df.h (df_single_use): Same. | |
22906 | * diagnostic-show-locus.c (layout::print_annotation_line): Same. | |
22907 | (layout::annotation_line_showed_range_p): Same. | |
22908 | (get_printed_columns): Same. | |
22909 | (correction::ensure_terminated): Same. | |
22910 | (line_corrections::~line_corrections): Same. | |
22911 | * dojump.h: Same. | |
22912 | * dse.c: Same. | |
22913 | * dump-context.h: Same. | |
22914 | * dumpfile.h: Same. | |
22915 | * dwarf2out.c: Same. | |
22916 | * edit-context.c: Same. | |
22917 | * fibonacci_heap.c (test_union_of_equal_heaps): Same. | |
22918 | * flags.h: Same. | |
22919 | * function.c (assign_stack_local): Same. | |
22920 | * function.h: Same. | |
22921 | * gcc.c: Same. | |
22922 | * gcov.c (block_info::block_info): Same. | |
22923 | * genattrtab.c: Same. | |
22924 | * genextract.c: Same. | |
22925 | * genmatch.c (comparison_code_p): Same. | |
22926 | (id_base::id_base): Same. | |
22927 | (decision_tree::print): Same. | |
22928 | * genoutput.c: Same. | |
22929 | * genpreds.c (write_one_predicate_function): Same. | |
22930 | * genrecog.c (validate_pattern): Same. | |
22931 | (find_operand_positions): Same. | |
22932 | (optimize_subroutine_group): Same. | |
22933 | (merge_pattern_transition::merge_pattern_transition): Same. | |
22934 | (merge_pattern_info::merge_pattern_info): Same. | |
22935 | (merge_state_result::merge_state_result): Same. | |
22936 | (merge_into_state): Same. | |
22937 | * gensupport.c: Same. | |
22938 | * gensupport.h: Same. | |
22939 | * ggc-common.c (init_ggc_heuristics): Same. | |
22940 | * ggc-tests.c (test_union): Same. | |
22941 | * gimple-loop-interchange.cc (dump_induction): Same. | |
22942 | * gimple-loop-versioning.cc: Same. | |
22943 | * gimple-match.h (gimple_match_cond::any_else): Same. | |
22944 | * gimple-ssa-backprop.c: Same. | |
22945 | * gimple-ssa-sprintf.c: Same. | |
22946 | * gimple-ssa-store-merging.c (store_operand_info::store_operand_info): | |
22947 | Same. | |
22948 | (store_immediate_info::store_immediate_info): Same. | |
22949 | (merged_store_group::apply_stores): Same. | |
22950 | (get_location_for_stmts): Same. | |
22951 | * gimple-ssa-strength-reduction.c: Same. | |
22952 | * gimple-ssa-warn-alloca.c: Same. | |
22953 | * gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same. | |
22954 | * godump.c (go_type_decl): Same. | |
22955 | * hash-map-tests.c (test_map_of_strings_to_int): Same. | |
22956 | * hash-map.h: Same. | |
22957 | * hash-set-tests.c (test_set_of_strings): Same. | |
22958 | * hsa-brig.c: Same. | |
22959 | * hsa-common.h: Same. | |
22960 | * hsa-gen.c (transformable_switch_to_sbr_p): Same. | |
22961 | * input.c (assert_loceq): Same. | |
22962 | * input.h: Same. | |
22963 | * ipa-cp.c: Same. | |
22964 | * ipa-devirt.c (possible_polymorphic_call_targets_1): Same. | |
22965 | * ipa-fnsummary.h: Same. | |
22966 | * ipa-inline.h: Same. | |
22967 | * ipa-prop.h: Same. | |
22968 | * ipa-split.c (visit_bb): Same. | |
22969 | * ira-int.h (minmax_set_iter_next): Same. | |
22970 | * loop-invariant.c: Same. | |
22971 | * loop-iv.c: Same. | |
22972 | * lra-eliminations.c: Same. | |
22973 | * lra-int.h: Same. | |
22974 | * lra-lives.c (mark_regno_dead): Same. | |
22975 | * lra-remat.c: Same. | |
22976 | * lra-spills.c: Same. | |
22977 | * lto-streamer.h: Same. | |
22978 | * mem-stats.h: Same. | |
22979 | * omp-grid.c (omp_grid_lastprivate_predicate): Same. | |
22980 | * omp-low.c (omp_clause_aligned_alignment): Same. | |
22981 | * optabs-query.h (get_vcond_eq_icode): Same. | |
22982 | * optabs.h: Same. | |
22983 | * opts.c (wrap_help): Same. | |
22984 | * poly-int.h: Same. | |
22985 | * predict.c (predict_paths_leading_to_edge): Same. | |
22986 | * pretty-print.h: Same. | |
22987 | * profile-count.h: Same. | |
22988 | * read-md.h: Same. | |
22989 | * read-rtl-function.c: Same. | |
22990 | * ree.c: Same. | |
22991 | * reginfo.c: Same. | |
22992 | * regrename.c: Same. | |
22993 | * regrename.h: Same. | |
22994 | * reload.h: Same. | |
22995 | * rtl-iter.h: Same. | |
22996 | * rtl.h (costs_add_n_insns): Same. | |
22997 | * sanopt.c: Same. | |
22998 | * sched-int.h: Same. | |
22999 | * sel-sched-ir.h: Same. | |
23000 | * selftest.h: Same. | |
23001 | * sese.h (vec_find): Same. | |
23002 | * stmt.c: Same. | |
23003 | * target-globals.h: Same. | |
23004 | * tree-affine.c (aff_combination_find_elt): Same. | |
23005 | * tree-affine.h: Same. | |
23006 | * tree-data-ref.h: Same. | |
23007 | * tree-outof-ssa.c (ssa_is_replaceable_p): Same. | |
23008 | * tree-predcom.c: Same. | |
23009 | * tree-scalar-evolution.c (find_var_scev_info): Same. | |
23010 | * tree-ssa-alias.h: Same. | |
23011 | * tree-ssa-ccp.c: Same. | |
23012 | * tree-ssa-coalesce.c (ssa_conflicts_dump): Same. | |
23013 | * tree-ssa-loop-im.c (for_all_locs_in_loop): Same. | |
23014 | (rewrite_mem_refs): Same. | |
23015 | (execute_sm_if_changed): Same. | |
23016 | (hoist_memory_references): Same. | |
23017 | * tree-ssa-loop-ivopts.c (operator<=): Same. | |
23018 | * tree-ssa-loop.h: Same. | |
23019 | * tree-ssa-pre.c (get_or_alloc_expr_for_name): Same. | |
23020 | * tree-ssa-structalias.c: Same. | |
23021 | * tree-switch-conversion.h (cluster::cluster): Same. | |
23022 | (simple_cluster::simple_cluster): Same. | |
23023 | * tree-vect-patterns.c (type_conversion_p): Same. | |
23024 | * tree-vectorizer.c (dump_stmt_cost): Same. | |
23025 | * tree-vectorizer.h (loop_vec_info_for_loop): Same. | |
23026 | * tree.c (protected_set_expr_location): Same. | |
23027 | * tree.h (desired_pro_or_demotion_p): Same. | |
23028 | (fndecl_built_in_p): Same. | |
23029 | * unique-ptr-tests.cc: Same. | |
23030 | * var-tracking.c (delete_variable_part): Same. | |
23031 | * varasm.c (assemble_real): Same. | |
23032 | (tree_output_constant_def): Same. | |
23033 | * vec.c: Same. | |
23034 | * wide-int-bitmask.h: Same. | |
23035 | * wide-int.h (decompose): Same. | |
23036 | ||
23037 | 2019-07-09 Richard Biener <rguenther@suse.de> | |
23038 | ||
23039 | PR tree-optimization/91114 | |
23040 | * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to | |
23041 | find a vector type isn't fatal. | |
23042 | ||
23043 | 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com> | |
23044 | ||
23045 | * config/aarch64/aarch64-simd.md | |
23046 | (aarch64_crypto_aes<aes_op>v16qi): Redefine pattern with xor. | |
23047 | (aarch64_crypto_aes<aesmc_op>v16qi): Remove attribute enabled. | |
23048 | (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): Remove both. | |
23049 | (*aarch64_crypto_aese_fused, | |
23050 | *aarch64_crypto_aesd_fused): Update to new definition. | |
23051 | * config/aarch64/aarch64.c | |
23052 | (aarch_macro_fusion_pair_p): Remove aese/aesmc fusion check. | |
23053 | ||
23054 | 2019-07-09 Richard Biener <rguenther@suse.de> | |
23055 | ||
23056 | * gimple-match.h (gimple_match_op::resimplify): New. | |
23057 | (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3, | |
23058 | gimple_resimplify4, gimple_resimplify5): Remove. | |
23059 | * gimple-match-head.c (gimple_resimplify1, gimple_resimplify2, | |
23060 | gimple_resimplify3, gimple_resimplify4, gimple_resimplify5): | |
23061 | Make static. | |
23062 | (gimple_match_op::resimplify): New. | |
23063 | * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize | |
23064 | according to availability. Use gimple_match_op::resimplify. | |
23065 | ||
23066 | 2019-07-09 Eric Botcazou <ebotcazou@adacore.com> | |
23067 | ||
23068 | * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location. | |
23069 | ||
23070 | 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com> | |
23071 | ||
23072 | * config/arm/crypto.md: | |
23073 | (crypto_<crypto_pattern>): Redefine aese/aesd pattern with xor. | |
23074 | (crypto_<crypto_pattern>): Remove attribute enabled for aesmc. | |
23075 | (crypto_<crypto_pattern>): Split CRYPTO_BINARY into 2 patterns. | |
23076 | (*aarch32_crypto_aese_fused, *aarch32_crypto_aesd_fused): New. | |
23077 | * config/arm/arm.c | |
23078 | (aarch_macro_fusion_pair_p): Remove aes/aesmc fusion check. | |
23079 | * config/arm/aarch-common-protos.h | |
23080 | (aarch_crypto_can_dual_issue): Remove. | |
23081 | * config/arm/aarch-common.c | |
23082 | (aarch_crypto_can_dual_issue): Likewise. | |
23083 | * config/arm/exynos-m1.md: Remove aese/aesmc fusion. | |
23084 | * config/arm/cortex-a53.md: Likewise. | |
23085 | * config/arm/cortex-a57.md: Likewise. | |
23086 | * config/arm/iterators.md: | |
23087 | (CRYPTO_BINARY): Redefine. | |
23088 | (CRYPTO_UNARY): Removed. | |
23089 | (CRYPTO_AES, CRYPTO_AESMC): New. | |
23090 | ||
23091 | 2019-07-09 Richard Biener <rguenther@suse.de> | |
23092 | ||
23093 | * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add orig_ref member. | |
23094 | (vn_reference_lookup_3): If the main ref has no access path recorded | |
23095 | but orig_ref has use it to do access-path based disambiguation. | |
23096 | (vn_reference_lookup_pieces): Adjust. | |
23097 | (vn_reference_lookup): Pass down original ref if we valueized. | |
23098 | ||
23099 | 2019-07-09 Martin Liska <mliska@suse.cz> | |
23100 | ||
23101 | * doc/extend.texi: Document influence on loop | |
23102 | optimizers. | |
23103 | ||
23104 | 2019-07-09 Martin Liska <mliska@suse.cz> | |
23105 | ||
23106 | * lto-compress.c (lto_normalized_zstd_level): Do not use | |
23107 | ZSTD_CLEVEL_DEFAULT as it is not default in old releases | |
23108 | of libzstd. One can use 0 as a default compression level. | |
23109 | ||
23110 | 2019-07-09 Martin Liska <mliska@suse.cz> | |
23111 | ||
23112 | * doc/invoke.texi: Add link from -fprofile-dir option. | |
23113 | Use better wording for 'gcno filename'. | |
23114 | ||
23115 | 2019-07-08 Martin Sebor <msebor@redhat.com> | |
23116 | ||
23117 | PR middle-end/71924 | |
23118 | PR middle-end/90549 | |
23119 | * gimple-ssa-isolate-paths.c (isolate_path): Add attribute. Update | |
23120 | comment. | |
23121 | (args_loc_t): New type. | |
23122 | (args_loc_t, locmap_t): same. | |
23123 | (diag_returned_locals): New function. | |
23124 | (is_addr_local): Same. | |
23125 | (handle_return_addr_local_phi_arg, warn_return_addr_local): Same. | |
23126 | (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg. | |
23127 | (find_explicit_erroneous_behavior): Call warn_return_addr_local. | |
23128 | ||
23129 | 2019-07-08 Jakub Jelinek <jakub@redhat.com> | |
23130 | ||
23131 | * tree-vect-stmts.c (scan_operand_equal_p): Look through MEM_REF | |
23132 | with SSA_NAME address of POINTER_PLUS_EXPR. Handle MULT_EXPR | |
23133 | and casts in offset when different, both through gimple stmts | |
23134 | and through trees. Rewritten using loops to minimize code duplication | |
23135 | for each operand. | |
23136 | ||
23137 | 2019-07-08 Eric Botcazou <ebotcazou@adacore.com> | |
23138 | ||
23139 | * emit-rtl.c (set_insn_locations): New function moved from... | |
23140 | * function.c (set_insn_locations): ...here. | |
23141 | * ira-emit.c (emit_moves): Propagate location of the first instruction | |
23142 | to the inserted move instructions. | |
23143 | * reg-stack.c (compensate_edge): Set the location if the sequence is | |
23144 | inserted on the edge. | |
23145 | * rtl.h (set_insn_locations): Declare. | |
23146 | ||
23147 | 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org> | |
23148 | ||
23149 | * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore | |
23150 | OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the | |
23151 | .machine string. | |
23152 | ||
23153 | 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org> | |
23154 | ||
23155 | PR rtl-optimization/88233 | |
23156 | * common.opt (fsplit-wide-types-early): New option. | |
23157 | * common/config/rs6000/rs6000-common.c | |
23158 | (rs6000_option_optimization_table): Add OPT_fsplit_wide_types_early for | |
23159 | OPT_LEVELS_ALL. | |
23160 | * doc/invoke.texi (Optimization Options): Add -fsplit-wide-types-early. | |
23161 | * lower-subreg.c (pass_lower_subreg2::gate): Add test for | |
23162 | flag_split_wide_types_early. | |
23163 | (pass_data_lower_subreg3): New. | |
23164 | (pass_lower_subreg3): New. | |
23165 | (make_pass_lower_subreg3): New. | |
23166 | * passes.def (pass_lower_subreg2): Move after the loop passes. | |
23167 | (pass_lower_subreg3): New, inserted where pass_lower_subreg2 was. | |
23168 | * tree-pass.h (make_pass_lower_subreg2): Move up, to its new place in | |
23169 | the pass pipeline; its previous place is taken by ... | |
23170 | (make_pass_lower_subreg3): ... this. | |
23171 | ||
23172 | 2019-07-08 Robin Dapp <rdapp@linux.ibm.com> | |
23173 | ||
23174 | * config/s390/s390.c (s390_shift_truncation_mask): Define. | |
23175 | (TARGET_SHIFT_TRUNCATION_MASK): Define. | |
23176 | ||
23177 | 2019-07-08 Robin Dapp <rdapp@linux.ibm.com> | |
23178 | ||
23179 | * config/s390/constraints.md: Add new jsc constraint. | |
23180 | * config/s390/predicates.md: New predicates. | |
23181 | * config/s390/s390-protos.h (s390_valid_shift_count): New function. | |
23182 | * config/s390/s390.c (s390_valid_shift_count): New function. | |
23183 | (print_shift_count_operand): Use s390_valid_shift_count. | |
23184 | (print_operand): Likewise. | |
23185 | * config/s390/s390.md: Use new predicate. | |
23186 | * config/s390/subst.md: Remove addr_style_op and masked_op substs. | |
23187 | * config/s390/vector.md: Use new predicate. | |
23188 | ||
23189 | 2019-07-08 Andrew Waterman <andrew@sifive.com> | |
23190 | Jim Wilson <jimw@sifive.com> | |
23191 | ||
23192 | * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1] | |
23193 | bitsize instead of BITS_PER_WORD. | |
23194 | ||
23195 | 2019-07-08 Martin Liska <mliska@suse.cz> | |
23196 | ||
23197 | * collect2.c (defined): Revert to before r254460. | |
23198 | (scan_prog_file): Revert to before r254460. | |
23199 | ||
23200 | 2019-07-08 Richard Biener <rguenther@suse.de> | |
23201 | ||
23202 | PR tree-optimization/83518 | |
23203 | * tree-ssa-sccvn.c: Include splay-tree.h. | |
23204 | (struct pd_range, struct pd_data): New. | |
23205 | (struct vn_walk_cb_data): Add data to track partial definitions. | |
23206 | (vn_walk_cb_data::~vn_walk_cb_data): New. | |
23207 | (vn_walk_cb_data::push_partial_def): New. | |
23208 | (pd_tree_alloc, pd_tree_dealloc, pd_range_compare): New. | |
23209 | (vn_reference_lookup_2): When partial defs are registered give up. | |
23210 | (vn_reference_lookup_3): Track partial defs for memset and | |
23211 | constructor zeroing and for defs from constants. | |
23212 | ||
23213 | 2019-07-08 Richard Sandiford <richard.sandiford@arm.com> | |
23214 | ||
23215 | * doc/install.texi (bootstrap-Og): Document. | |
23216 | ||
23217 | 2019-07-08 Richard Sandiford <richard.sandiford@arm.com> | |
23218 | ||
23219 | * config/riscv/pic.md (*local_pic_load_s<mode>) | |
23220 | (*local_pic_load_u<mode>): Explicitly specify the mode iterator | |
23221 | referenced by <mode>, giving... | |
23222 | (*local_pic_load_s<SUBX:mode>, *local_pic_load_u<SUBX:mode>): ...these. | |
23223 | * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>) | |
23224 | (*slt<u>_<X:mode><GPR:mode>, *sle<u>_<X:mode><GPR:mode>): Explicitly | |
23225 | use <X:MODE> for the mode attribute. | |
23226 | ||
23227 | 2019-07-07 Jeff Law <law@redhat.com> | |
23228 | ||
23229 | PR tree-optimization/91090 | |
23230 | * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Fix logic error | |
23231 | in handling of ranges to simplify switch statements. | |
23232 | ||
23233 | 2019-07-07 Iain Sandoe <iain@sandoe.co.uk> | |
23234 | ||
23235 | * config/darwin.c (darwin_override_options): Make a final check on PIC | |
23236 | options. | |
23237 | ||
23238 | 2019-07-07 Iain Sandoe <iain@sandoe.co.uk> | |
23239 | ||
23240 | * config/darwin.c (darwin_override_options): Don't jam symbol stubs | |
23241 | on for kernel code. | |
23242 | ||
23243 | 2019-07-07 Richard Sandiford <richard.sandiford@arm.com> | |
23244 | ||
23245 | PR target/91068 | |
23246 | * config/mips/mips.md (*mul_acc_si, *mul_acc_si_r3900, *macc) | |
23247 | (*msac, *msac_using_macc, *mul_sub_si): Use "l" for input operands | |
23248 | instead of matching them to "l" output operands. | |
23249 | ||
23250 | 2019-07-07 Richard Sandiford <richard.sandiford@arm.com> | |
23251 | ||
23252 | * config/mips/mips.c (mips_split_move): Zero-initialize addr | |
23253 | and check whether addr.reg is nonnull before using it. | |
23254 | ||
23255 | 2019-07-06 Jakub Jelinek <jakub@redhat.com> | |
23256 | ||
23257 | * omp-low.c (lower_rec_input_clauses): For lastprivate clauses in | |
23258 | ctx->for_simd_scan_phase simd copy the outer var to the privatized | |
23259 | variable(s). For conditional lastprivate look through outer | |
23260 | GIMPLE_OMP_SCAN context. | |
23261 | (lower_omp_1): For conditional lastprivate look through outer | |
23262 | GIMPLE_OMP_SCAN context. | |
23263 | ||
23264 | * omp-low.c (struct omp_context): Rename combined_into_simd_safelen0 | |
23265 | member to combined_into_simd_safelen1. | |
23266 | (lower_rec_input_clauses, lower_omp_1): Adjust uses. | |
23267 | (lower_lastprivate_clauses): Likewise. For conditional lastprivate | |
23268 | clauses if ctx->combined_into_simd_safelen1 put statements after the | |
23269 | predicate conditionalized block rather than into it. | |
23270 | ||
23271 | 2019-07-06 Richard Sandiford <richard.sandiford@arm.com> | |
23272 | ||
23273 | * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for | |
23274 | operand 1. | |
23275 | * config/s390/vx-builtins.md (*vec_cmp<insn_cmp><mode>_cconly): | |
23276 | Make the choice of <mode> explicit, giving... | |
23277 | (*vec_cmp<insn_cmp><VF_HW:mode>_cconly): ...this. | |
23278 | ||
23279 | 2019-07-06 Richard Sandiford <richard.sandiford@arm.com> | |
23280 | ||
23281 | * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387) | |
23282 | (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses | |
23283 | of .md attributes. | |
23284 | * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask) | |
23285 | (*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask) | |
23286 | (*avx512pf_scatterpf<mode>df_mask, *avx2_gathersi<mode>) | |
23287 | (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>) | |
23288 | (*avx2_gatherdi<mode>_2, *avx2_gatherdi<mode>_3): Likewise. | |
23289 | (*avx2_gatherdi<mode>_4, *avx512f_gathersi<mode>): Likewise. | |
23290 | (*avx512f_gathersi<mode>_2, *avx512f_gatherdi<mode>): Likewise. | |
23291 | (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>): Likewise. | |
23292 | (*avx512f_scatterdi<mode>): Likewise. | |
23293 | (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo. | |
23294 | ||
23295 | 2019-07-06 Richard Sandiford <richard.sandiford@arm.com> | |
23296 | ||
23297 | * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly | |
23298 | specify the mode iterator referenced by <mode>, giving... | |
23299 | (*push1_h8300hs_<QHI:mode>): ...this. | |
23300 | ||
23301 | 2019-07-06 Richard Sandiford <richard.sandiford@arm.com> | |
23302 | ||
23303 | * config/gcn/gcn-valu.md | |
23304 | (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use | |
23305 | gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly) | |
23306 | gen_vec_cmp<VEC_1REG_MODE:mode>di. Explicitly use | |
23307 | gen_vcond_mask_<VEC_1REG_MODE:mode>di. | |
23308 | (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise, | |
23309 | but using the _exec comparison patterns. | |
23310 | (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use | |
23311 | gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly) | |
23312 | gen_vec_cmp<VEC_1REG_INT_MODE:mode>di. Explicitly use | |
23313 | gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di. | |
23314 | (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise, | |
23315 | but using the _exec comparison patterns. | |
23316 | ||
23317 | 2019-07-06 Richard Sandiford <richard.sandiford@arm.com> | |
23318 | ||
23319 | * config/arm/sync.md | |
23320 | (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Use | |
23321 | <NARROW:sync_predtab> instead of (implicitly) <CCSI:sync_predtab>. | |
23322 | (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise use | |
23323 | <SIDI:sync_predtab>. Use <SIDI:cas_cmp_operand> and | |
23324 | <SIDI:cas_cmp_str>. | |
23325 | ||
23326 | 2019-07-06 Jakub Jelinek <jakub@redhat.com> | |
23327 | ||
23328 | * omp-low.c (struct omp_context): Add for_simd_scan_phase member. | |
23329 | (maybe_lookup_ctx): Add forward declaration. | |
23330 | (omp_find_scan): Likewise. Walk into body of simd if composited | |
23331 | with worksharing loop. | |
23332 | (scan_omp_simd_scan): New function. | |
23333 | (scan_omp_1_stmt): Call it. | |
23334 | (lower_rec_simd_input_clauses): Don't create rvar nor rvar2 if | |
23335 | ctx->for_simd_scan_phase. | |
23336 | (lower_rec_input_clauses): Do much less work for inscan reductions | |
23337 | in ctx->for_simd_scan_phase is_simd regions. | |
23338 | (lower_omp_scan): Set is_simd also on simd constructs composited | |
23339 | with worksharing loop, unless ctx->for_simd_scan_phase. Never emit | |
23340 | a sorry message. Don't change GIMPLE_OMP_SCAN stmts into nops and | |
23341 | emit their body after in simd constructs composited with worksharing | |
23342 | loop. | |
23343 | (lower_omp_for_scan): Handle worksharing loop composited with simd. | |
23344 | ||
23345 | * omp-low.c (omp_find_scan): Make static. | |
23346 | (lower_omp_for_scan): Fix order of merge arguments in input phase of | |
23347 | the second loop, var2 represents the first partial sum and so needs | |
23348 | to go before rprivb[ivar]. | |
23349 | ||
23350 | 2019-07-05 Iain Sandoe <iain@sandoe.co.uk> | |
23351 | ||
23352 | * config/rs6000/rs6000-logue.c: Remove unused code. | |
23353 | ||
23354 | 2019-07-05 Eric Botcazou <ebotcazou@adacore.com> | |
23355 | ||
23356 | * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p. | |
23357 | ||
23358 | 2019-07-05 Sam Tebbs <sam.tebbs@arm.com> | |
23359 | ||
23360 | PR target/90712 | |
23361 | * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk | |
23362 | check with a frame laid out check. | |
23363 | ||
23364 | 2019-07-05 Richard Biener <rguenther@suse.de> | |
23365 | ||
23366 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS | |
23367 | when comparing against a store with possibly the same value. | |
23368 | ||
23369 | 2019-07-05 Richard Biener <rguenther@suse.de> | |
23370 | ||
23371 | PR tree-optimization/91091 | |
23372 | * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter. | |
23373 | (walk_non_aliased_vuses): Likewise. | |
23374 | * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p. | |
23375 | (get_continuation_for_phi): New tbaa_p parameter and pass | |
23376 | it down. | |
23377 | (walk_non_aliased_vuses): Likewise. | |
23378 | * ipa-prop.c (determine_known_aggregate_parts): Adjust. | |
23379 | * tree-ssa-pre.c (translate_vuse_through_block): Likewise. | |
23380 | * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr): | |
23381 | Likewise. | |
23382 | * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag. | |
23383 | (adjust_offsets_for_equal_base_address): New function. | |
23384 | (vn_reference_lookup_3): Use it to catch more base equivalences. | |
23385 | Handle and pass down tbaa_p flag. | |
23386 | (vn_reference_lookup_pieces): Adjust. | |
23387 | (vn_reference_lookup): Remove alias-set altering, instead pass | |
23388 | down false as tbaa_p. | |
23389 | ||
23390 | 2019-07-05 Richard Biener <rguenther@suse.de> | |
23391 | ||
23392 | PR tree-optimization/91091 | |
23393 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of | |
23394 | accesses can happen with -fno-strict-aliasing. | |
23395 | ||
23396 | 2019-07-05 Jan Hubicka <hubicka@ucw.cz> | |
23397 | ||
23398 | * tree-ssa-alias.c (alias_stats): Add | |
23399 | nonoverlapping_component_refs_since_match_p_must_overlap. | |
23400 | (dump_alias_stats): Print it. | |
23401 | (nonoverlapping_component_refs_since_match_p): Add early exit. | |
23402 | (nonoverlapping_component_refs_p): Do not account early exit. | |
23403 | ||
23404 | 2019-07-05 Eric Botcazou <ebotcazou@adacore.com> | |
23405 | ||
23406 | * except.c (emit_to_new_bb_before): Make sure to put a location on SEQ. | |
23407 | * tree-eh.c (replace_goto_queue_1) <GIMPLE_GOTO>: Propagate location. | |
23408 | (emit_eh_dispatch): Delete. | |
23409 | (lower_catch): Emit the eh_dispatch manually and set the location of | |
23410 | the first catch statement onto it. | |
23411 | (lower_eh_filter): Emit the eh_dispatch manually and set location. | |
23412 | (lower_eh_dispatch): Propagate location. | |
23413 | * tree-outof-ssa.c (set_location_for_edge): Handle EH edges specially. | |
23414 | (eliminate_build): Likewise. | |
23415 | ||
23416 | 2019-07-05 Eric Botcazou <ebotcazou@adacore.com> | |
23417 | ||
23418 | * tree-cfg.c (gimple_make_forwarder_block): Propagate location info on | |
23419 | phi nodes if possible. | |
23420 | * tree-scalar-evolution.c (final_value_replacement_loop): Propagate | |
23421 | location info on the newly created statement. | |
23422 | * tree-ssa-loop-manip.c (create_iv): Propagate location info on the | |
23423 | newly created increment if needed. | |
23424 | ||
23425 | 2019-07-04 Jakub Jelinek <jakub@redhat.com> | |
23426 | ||
23427 | PR middle-end/78884 | |
23428 | * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member. | |
23429 | (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd | |
23430 | loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE. | |
23431 | (gimplify_adjust_omp_clauses): Add safelen (1) clause if | |
23432 | ctx->add_safelen1 is set. | |
23433 | ||
23434 | * omp-expand.c (expand_omp_for_static_nochunk): Don't emit | |
23435 | GOMP_loop_start at the start of second worksharing loop in a scan. | |
23436 | For nowait, don't emit GOMP_loop_end_nowait at the end of first | |
23437 | worksharing loop in a scan even if there are conditional lastprivates, | |
23438 | and do emit GOMP_loop_end_nowait at the end of second worksharing loop. | |
23439 | ||
23440 | 2019-07-04 Jan Hubicka <jh@suse.cz> | |
23441 | ||
23442 | * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p): | |
23443 | Fix check for match in the ref walk. | |
23444 | ||
23445 | 2019-07-04 Martin Liska <mliska@suse.cz> | |
23446 | ||
23447 | * tree-ssa-loop-niter.c | |
23448 | (get_upper_bound_based_on_builtin_expr_with_prob): New function. | |
23449 | (estimate_numbers_of_iterations): | |
23450 | Support __builtin_expect_with_probability for analysis | |
23451 | of # of loop iterations. | |
23452 | ||
23453 | 2019-07-04 Alexandre Oliva <oliva@adacore.com> | |
23454 | ||
23455 | * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR. | |
23456 | * except.c: Likewise. | |
23457 | * expr.c (expand_expr_real_1): Reject it. | |
23458 | * gimplify.c (gimplify_expr): Gimplify it, within | |
23459 | TRY_FINALLY_EXPR. | |
23460 | * tree-dump.c (dequeue_and_dump): Dump it. | |
23461 | * tree-pretty-print.c (dump_generic_node): Likewise. | |
23462 | * tree.c (block_may_fallthru): Handle it. | |
23463 | * tree.def (EH_ELSE_EXPR): Introduce it. | |
23464 | * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY | |
23465 | with GIMPLE_EH_ELSE as try/finally/else. | |
23466 | ||
23467 | 2019-07-04 Richard Biener <rguenther@suse.de> | |
23468 | ||
23469 | PR ipa/91062 | |
23470 | * tree-pass.h (execute_all_ipa_transforms): Add a flag | |
23471 | parameter whether to disable GC collection. | |
23472 | * passes.c (execute_one_ipa_transform_pass): Likewise, and | |
23473 | honor it. | |
23474 | (execute_all_ipa_transforms): Likewise and pass it down. | |
23475 | * cgraph.c (cgraph_node::get_body): Do not invoke garbage | |
23476 | collection from applying IPA transforms. | |
23477 | * cgraphunit.c (cgraph_node::expand): Allow garbage collection | |
23478 | from applying IPA transforms. | |
23479 | ||
23480 | 2019-07-04 Richard Biener <rguenther@suse.de> | |
23481 | ||
23482 | PR tree-optimization/90911 | |
23483 | * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field. | |
23484 | (LOOP_VINFO_SCALAR_LOOP_SCALING): new. | |
23485 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize | |
23486 | scalar_loop_scaling. | |
23487 | (vect_transform_loop): Scale scalar loop profile if needed. | |
23488 | * tree-vect-loop-manip.c (vect_loop_versioning): When re-using | |
23489 | the loop copy from if-conversion adjust edge probabilities | |
23490 | and scale the vectorized loop body profile, queue the scalar | |
23491 | profile for updating after peeling. | |
23492 | ||
23493 | 2019-07-04 Jan Hubicka <jh@suse.cz> | |
23494 | ||
23495 | * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2 | |
23496 | parameters; return early for must-alias. | |
23497 | (indirect_ref_may_alias_decl_p): Likewise; when establishing | |
23498 | outer types match, try nonoverlapping_component_refs | |
23499 | if must-alias is not obvious. | |
23500 | (indirect_refs_may_alias_p): Likewise. | |
23501 | (refs_may_alias_p_2): Likewise. | |
23502 | ||
23503 | 2019-07-04 Richard Biener <rguenther@suse.de> | |
23504 | ||
23505 | * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr | |
23506 | argument. | |
23507 | * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move | |
23508 | globals into... | |
23509 | (struct vn_walk_cb_data): New callback data struct. | |
23510 | (vn_reference_lookup_2): Adjust. | |
23511 | (vn_reference_lookup_3): Likewise. | |
23512 | (vn_reference_lookup_pieces): Likewise. | |
23513 | (vn_reference_lookup): Likewise, get last_vuse_ptr argument. | |
23514 | (visit_reference_op_load): Adjust. | |
23515 | ||
23516 | 2019-07-04 Jakub Jelinek <jakub@redhat.com> | |
23517 | ||
23518 | PR tree-optimization/91063 | |
23519 | * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove | |
23520 | stmt from stmts sequence before calling vect_init_vector_1. | |
23521 | Formatting fix. | |
23522 | ||
23523 | 2019-07-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
23524 | ||
23525 | PR target/88833 | |
23526 | * fwprop.c (reg_single_def_p): New function. | |
23527 | (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case. | |
23528 | (forward_propagate_into): New parameter reg_prop_only | |
23529 | with default value false. | |
23530 | Propagate def's src into loop only if SET_SRC and SET_DEST | |
23531 | of def_set have single definitions. | |
23532 | Likewise if reg_prop_only is set to true. | |
23533 | (fwprop): New param fwprop_addr_p. | |
23534 | Integrate fwprop_addr into fwprop. | |
23535 | (fwprop_addr): Remove. | |
23536 | (pass_rtl_fwprop_addr::execute): Call fwprop with arg set | |
23537 | to true. | |
23538 | (pass_rtl_fwprop::execute): Call fwprop with arg set to false. | |
23539 | * simplify-rtx.c (simplify_subreg): Add case for vector comparison. | |
23540 | * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern. | |
23541 | ||
23542 | 2019-07-04 Jakub Jelinek <jakub@redhat.com> | |
23543 | ||
23544 | * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body | |
23545 | in worksharing loop scans. | |
23546 | ||
23547 | PR tree-optimization/91074 | |
23548 | * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx | |
23549 | temporary. | |
23550 | ||
23551 | PR rtl-optimization/90756 | |
23552 | * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it | |
23553 | for VECTOR_TYPE_P. | |
23554 | ||
23555 | 2019-07-03 Dennis Zhang <dennis.zhang@arm.com> | |
23556 | ||
23557 | * config/aarch64/aarch64.md: Remove redundant constraints from | |
23558 | define_expand but keep some patterns untouched if they are | |
23559 | specially selected by TARGET_SECONDARY_RELOAD hook. | |
23560 | * config/aarch64/aarch64-sve.md: Likewise. | |
23561 | * config/aarch64/atomics.md: Remove redundant constraints from | |
23562 | define_expand. | |
23563 | * config/aarch64/aarch64-simd.md: Likewise. | |
23564 | ||
23565 | 2019-07-03 Iain Sandoe <iain@sandoe.co.uk> | |
23566 | ||
23567 | * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases. | |
23568 | (RDYNAMIC): Rename to, DARWIN_RDYNAMIC. | |
23569 | (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker | |
23570 | clauses. | |
23571 | (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and | |
23572 | DARWIN_NOPIE_SPEC. | |
23573 | ||
23574 | 2019-07-03 Iain Sandoe <iain@sandoe.co.uk> | |
23575 | ||
23576 | * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin. | |
23577 | (STARTFILE_SPEC): Split crt3 into a separate spec. | |
23578 | (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec. | |
23579 | (DARWIN_CRT2_SPEC): New. | |
23580 | (DARWIN_CRT3_SPEC): New. | |
23581 | (MIN_LD64_OMIT_STUBS): Revise to 62.1. | |
23582 | * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions. | |
23583 | (DARWIN_CRT3_SPEC): New. | |
23584 | ||
23585 | 2019-07-03 Michael Meissner <meissner@linux.ibm.com> | |
23586 | ||
23587 | * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator): | |
23588 | Change the RTL attribute "length" from "4" to "*" to allow the | |
23589 | length attribute to be adjusted automatically for prefixed load, | |
23590 | store, and add immediate instructions. | |
23591 | * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator): | |
23592 | Likewise. | |
23593 | (extendsi<mode>2, EXTSI iterator): Likewise. | |
23594 | (movsi_internal1): Likewise. | |
23595 | (movsi_from_sf): Likewise. | |
23596 | (movdi_from_sf_zero_ext): Likewise. | |
23597 | (mov<mode>_internal): Likewise. | |
23598 | (movcc_internal1, QHI iterator): Likewise. | |
23599 | (mov<mode>_softfloat, FMOVE32 iterator): Likewise. | |
23600 | (movsf_from_si): Likewise. | |
23601 | (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise. | |
23602 | (mov<mode>_softfloat64, FMOVE64 iterator): Likewise. | |
23603 | (mov<mode>, FMOVE128 iterator): Likewise. | |
23604 | (movdi_internal64): Likewise. | |
23605 | * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator): | |
23606 | Likewise. | |
23607 | (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise. | |
23608 | (vsx_mov<mode>_64bit, VSX_M iterator): Likewise. | |
23609 | (vsx_mov<mode>_32bit, VSX_M iterator): Likewise. | |
23610 | (vsx_splat_v4sf): Likewise. | |
23611 | ||
23612 | 2019-07-03 Mark Wielaard <mark@klomp.org> | |
23613 | ||
23614 | PR debug/90981 | |
23615 | * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add | |
23616 | DW_AT_addr_base if there is actually a .debug_addr section with | |
23617 | addresses. | |
23618 | (output_addr_table): Add DWARF5 table header generation here after | |
23619 | checking there are actually any addresses from... | |
23620 | (dwarf2out_finish): ...here. | |
23621 | ||
23622 | 2019-07-03 Richard Biener <rguenther@suse.de> | |
23623 | ||
23624 | PR middle-end/91069 | |
23625 | * match.pd (vec_perm -> bit_insert): Fix element read from | |
23626 | first vector. | |
23627 | ||
23628 | 2019-07-03 Martin Liska <mliska@suse.cz> | |
23629 | ||
23630 | * dbgcnt.def (DEBUG_COUNTER): Add match debug counter. | |
23631 | * genmatch.c (dt_simplify::gen_1): Generate dbgcnt | |
23632 | condition. | |
23633 | * generic-match-head.c: Include dbgcnt.h. | |
23634 | * gimple-match-head.c: Likewise. | |
23635 | ||
23636 | 2019-07-03 Martin Liska <mliska@suse.cz> | |
23637 | ||
23638 | * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove. | |
23639 | (GCOV_COUNTER_V_TOPN): New. | |
23640 | (GCOV_COUNTER_V_INDIR): Use _topn. | |
23641 | * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove. | |
23642 | (GCOV_TOPN_VALUES): New. | |
23643 | (GCOV_SINGLE_VALUE_COUNTERS): Remove. | |
23644 | (GCOV_TOPN_VALUES_COUNTERS): New. | |
23645 | * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES. | |
23646 | * tree-profile.c: | |
23647 | (gimple_init_gcov_profiler): Rename variables from one_value | |
23648 | to topn_values. | |
23649 | (gimple_gen_one_value_profiler): Remove. | |
23650 | (gimple_gen_topn_values_profiler): New function. | |
23651 | * value-prof.c (dump_histogram_value): Use TOPN_VALUES | |
23652 | names instead of SINGLE_VALUE. | |
23653 | (stream_out_histogram_value): Likewise. | |
23654 | (stream_in_histogram_value): Likewise. | |
23655 | (get_most_common_single_value): Likewise. | |
23656 | (gimple_divmod_fixed_value_transform): Likewise. | |
23657 | (gimple_stringops_transform): Likewise. | |
23658 | (gimple_divmod_values_to_profile): Likewise. | |
23659 | (gimple_stringops_values_to_profile): Likewise. | |
23660 | (gimple_find_values_to_profile): Likewise. | |
23661 | * value-prof.h (enum hist_type): Rename to TOPN. | |
23662 | (gimple_gen_one_value_profiler): Remove. | |
23663 | (gimple_gen_topn_values_profiler): New. | |
23664 | ||
23665 | 2019-07-03 Eric Botcazou <ebotcazou@adacore.com> | |
23666 | ||
23667 | * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE | |
23668 | if it has the DW_AT_data_member_location attribute. | |
23669 | ||
23670 | 2019-07-03 Richard Biener <rguenther@suse.de> | |
23671 | ||
23672 | * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR | |
23673 | dumping. | |
23674 | ||
23675 | 2019-07-03 Sylvia Taylor <sylvia.taylor@arm.com> | |
23676 | ||
23677 | * config/aarch64/aarch64.md (FP_REGNUM): New constant. | |
23678 | (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM. | |
23679 | (tlsdesc_small_sve_<mode>): Likewise. | |
23680 | ||
23681 | 2019-07-03 Martin Liska <mliska@suse.cz> | |
23682 | ||
23683 | * Makefile.in: Define ZSTD_LIB. | |
23684 | * common.opt: Adjust compression level | |
23685 | to support also zstd levels. | |
23686 | * config.in: Regenerate. | |
23687 | * configure: Likewise. | |
23688 | * configure.ac: Add --with-zstd and --with-zstd-include options | |
23689 | and detect ZSTD. | |
23690 | * doc/install.texi: Mention zstd dependency. | |
23691 | * gcc.c: Print supported LTO compression algorithms. | |
23692 | * lto-compress.c (lto_normalized_zstd_level): Likewise. | |
23693 | (lto_compression_zstd): Likewise. | |
23694 | (lto_uncompression_zstd): Likewise. | |
23695 | (lto_end_compression): Dispatch in between zlib and zstd. | |
23696 | (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED. | |
23697 | (lto_uncompression_zlib): Make it static. | |
23698 | * lto-compress.h (lto_end_uncompression): Fix GNU coding style. | |
23699 | * lto-section-in.c (lto_get_section_data): Pass info | |
23700 | about used compression. | |
23701 | * lto-streamer-out.c: By default use zstd when possible. | |
23702 | * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression | |
23703 | (TV_IPA_LTO_COMPRESS): Likewise for compression. | |
23704 | ||
23705 | 2019-07-03 Martin Liska <mliska@suse.cz> | |
23706 | ||
23707 | * lto-section-in.c (lto_get_section_data): Add "lto" section. | |
23708 | * lto-section-out.c (lto_destroy_simple_output_block): Never | |
23709 | compress LTO_section_lto section. | |
23710 | * lto-streamer-out.c (produce_asm): Do not set major_version | |
23711 | and minor_version. | |
23712 | (lto_output_toplevel_asms): Likewise. | |
23713 | (produce_lto_section): New function. | |
23714 | (lto_output): Call produce_lto_section. | |
23715 | (lto_write_mode_table): Do not set major_version and | |
23716 | minor_version. | |
23717 | (produce_asm_for_decls): Likewise. | |
23718 | * lto-streamer.h (enum lto_section_type): Add LTO_section_lto | |
23719 | type. | |
23720 | (struct lto_header): Remove. | |
23721 | (struct lto_section): New struct. | |
23722 | (struct lto_simple_header): Do not inherit from lto_header. | |
23723 | (struct lto_file_decl_data): Add lto_section_header field. | |
23724 | ||
23725 | 2019-07-03 Martin Liska <mliska@suse.cz> | |
23726 | ||
23727 | * lra-eliminations.c (eliminate_regs_in_insn): Remove | |
23728 | dead assignemts. | |
23729 | * reg-stack.c (check_asm_stack_operands): Likewise. | |
23730 | * tree-ssa-structalias.c (create_function_info_for): Likewise. | |
23731 | * tree-vect-generic.c (expand_vector_operations_1): Likewise. | |
23732 | * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use | |
23733 | force_expand_binop. | |
23734 | ||
23735 | 2019-07-03 Martin Liska <mliska@suse.cz> | |
23736 | ||
23737 | PR tree-optimization/90892 | |
23738 | * builtins.c (inline_expand_builtin_string_cmp): Handle '\0' | |
23739 | in string constants. | |
23740 | ||
23741 | 2019-07-03 Martin Liska <mliska@suse.cz> | |
23742 | ||
23743 | PR middle-end/90899 | |
23744 | * multiple_target.c (create_dispatcher_calls): Add to comdat | |
23745 | group only if set for ifunc. | |
23746 | ||
23747 | 2019-07-03 Martin Liska <mliska@suse.cz> | |
23748 | ||
23749 | PR target/88056 | |
23750 | * config/i386/host-mingw32.c (mingw32_gt_pch_use_address): | |
23751 | Define local_object_name in outer scope in order to handle | |
23752 | use-after-scope issue. | |
23753 | ||
23754 | 2019-07-03 Martin Liska <mliska@suse.cz> | |
23755 | ||
23756 | * common.opt: Add fprofile-note. | |
23757 | * coverage.c (coverage_init): Append the option | |
23758 | to bbg_file_name. | |
23759 | * doc/invoke.texi: Document -fprofile-note. | |
23760 | ||
23761 | 2019-07-03 Jakub Jelinek <jakub@redhat.com> | |
23762 | ||
23763 | PR tree-optimization/91033 | |
23764 | * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized, | |
23765 | vect_analyze_data_refs): Add bool * arguments. | |
23766 | * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument, | |
23767 | if failure is due to scatter/gather, set *fatal to false if non-NULL. | |
23768 | * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise. | |
23769 | * tree-vect-loop.c (vect_analyze_loop_2): Adjust | |
23770 | vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers. | |
23771 | * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust | |
23772 | vect_analyze_data_refs caller. | |
23773 | ||
23774 | * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_ | |
23775 | clause. | |
23776 | * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of | |
23777 | OMP_CLAUSE__CONDTEMP_ as range's upper bound. | |
23778 | (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define. | |
23779 | * tree.c (omp_clause_num_ops, omp_clause_code_name): Add | |
23780 | OMP_CLAUSE__SCANTEMP_ entry. | |
23781 | (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_. | |
23782 | * tree-pretty-print.c (dump_omp_clause): Likewise. | |
23783 | * tree-nested.c (convert_nonlocal_omp_clauses, | |
23784 | convert_local_omp_clauses): Likewise. | |
23785 | * omp-general.h (struct omp_for_data): Add have_scantemp and | |
23786 | have_nonctrl_scantemp members. | |
23787 | * omp-general.c (omp_extract_for_data): Initialize them. | |
23788 | * omp-low.c (struct omp_context): Add scan_exclusive member. | |
23789 | (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind | |
23790 | result again with GF_OMP_FOR_KIND_MASK. Initialize also | |
23791 | ctx->scan_exclusive. | |
23792 | (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead | |
23793 | of !ctx->scan_inclusive. | |
23794 | (lower_rec_input_clauses): Simplify gimplification of dtors using | |
23795 | gimplify_and_add. For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN | |
23796 | rather than rvarp. Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing | |
23797 | loops. Don't add barrier for reduction_omp_orig_ref if | |
23798 | ctx->scan_??xclusive. | |
23799 | (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive. | |
23800 | (lower_omp_scan): Use ctx->scan_exclusive instead | |
23801 | of !ctx->scan_inclusive. Handle worksharing loops with inscan | |
23802 | reductions. Use new_vard != new_var instead of repeated | |
23803 | omp_is_reference calls. | |
23804 | (omp_find_scan, lower_omp_for_scan): New functions. | |
23805 | (lower_omp_for): Call lower_omp_for_scan for worksharing loops with | |
23806 | inscan reductions. | |
23807 | * omp-expand.c (expand_omp_scantemp_alloc): New function. | |
23808 | (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp | |
23809 | and fd->have_scantemp. | |
23810 | ||
23811 | * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions | |
23812 | on worksharing loop propagate it as shared clause to containing | |
23813 | combined parallel. | |
23814 | ||
23815 | * omp-expand.c (expand_omp_for_static_nochunk, | |
23816 | expand_omp_for_static_chunk): For nowait worksharing loop with | |
23817 | conditional lastprivate clause(s), emit GOMP_loop_end_nowait call | |
23818 | at the end. | |
23819 | ||
23820 | 2019-07-02 qing zhao <qing.zhao@oracle.com> | |
23821 | ||
23822 | PR preprocessor/90581 | |
23823 | * doc/cppopts.texi: Add document for -fmax-include-depth. | |
23824 | * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth. | |
23825 | ||
23826 | 2019-07-02 Uroš Bizjak <ubizjak@gmail.com> | |
23827 | ||
23828 | * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb): | |
23829 | Use TARGET_SSE2 && SSE_REGNO_P in split condition. | |
23830 | (mmx_packssdw): Ditto. | |
23831 | (mmx_punpckhbw): Ditto. | |
23832 | (mmx_punpcklbw): Ditto. | |
23833 | (mmx_punpckhwd): Ditto. | |
23834 | (mmx_punpcklwd): Ditto. | |
23835 | (mmx_punpckhdq): Ditto. | |
23836 | (mmx_punpckldq): Ditto. | |
23837 | (*vec_dupv4hi): Ditto. | |
23838 | (*vec_dupv2si): Ditto. | |
23839 | (mmx_pmovmskb): Ditto. | |
23840 | * config/i386/sse.md (sse_cvtpi2ps): Use | |
23841 | TARGET_SSE2 && SSE_REG_P in split condition. | |
23842 | (ssse3_ph<plusminus_mnemonic>wv4hi3): Use | |
23843 | TARGET_SSSE3 && SSE_REGNO_P in split condition. | |
23844 | (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto. | |
23845 | (ssse3_pshufbv8qi3): Ditto. | |
23846 | (ssse3_palignrdi): Ditto. | |
23847 | ||
23848 | 2019-07-02 Andrew Stubbs <ams@codesourcery.com> | |
23849 | ||
23850 | * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn | |
23851 | with inlined save and restore. | |
23852 | ||
23853 | 2019-07-02 Eric Botcazou <ebotcazou@adacore.com> | |
23854 | ||
23855 | * cfgexpand.c (pass_expand::execute): Deal specially with instructions | |
23856 | to be inserted on single successor edge of the entry block. Then call | |
23857 | commit_edge_insertions instead of inserting the instructions manually. | |
23858 | * cfgrtl.c (commit_edge_insertions): Do not verify flow info during | |
23859 | RTL expansion and rebuild jump labels chain. | |
23860 | ||
23861 | 2019-07-02 Richard Biener <rguenther@suse.de> | |
23862 | ||
23863 | * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and | |
23864 | TI_CHREC_KNOWN. | |
23865 | * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known): | |
23866 | Define here. | |
23867 | * tree.c (build_common_tree_nodes): Initialize them. | |
23868 | * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known): | |
23869 | Make declarations comments. | |
23870 | * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know, | |
23871 | chrec_known): Remove definitions. | |
23872 | (initialize_scalar_evolutions_analyzer): Remove. | |
23873 | (scev_initialize): Do not call initialize_scalar_evolutions_analyzer. | |
23874 | * tree-streamer.c (preload_common_nodes): Do not preload | |
23875 | TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN. | |
23876 | ||
23877 | 2019-07-02 Jan Hubicka <jh@suse.cz> | |
23878 | ||
23879 | * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten | |
23880 | sanity check. | |
23881 | ||
23882 | 2019-07-02 Jan Hubicka <jh@suse.cz> | |
23883 | ||
23884 | * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename | |
23885 | to .. | |
23886 | (nonoverlapping_component_refs_since_match_p): ... this one; | |
23887 | handle also non-decl bases; return -1 if search gave up. | |
23888 | (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias, | |
23889 | nonoverlapping_component_refs_of_decl_p_no_alias to | |
23890 | nonoverlapping_component_refs_since_match_p_may_alias, | |
23891 | nonoverlapping_component_refs_since_match_p_no_alias. | |
23892 | (dump_alias_stats): Update dumping. | |
23893 | (aliasing_matching_component_refs_p): Break out from ...; | |
23894 | dispatch to nonoverlapping_component_refs_for_decl_p | |
23895 | and nonoverlapping_component_refs_since_match_p. | |
23896 | (aliasing_component_refs_p): ... here; call | |
23897 | nonoverlapping_component_refs_p in scenarios where we can not | |
23898 | precisely determine base match. | |
23899 | (decl_refs_may_alias_p): Use | |
23900 | nonoverlapping_component_refs_since_match_p. | |
23901 | (indirect_ref_may_alias_decl_p): Do not call | |
23902 | nonoverlapping_component_refs_p. | |
23903 | (indirect_refs_may_alias_p): Likewise. | |
23904 | ||
23905 | 2019-07-02 Jan Hubicka <jh@suse.cz> | |
23906 | ||
23907 | * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components | |
23908 | to clobber of return value. | |
23909 | ||
23910 | 2019-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
23911 | ||
23912 | * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic | |
23913 | for is_neon_type instructions that have not already been categorized. | |
23914 | ||
23915 | 2019-07-02 Richard Biener <rguenther@suse.de> | |
23916 | ||
23917 | PR tree-optimization/58483 | |
23918 | * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF | |
23919 | for MEM_REF base hashing. | |
23920 | (equal_mem_array_ref_p): Likewise for base comparison. | |
23921 | ||
23922 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
23923 | ||
23924 | * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a | |
23925 | parameterized name. | |
23926 | (signbit<mode>2): Use that name. Simplify. | |
23927 | ||
23928 | 2019-07-01 Joern Rennecke <joern.rennecke@riscy-ip.com> | |
23929 | ||
23930 | PR middle-end/66726 | |
23931 | * tree-ssa-phiopt.c (factor_out_conditional_conversion): | |
23932 | Tune heuristic from PR71016 to allow MIN / MAX. | |
23933 | ||
23934 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
23935 | ||
23936 | * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a | |
23937 | parameterized name. | |
23938 | (abs<mode>2): Use that name. Simplify. | |
23939 | ||
23940 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
23941 | ||
23942 | * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a | |
23943 | parameterized name. | |
23944 | (neg<mode>2): Use that name. Simplify. | |
23945 | ||
23946 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
23947 | ||
23948 | * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized | |
23949 | name. | |
23950 | (abs<mode>2): Use that name. Simplify. | |
23951 | ||
23952 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
23953 | ||
23954 | * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized | |
23955 | name. | |
23956 | (neg<mode>2): Use that name. Simplify. | |
23957 | ||
23958 | 2019-07-01 Uroš Bizjak <ubizjak@gmail.com> | |
23959 | ||
23960 | * config/i386/i386.md ("isa" attribute): Add sse_noavx. | |
23961 | ("enabled" attribute): Handle sse_noavx isa attribute. | |
23962 | * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute. | |
23963 | Use TARGET_SSE && SSE_REGNO_P in split condition. | |
23964 | (*vec_dupv2sf): Ditto. | |
23965 | ||
23966 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
23967 | ||
23968 | * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized | |
23969 | name. | |
23970 | (floatsi<mode>2): Use that name. Simplify. | |
23971 | ||
23972 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
23973 | ||
23974 | * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a | |
23975 | parameterized name. | |
23976 | (extenddf<mode>2_vsx): Make this a parameterized name. | |
23977 | (extenddf<mode>2): Use those names. Simplify. | |
23978 | ||
23979 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
23980 | ||
23981 | * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized | |
23982 | name. | |
23983 | (eh_return): Use that name. Simplify. | |
23984 | ||
23985 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
23986 | ||
23987 | * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name. | |
23988 | (doloop_end): Use that name. Simplify. | |
23989 | ||
23990 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
23991 | ||
23992 | * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a | |
23993 | parameterized name. | |
23994 | (indirect_jump): Use that name. Simplify. | |
23995 | ||
23996 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
23997 | ||
23998 | * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a | |
23999 | parameterized name. | |
24000 | (abs<mode>2): Use that name. Simplify. | |
24001 | ||
24002 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
24003 | ||
24004 | * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a | |
24005 | parameterized name. | |
24006 | (fix_trunc<mode>si2): Use that name. Simplify. | |
24007 | ||
24008 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
24009 | ||
24010 | * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name. | |
24011 | (allocate_stack): Use that name. Simplify. | |
24012 | ||
24013 | 2019-07-01 Martin Sebor <msebor@redhat.com> | |
24014 | ||
24015 | PR middle-end/90923 | |
24016 | * hash-map.h (hash_map::put): On insertion invoke element ctor. | |
24017 | (hash_map::get_or_insert): Same. Reformat comment. | |
24018 | * hash-set.h (hash_set::add): On insertion invoke element ctor. | |
24019 | * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New. | |
24020 | * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New. | |
24021 | * hash-table.h (hash_table::operator=): Prevent copy assignment. | |
24022 | (hash_table::hash_table (const hash_table&)): Use copy ctor | |
24023 | instead of assignment to copy elements. | |
24024 | ||
24025 | 2019-07-01 Wilco Dijkstra <wdijkstr@arm.com> | |
24026 | John David Anglin <danglin@gcc.gnu.org> | |
24027 | ||
24028 | PR target/90963 | |
24029 | * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx | |
24030 | using saved frame pointer. | |
24031 | ||
24032 | 2019-07-01 Eric Botcazou <ebotcazou@adacore.com> | |
24033 | ||
24034 | PR middle-end/64242 | |
24035 | * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last. | |
24036 | Add frame clobber and schedule blockage. | |
24037 | ||
24038 | 2019-07-01 Sandra Loosemore <sandra@codesourcery.com> | |
24039 | ||
24040 | * doc/invoke.texi (Link Options): Further editorial changes to | |
24041 | -flinker-output docs. | |
24042 | ||
24043 | 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org> | |
24044 | ||
24045 | * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem): | |
24046 | Load both operands of a PLUS into registers separately. | |
24047 | ||
24048 | 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com> | |
24049 | ||
24050 | * config/s390/vector.md: Fix shift count operand printing. | |
24051 | ||
24052 | 2019-07-01 Richard Sandiford <richard.sandiford@arm.com> | |
24053 | ||
24054 | * ira-lives.c (process_bb_node_lives): Use ira_setup_alts. | |
24055 | ||
24056 | 2019-07-01 Richard Sandiford <richard.sandiford@arm.com> | |
24057 | ||
24058 | * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers. | |
24059 | Use recog_data to test for an output operand. | |
24060 | ||
24061 | 2019-07-01 Richard Sandiford <richard.sandiford@arm.com> | |
24062 | ||
24063 | * ira.c (ira_setup_alts): If any valid alternatives have zero cost, | |
24064 | exclude any others that are disparaged or that are bound to need | |
24065 | a reload or spill. | |
24066 | (ira_get_dup_out_num): Expand comment. | |
24067 | ||
24068 | 2019-07-01 Richard Sandiford <richard.sandiford@arm.com> | |
24069 | ||
24070 | * ira.c (ira_setup_alts): Use preprocess_constraints to get the | |
24071 | constraint string for each operand/alternative combo. Only handle | |
24072 | '%' at the start of constraint strings, and look for it outside | |
24073 | the main loop. | |
24074 | ||
24075 | 2019-07-01 Richard Sandiford <richard.sandiford@arm.com> | |
24076 | ||
24077 | * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use | |
24078 | alternative_mask instead of HARD_REG_SET to represent a | |
24079 | bitmask of alternatives. | |
24080 | * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise. | |
24081 | * ira-conflicts.c (add_insn_allocno_copies): Likewise. | |
24082 | ||
24083 | 2019-07-01 Martin Liska <mliska@suse.cz> | |
24084 | ||
24085 | * edit-context.c (test_applying_fixits_unreadable_file): Do not | |
24086 | use () for a constructor call. | |
24087 | (test_applying_fixits_line_out_of_range): Likewise. | |
24088 | * ggc-page.c (alloc_page): Use (void *) for %p printf format | |
24089 | argument. | |
24090 | (free_page): Likewise. | |
24091 | ||
24092 | 2019-07-01 Vladislav Ivanishin <vlad@ispras.ru> | |
24093 | ||
24094 | * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder | |
24095 | parameter names to match usage (no functional change). | |
24096 | (GdbPrettyPrinters.add_printer_for_regex): Ditto. | |
24097 | ||
24098 | 2019-07-01 Richard Biener <rguenther@suse.de> | |
24099 | ||
24100 | * tree-ssa-sccvn.c (class pass_fre): Add may_iterate | |
24101 | pass parameter. | |
24102 | (pass_fre::execute): Honor it. | |
24103 | * passes.def: Adjust pass_fre invocations to allow iterating, | |
24104 | add non-iterating pass_fre before late threading/dom. | |
24105 | ||
24106 | 2019-07-01 Richard Biener <rguenther@suse.de> | |
24107 | ||
24108 | * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust | |
24109 | TARGET_MEM_REF handling to also handle address-taken ones. | |
24110 | ||
24111 | 2019-07-01 Hongtao Liu <hongtao.liu@intel.com> | |
24112 | ||
24113 | * doc/sourcebuild.texi (Effective-Target Keywords, Other | |
24114 | hardware attributes): Document avx512vp2intersect. | |
24115 | ||
24116 | 2019-06-30 Uroš Bizjak <ubizjak@gmail.com> | |
24117 | ||
24118 | * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2. | |
24119 | (abs<mode>2): New expander. | |
24120 | * config/i386/i386-builtin.def (__builtin_ia32_pabsb): | |
24121 | Use CODE_FOR_ssse3_absv8qi2. | |
24122 | (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2. | |
24123 | (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2. | |
24124 | ||
24125 | 2019-06-30 Uroš Bizjak <ubizjak@gmail.com> | |
24126 | ||
24127 | * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx | |
24128 | to sse, sse_noavx and avx. Update all uses. | |
24129 | ||
24130 | 2019-06-30 Uroš Bizjak <ubizjak@gmail.com> | |
24131 | ||
24132 | * config/i386/mmx.md (sse_movntq): Add "isa" attribute. | |
24133 | (*mmx_<plusminus_insn><mode>3): Ditto. | |
24134 | (*mmx_mulv4hi3"): Ditto. | |
24135 | (*mmx_smulv4hi3_highpart): Ditto. | |
24136 | (*mmx_umulv4hi3_highpart): Ditto. | |
24137 | (*mmx_pmaddwd): Ditto. | |
24138 | (*sse2_umulv1siv1di3): Ditto. | |
24139 | (*mmx_<code>v4hi3): Ditto. | |
24140 | (*mmx_<code>v8qi3): Ditto. | |
24141 | (mmx_ashr<mode>3): Ditto. | |
24142 | ("mmx_<shift_insn><mode>3): Ditto. | |
24143 | (*mmx_eq<mode>3): Ditto. | |
24144 | (mmx_gt<mode>3): Ditto. | |
24145 | (mmx_andnot<mode>3): Ditto. | |
24146 | (*mmx_<code><mode>3): Ditto. | |
24147 | (*mmx_pinsrw): Ditto. | |
24148 | (*mmx_pextrw): Ditto. | |
24149 | (mmx_pshufw_1): Ditto. | |
24150 | (*mmx_uavgv8qi3): Ditto. | |
24151 | (*mmx_uavgv4hi3): Ditto. | |
24152 | ("mmx_psadbw): Ditto. | |
24153 | * config/i386/sse.md (sse_cvtps2pi): Ditto. | |
24154 | (sse_cvttps2pi): Ditto. | |
24155 | (ssse3_pmaddubsw): Ditto. | |
24156 | (*ssse3_pmulhrswv4hi3): Ditto. | |
24157 | (ssse3_psign<mode>3): Ditto. | |
24158 | ||
24159 | 2019-06-29 Eric Botcazou <ebotcazou@adacore.com> | |
24160 | ||
24161 | * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian | |
24162 | adjustment for bit-fields to all aggregate types. | |
24163 | ||
24164 | 2019-06-28 Michael Meissner <meissner@linux.ibm.com> | |
24165 | ||
24166 | * config/rs6000/predicates.md (pcrel_address): Use | |
24167 | SYMBOL_REF_LOCAL_P to determine if a label is local. | |
24168 | (pcrel_external_address): New predicate. | |
24169 | (non_prefixed_mem_operand): Delete, predicate not used. | |
24170 | * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use | |
24171 | SYMBOL_REF_LOCAL_P to determine if we can use pc-relative | |
24172 | addressing. | |
24173 | (SYMBOL_REF_PCREL_P): Likewise. | |
24174 | ||
24175 | PR target/91009 | |
24176 | * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX | |
24177 | alternative. | |
24178 | (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative. | |
24179 | (floatunssi<mode>2_lfiwzx): Add non-VSX alternative. | |
24180 | (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative. | |
24181 | ||
24182 | 2019-06-28 Iain Sandoe <iain@sandoe.co.uk> | |
24183 | ||
24184 | * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove | |
24185 | override on extra_headers. | |
24186 | ||
24187 | 2019-06-28 Iain Sandoe <iain@sandoe.co.uk> | |
24188 | ||
24189 | * config/darwin-c.c (pop_field_alignment): Quote #pragma options. | |
24190 | * config/darwin-driver.c (darwin_default_min_version): Remove newline | |
24191 | from warning. | |
24192 | (darwin_driver_init): Likewise. | |
24193 | ||
24194 | 2019-06-28 Jan Beulich <jbeulich@suse.com> | |
24195 | ||
24196 | * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>, | |
24197 | vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>): | |
24198 | Eliminate redundant alternative. | |
24199 | ||
24200 | 2019-06-28 Jan Beulich <jbeulich@suse.com> | |
24201 | ||
24202 | * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>, | |
24203 | vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier. | |
24204 | Use vector_operand. | |
24205 | ||
24206 | 2019-06-28 Claudiu Zissulescu <claziss@synopsys.com> | |
24207 | ||
24208 | * config/arc/arc.c (arc_rtx_costs): All short instructions are | |
24209 | having a lower cost regardless of the speed option. | |
24210 | ||
24211 | 2019-06-28 Jan Beulich <jbeulich@suse.com> | |
24212 | ||
24213 | * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use | |
24214 | vector_operand plus, on both alternatives, "Bm" constraint. | |
24215 | ||
24216 | 2019-06-28 Dennis Zhang <dennis.zhang@arm.com> | |
24217 | ||
24218 | * config/arm/arm.md: Remove redundant constraints from | |
24219 | define_expand but leave reload_inm and reload_outm patterns | |
24220 | untouched since they need special constraints to work. | |
24221 | * config/arm/arm-fixed.md: Remove redundant constraints from | |
24222 | define_expand. | |
24223 | * config/arm/iwmmxt.md: Likewise. | |
24224 | * config/arm/neon.md: Likewise. | |
24225 | * config/arm/sync.md: Likewise. | |
24226 | * config/arm/thumb1.md: Likewise. | |
24227 | * config/arm/vec-common.md: Likewise. | |
24228 | ||
24229 | 2019-06-27 Ilia Diachkov <ilia.diachkov@optimitech.com> | |
24230 | ||
24231 | * doc/install.texi: Document --disable-tm-clone-registry. | |
24232 | ||
24233 | 2019-06-27 Jakub Jelinek <jakub@redhat.com> | |
24234 | ||
24235 | PR c++/91024 | |
24236 | * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT | |
24237 | statements. | |
24238 | ||
24239 | PR tree-optimization/91010 | |
24240 | * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2, | |
24241 | return true. Otherwise, don't call operand_equal_p if offset1 or | |
24242 | offset2 is NULL and just return false. | |
24243 | ||
24244 | 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> | |
24245 | ||
24246 | * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour | |
24247 | user-specified float mode choice for kernel mode code. | |
24248 | ||
24249 | 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> | |
24250 | ||
24251 | * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the | |
24252 | spec. | |
24253 | ||
24254 | 2019-06-27 Iain Sandoe <iain@sandoe.co.uk> | |
24255 | ||
24256 | * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not | |
24257 | use longcall for 64b code. | |
24258 | ||
24259 | 2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com> | |
24260 | ||
24261 | * builtins.c (get_memory_rtx): Fix comment. | |
24262 | * optabs.def (movmem_optab): Change to cpymem_optab. | |
24263 | * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem. | |
24264 | (emit_block_move_hints): Change movmem to cpymem. | |
24265 | * defaults.h: Change movmem to cpymem. | |
24266 | * targhooks.c (get_move_ratio): Change movmem to cpymem. | |
24267 | (default_use_by_pieces_infrastructure_p): Ditto. | |
24268 | * config/aarch64/aarch64-protos.h: Change movmem to cpymem. | |
24269 | * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem | |
24270 | to cpymem. | |
24271 | * config/aarch64/aarch64.h: Change movmem to cpymem. | |
24272 | * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi. | |
24273 | * config/alpha/alpha.h: Change movmem to cpymem in comment. | |
24274 | * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change | |
24275 | movmem to cpymem. | |
24276 | * config/arc/arc-protos.h: Change movmem to cpymem. | |
24277 | * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem. | |
24278 | * config/arc/arc.h: Change movmem to cpymem in comment. | |
24279 | * config/arc/arc.md (movmemsi): Change movmem to cpymem. | |
24280 | * config/arm/arm-protos.h: Change movmem to cpymem in names. | |
24281 | * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi, | |
24282 | gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem. | |
24283 | * config/arm/arm.md (movmemqi): Change movmem to cpymem. | |
24284 | * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem. | |
24285 | * config/avr/avr-protos.h: Change movmem to cpymem. | |
24286 | * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi, | |
24287 | avr_out_movmem): Change movmem to cpymem. | |
24288 | * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>): | |
24289 | Change movmem to cpymem. | |
24290 | * config/bfin/bfin-protos.h: Change movmem to cpymem. | |
24291 | * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem): | |
24292 | Change movmem to cpymem. | |
24293 | * config/bfin/bfin.h: Change movmem to cpymem in comment. | |
24294 | * config/bfin/bfin.md (movmemsi): Change name to cpymemsi. | |
24295 | * config/c6x/c6x-protos.h: Change movmem to cpymem. | |
24296 | * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem. | |
24297 | * config/c6x/c6x.md (movmemsi): Change name to cpymemsi. | |
24298 | * config/frv/frv.md (movmemsi): Change name to cpymemsi. | |
24299 | * config/ft32/ft32.md (movmemsi): Change name to cpymemsi. | |
24300 | * config/h8300/h8300.md (movmemsi): Change name to cpymemsi. | |
24301 | * config/i386/i386-expand.c (expand_set_or_movmem_via_loop, | |
24302 | expand_set_or_movmem_via_rep, expand_movmem_epilogue, | |
24303 | expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue, | |
24304 | expand_small_cpymem_or_setmem, | |
24305 | expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves, | |
24306 | expand_set_or_cpymem_constant_prologue, | |
24307 | ix86_expand_set_or_cpymem): Change movmem to cpymem. | |
24308 | * config/i386/i386-protos.h: Change movmem to cpymem. | |
24309 | * config/i386/i386.h: Change movmem to cpymem in comment. | |
24310 | * config/i386/i386.md (movmem<mode>): Change name to cpymem. | |
24311 | (setmem<mode>): Change expansion function name. | |
24312 | * config/lm32/lm32.md (movmemsi): Change name to cpymemsi. | |
24313 | * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op, | |
24314 | movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem. | |
24315 | * config/m32c/m32c-protos.h: Change movmem to cpymem. | |
24316 | * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem. | |
24317 | * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem. | |
24318 | * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem | |
24319 | to cpymem. | |
24320 | * config/mcore/mcore.md (movmemsi): Change name to cpymemsi. | |
24321 | * config/microblaze/microblaze.c: Change movmem to cpymem in comment. | |
24322 | * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi. | |
24323 | * config/mips/mips.c (mips_use_by_pieces_infrastructure_p): | |
24324 | Change movmem to cpymem. | |
24325 | * config/mips/mips.h: Change movmem to cpymem. | |
24326 | * config/mips/mips.md (movmemsi): Change name to cpymemsi. | |
24327 | * config/nds32/nds32-memory-manipulation.c | |
24328 | (nds32_expand_movmemsi_loop_unknown_size, | |
24329 | nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop, | |
24330 | nds32_expand_movmemsi_unroll, | |
24331 | nds32_expand_movmemsi): Change movmem to cpymem. | |
24332 | * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi. | |
24333 | * config/nds32/nds32-protos.h: Change movmem to cpymem. | |
24334 | * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem. | |
24335 | (pa_adjust_insn_length): Change call to compute_movmem_length. | |
24336 | * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload, | |
24337 | movmemdi, movmemdi_prereload, | |
24338 | movmemdi_postreload): Change movmem to cpymem. | |
24339 | * config/pdp11/pdp11.md (movmemhi, movmemhi1, | |
24340 | movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem. | |
24341 | * config/riscv/riscv.c: Change movmem to cpymem in comment. | |
24342 | * config/riscv/riscv.h: Change movmem to cpymem. | |
24343 | * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi. | |
24344 | * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi. | |
24345 | * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change | |
24346 | movmem to cpymem. | |
24347 | * config/s390/s390-protos.h: Change movmem to cpymem. | |
24348 | * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem, | |
24349 | s390_expand_insv): Change movmem to cpymem. | |
24350 | * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short, | |
24351 | movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem. | |
24352 | * config/sh/sh.md (movmemsi): Change name to cpymemsi. | |
24353 | * config/sparc/sparc.h: Change movmem to cpymem in comment. | |
24354 | * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype | |
24355 | for nonexistent function. | |
24356 | * config/vax/vax.h: Change movmem to cpymem in comment. | |
24357 | * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem. | |
24358 | * config/visium/visium.h: Change movmem to cpymem in comment. | |
24359 | * config/visium/visium.md (movmemsi): Change name to cpymemsi. | |
24360 | * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi. | |
24361 | * doc/md.texi: Change movmem to cpymem and update description to match. | |
24362 | * doc/rtl.texi: Change movmem to cpymem. | |
24363 | * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem. | |
24364 | * doc/tm.texi: Regenerate. | |
24365 | ||
24366 | 2019-06-27 Bill Schmidt <wschmidt@linux.ibm.com> | |
24367 | ||
24368 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable | |
24369 | -fvariable-expansion-in-unroller by default. | |
24370 | * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new | |
24371 | default for Power. | |
24372 | ||
24373 | 2019-06-27 David Edelsohn <dje.gcc@gmail.com> | |
24374 | ||
24375 | Revert | |
24376 | 2019-06-26 David Edelsohn <dje.gcc@gmail.com> | |
24377 | * config.gcc (powerpc-ibm-aix*): Define target_gtfiles. | |
24378 | ||
24379 | * config.gcc(rs6000-*-*): Define target_gtfiles. | |
24380 | ||
24381 | 2019-06-27 Jan Hubicka <jh@suse.cz> | |
24382 | ||
24383 | * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag. | |
24384 | (add_type_duplicate): When odr hash is not allocated, to nothing. | |
24385 | (odr_based_tbaa_p): New function. | |
24386 | (set_type_canonical_for_odr_type): New function. | |
24387 | * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p, | |
24388 | set_type_canonical_for_odr_type): New. | |
24389 | * tree.c (gimple_canonical_types_compatible_p): ODR types with | |
24390 | ODR based TBAA are not equivalent to non-ODR types. | |
24391 | ||
24392 | 2019-06-27 Martin Liska <mliska@suse.cz> | |
24393 | ||
24394 | PR tree-optimization/90974 | |
24395 | PR rtl-optimization/90975 | |
24396 | PR rtl-optimization/90976 | |
24397 | PR target/91016 | |
24398 | PR tree-optimization/91017 | |
24399 | * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove | |
24400 | unused tmp. | |
24401 | * lra.c (lra_set_insn_recog_data): Remove a leftover from | |
24402 | initial commit of IRA. | |
24403 | * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead | |
24404 | of op0 and op1. | |
24405 | * tree-vect-loop.c (vect_create_epilog_for_reduction): | |
24406 | Remove unused mode1. | |
24407 | * tree-vect-stmts.c (vectorizable_call): Remove dead assignment | |
24408 | to new_stmt_info. | |
24409 | ||
24410 | 2019-06-27 Jakub Jelinek <jakub@redhat.com> | |
24411 | ||
24412 | PR target/90991 | |
24413 | * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand | |
24414 | instead of register_operand for operands[1], add m to its constraints | |
24415 | if operands[2] uses "C" constraint. Ensure in condition that if | |
24416 | operands[2] is not 0, then operands[1] is not a MEM. For last two | |
24417 | alternatives, use unaligned loads instead of aligned if operands[1] is | |
24418 | misaligned_operand. | |
24419 | ||
24420 | 2019-06-27 Martin Liska <mliska@suse.cz> | |
24421 | ||
24422 | * asan.c (asan_emit_allocas_unpoison): Remove obviously | |
24423 | dead assignments. | |
24424 | * bt-load.c (move_btr_def): Likewise. | |
24425 | * builtins.c (expand_builtin_apply_args_1): Likewise. | |
24426 | (expand_builtin_apply): Likewise. | |
24427 | * cfgexpand.c (expand_asm_stmt): Likewise. | |
24428 | (construct_init_block): Likewise. | |
24429 | * cfghooks.c (verify_flow_info): Likewise. | |
24430 | * cfgloopmanip.c (remove_path): Likewise. | |
24431 | * cfgrtl.c (rtl_verify_bb_layout): Likewise. | |
24432 | * cgraph.c (cgraph_node::set_pure_flag): Likewise. | |
24433 | * combine.c (simplify_if_then_else): Likewise. | |
24434 | * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise. | |
24435 | (choose_basereg): Likewise. | |
24436 | (ix86_expand_prologue): Likewise. | |
24437 | (ix86_preferred_output_reload_class): Likewise. | |
24438 | * cselib.c (cselib_record_sets): Likewise. | |
24439 | * df-scan.c (df_scan_alloc): Likewise. | |
24440 | * dojump.c (do_jump_by_parts_greater_rtx): Likewise. | |
24441 | * early-remat.c (early_remat::record_equiv_candidates): Likewise. | |
24442 | * emit-rtl.c (try_split): Likewise. | |
24443 | * graphite-scop-detection.c (assign_parameter_index_in_region): | |
24444 | Likewise. | |
24445 | * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise. | |
24446 | * ira-color.c (setup_profitable_hard_regs): Likewise. | |
24447 | * ira.c (rtx_moveable_p): Likewise. | |
24448 | * lra-eliminations.c (eliminate_regs_in_insn): Likewise. | |
24449 | * read-rtl.c (read_subst_mapping): Likewise. | |
24450 | * regrename.c (scan_rtx): Likewise. | |
24451 | * reorg.c (fill_slots_from_thread): Likewise. | |
24452 | * tree-inline.c (tree_function_versioning): Likewise. | |
24453 | * tree-ssa-reassoc.c (optimize_ops_list): Likewise. | |
24454 | * tree-ssa-sink.c (statement_sink_location): Likewise. | |
24455 | * tree-ssa-threadedge.c (thread_across_edge): Likewise. | |
24456 | * tree-vect-loop.c (vect_get_loop_niters): Likewise. | |
24457 | (vect_create_epilog_for_reduction): Likewise. | |
24458 | * tree.c (build_nonstandard_integer_type): Likewise. | |
24459 | ||
24460 | 2019-06-27 Richard Biener <rguenther@suse.de> | |
24461 | ||
24462 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS. | |
24463 | ||
24464 | 2019-06-27 Jun Ma <JunMa@linux.alibaba.com> | |
24465 | ||
24466 | PR tree-optimization/89772 | |
24467 | * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in | |
24468 | out-of-bound accesses checking. | |
24469 | ||
24470 | 2019-06-27 Martin Liska <mliska@suse.cz> | |
24471 | ||
24472 | PR tree-optimization/91014 | |
24473 | * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out | |
24474 | when LHS is NULL_TREE. | |
24475 | ||
24476 | 2019-06-27 Martin Liska <mliska@suse.cz> | |
24477 | ||
24478 | * symbol-summary.h (traverse): Pass | |
24479 | argument a to the call of callback. | |
24480 | (gt_ggc_mx): Mark arguments as unused. | |
24481 | (gt_pch_nx): Likewise. | |
24482 | ||
24483 | 2019-06-27 Kewen Lin <linkw@gcc.gnu.org> | |
24484 | ||
24485 | PR target/62147 | |
24486 | * loop-iv.c (find_simple_exit): Call finite_loop_p to update | |
24487 | finiteness. | |
24488 | ||
24489 | 2019-06-26 Jeff Law <law@redhat.com> | |
24490 | ||
24491 | PR tree-optimization/90883 | |
24492 | * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature. | |
24493 | (delete_dead_or_redundant_assignment): Likewise. | |
24494 | ||
24495 | PR tree-optimization/90883 | |
24496 | * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC. | |
24497 | * tree-ssa-dse.c: Update various comments to distinguish between | |
24498 | dead and redundant stores. | |
24499 | (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC. | |
24500 | (dse_optimize_redundant_stores): New function. | |
24501 | (delete_dead_or_redundant_call): Renamed from delete_dead_call. | |
24502 | Distinguish between dead and redundant calls in dump output. All | |
24503 | callers updated. | |
24504 | (delete_dead_or_redundant_assignment): Similarly for assignments. | |
24505 | (dse_optimize_stmt): Handle _CHK variants. For statements which | |
24506 | store 0 into multiple memory locations, try to prove a subsequent | |
24507 | store is redundant. | |
24508 | ||
24509 | 2019-06-26 Uroš Bizjak <ubizjak@gmail.com> | |
24510 | ||
24511 | PR target/89021 | |
24512 | * config/i386/i386.c (ix86_autovectorize_vector_sizes): | |
24513 | Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE. | |
24514 | ||
24515 | 2019-06-26 Iain Sandoe <iain@sandoe.co.uk> | |
24516 | ||
24517 | * config/rs6000/rs6000-internal.h (branch_island): New typedef. | |
24518 | (branch_islands): New extern. | |
24519 | * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from | |
24520 | * config/rs6000/rs6000.c: .. here. | |
24521 | ||
24522 | 2019-06-26 Iain Sandoe <iain@sandoe.co.uk> | |
24523 | ||
24524 | * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here.. | |
24525 | (powerpc*-*-*) ... to here. | |
24526 | ||
24527 | 2019-06-26 Jeff Law <law@redhat.com> | |
24528 | ||
24529 | * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of | |
24530 | memcpy, memmove and memset builtins. | |
24531 | (maybe_trim_memstar_call): Likewise. | |
24532 | ||
24533 | 2019-06-26 David Edelsohn <dje.gcc@gmail.com> | |
24534 | ||
24535 | * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL. | |
24536 | ||
24537 | 2019-06-26 David Edelsohn <dje.gcc@gmail.com> | |
24538 | ||
24539 | * config.gcc (powerpc-ibm-aix*): Define target_gtfiles. | |
24540 | ||
24541 | 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org> | |
24542 | ||
24543 | * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New | |
24544 | declaration. | |
24545 | * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove | |
24546 | "static". | |
24547 | * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete | |
24548 | declaration. | |
24549 | ||
24550 | 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org> | |
24551 | ||
24552 | * config/rs6000/rs6000.c: Fix previous commit, it missed some changes. | |
24553 | ||
24554 | 2019-06-26 Richard Biener <rguenther@suse.de> | |
24555 | ||
24556 | PR ipa/90982 | |
24557 | * tree-inline.c (remap_ssa_name): Copy SSA range info. | |
24558 | ||
24559 | 2019-06-26 Richard Biener <rguenther@suse.de> | |
24560 | ||
24561 | * lto-streamer.h (lto_bitmap_alloc): Remove. | |
24562 | (lto_bitmap_free): Likewise. | |
24563 | * lto-streamer.c (lto_bitmap_alloc): Remove. | |
24564 | (lto_bitmap_free): Likewise. | |
24565 | (lto_obstack): Likewise. | |
24566 | (lto_obstack_initialized): Likewise. | |
24567 | * lto-streamer-out.c (lto_output): Use own obstack for local | |
24568 | bitmap, free it consistently. | |
24569 | ||
24570 | 2019-06-26 Jakub Jelinek <jakub@redhat.com> | |
24571 | ||
24572 | PR target/90991 | |
24573 | * config/i386/sse.md | |
24574 | (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd, | |
24575 | vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned | |
24576 | insns if operands[2] is misaligned_operand. | |
24577 | ||
24578 | 2019-06-26 Li Jia He <helijia@linux.ibm.com> | |
24579 | ||
24580 | * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of | |
24581 | TARGET_POWERPC64. | |
24582 | * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI | |
24583 | to GPR. | |
24584 | ||
24585 | 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org> | |
24586 | ||
24587 | * doc/invoke.texi (Warning Options): Fix some @opindex syntax. | |
24588 | ||
24589 | 2019-06-26 Martin Liska <mliska@suse.cz> | |
24590 | ||
24591 | PR tree-optimization/90973 | |
24592 | * tree-vect-loop.c (vect_get_known_peeling_cost): Use | |
24593 | epilogue_cost_vec instead of prologue_cost_vec for | |
24594 | a epilogue cost. | |
24595 | ||
24596 | 2019-06-26 Martin Liska <mliska@suse.cz> | |
24597 | ||
24598 | * bb-reorder.c (connect_better_edge_p): Add missing else | |
24599 | statement in the middle of if-else statements. | |
24600 | ||
24601 | 2019-06-25 Hongtao Liu <hongtao.liu@intel.com> | |
24602 | H.J. Lu <hongjiu.lu@intel.com> | |
24603 | Olga Makhotina <olga.makhotina@intel.com> | |
24604 | ||
24605 | * common/config/i386/i386-common.c | |
24606 | (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET, | |
24607 | OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros. | |
24608 | (OPTION_MASK_ISA2_AVX512F_UNSET): Add | |
24609 | OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET. | |
24610 | (ix86_handle_option): Handle -mavx512vp2intersect. | |
24611 | * config/i386/avx512vp2intersectintrin.h: New. | |
24612 | * config/i386/avx512vp2intersectvlintrin.h: New. | |
24613 | * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New. | |
24614 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect | |
24615 | AVX512VP2INTERSECT. | |
24616 | * config/i386/i386-builtin-types.def: Add new types. | |
24617 | * config/i386/i386-builtin.def: Add new builtins. | |
24618 | * config/i386/i386-builtins.c: (enum processor_features): Add | |
24619 | F_AVX512VP2INTERSECT. | |
24620 | (static const _isa_names_table isa_names_table): Ditto. | |
24621 | * config/i386/i386-c.c (ix86_target_macros_internal): Define | |
24622 | __AVX512VP2INTERSECT__. | |
24623 | * config/i386/i386-expand.c (ix86_expand_builtin): Expand | |
24624 | IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512, | |
24625 | IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256, | |
24626 | IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128. | |
24627 | * config/i386/i386-modes.def (P2QI, P2HI): New modes. | |
24628 | * config/i386/i386-options.c (ix86_target_string): Add | |
24629 | -mavx512vp2intersect. | |
24630 | (ix86_option_override_internal): Handle AVX512VP2INTERSECT. | |
24631 | * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for | |
24632 | P2HImode and P2QImode. | |
24633 | (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg | |
24634 | number for P2QImode and P2HImode. | |
24635 | (ix86_regmode_natural_size): New function. | |
24636 | * config/i386/i386.h (TARGET_AVX512VP2INTERSECT, | |
24637 | TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT | |
24638 | REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New. | |
24639 | * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare | |
24640 | * config/i386/i386.opt: Add -mavx512vp2intersect. | |
24641 | * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and | |
24642 | avx512vp2intersectvlintrin.h. | |
24643 | * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT. | |
24644 | (define_mode_iterator VI48_AVX512VP2VL): New. | |
24645 | (avx512vp2intersect_2intersect<mode>, | |
24646 | avx512vp2intersect_2intersectv16si): New define_insn patterns. | |
24647 | * config.gcc: Add avx512vp2intersectvlintrin.h and | |
24648 | avx512vp2intersectintrin.h to extra_headers. | |
24649 | * doc/invoke.texi: Document -mavx512vp2intersect. | |
24650 | ||
24651 | 2019-06-25 Iain Sandoe <iain@sandoe.co.uk> | |
24652 | ||
24653 | * config/rs6000/darwin.h (ENDFILE_SPEC): New. | |
24654 | ||
24655 | 2019-06-25 Bill Seurer <seurer@linux.vnet.ibm.com> | |
24656 | ||
24657 | * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno, | |
24658 | savres_routine_syms, savres_routine_name, morestack_ref, | |
24659 | rs6000_init_machine_status, save_reg_p, first_reg_to_save, | |
24660 | first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask, | |
24661 | compute_save_world_info, is_altivec_return_reg, fixed_reg_p, | |
24662 | rs6000_savres_strategy, rs6000_stack_info, debug_stack_info, | |
24663 | rs6000_return_addr, rs6000_decl_ok_for_sibcall, | |
24664 | rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed, | |
24665 | rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC, | |
24666 | create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref, | |
24667 | rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1, | |
24668 | get_stack_clash_protection_probe_interval, | |
24669 | get_stack_clash_protection_guard_size, | |
24670 | rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack, | |
24671 | rs6000_emit_probe_stack_range, output_probe_stack_range_1, | |
24672 | interesting_frame_related_regno, output_probe_stack_range_stack_clash, | |
24673 | output_probe_stack_range, rs6000_frame_related, generate_set_vrsave, | |
24674 | gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save, | |
24675 | gen_frame_mem_offset, rs6000_savres_routine_name, | |
24676 | rs6000_savres_routine_sym, rs6000_emit_stack_reset, | |
24677 | ptr_regno_for_savres, rs6000_emit_savres_rtx, | |
24678 | rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p, | |
24679 | rs6000_global_entry_point_prologue_needed_p, | |
24680 | rs6000_get_separate_components, rs6000_components_for_bb, | |
24681 | rs6000_disqualify_components, rs6000_emit_prologue_components, | |
24682 | rs6000_emit_epilogue_components, rs6000_set_handled_components, | |
24683 | emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue, | |
24684 | rs6000_output_savres_externs, rs6000_output_function_prologue, | |
24685 | rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr, | |
24686 | load_lr_save, restore_saved_lr, add_crlr_cfa_restore, | |
24687 | offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue, | |
24688 | rs6000_output_function_epilogue, gen_add3_const, | |
24689 | rs6000_expand_split_stack_prologue, rs6000_live_on_entry, | |
24690 | rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved | |
24691 | to rs6000-logue.c. | |
24692 | (machine_function): Moved to rs6000.h. | |
24693 | (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to | |
24694 | rs6000-internal.h. | |
24695 | * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno, | |
24696 | savres_routine_syms, savres_routine_name, morestack_ref, | |
24697 | rs6000_init_machine_status, save_reg_p, first_reg_to_save, | |
24698 | first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask, | |
24699 | compute_save_world_info, is_altivec_return_reg, fixed_reg_p, | |
24700 | rs6000_savres_strategy, rs6000_stack_info, debug_stack_info, | |
24701 | rs6000_return_addr, rs6000_decl_ok_for_sibcall, | |
24702 | rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed, | |
24703 | rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC, | |
24704 | create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref, | |
24705 | rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1, | |
24706 | get_stack_clash_protection_probe_interval, | |
24707 | get_stack_clash_protection_guard_size, | |
24708 | rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack, | |
24709 | rs6000_emit_probe_stack_range, output_probe_stack_range_1, | |
24710 | interesting_frame_related_regno, output_probe_stack_range_stack_clash, | |
24711 | output_probe_stack_range, rs6000_frame_related, generate_set_vrsave, | |
24712 | gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save, | |
24713 | gen_frame_mem_offset, rs6000_savres_routine_name, | |
24714 | rs6000_savres_routine_sym, rs6000_emit_stack_reset, | |
24715 | ptr_regno_for_savres, rs6000_emit_savres_rtx, | |
24716 | rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p, | |
24717 | rs6000_global_entry_point_prologue_needed_p, | |
24718 | rs6000_get_separate_components, rs6000_components_for_bb, | |
24719 | rs6000_disqualify_components, rs6000_emit_prologue_components, | |
24720 | rs6000_emit_epilogue_components, rs6000_set_handled_components, | |
24721 | emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue, | |
24722 | rs6000_output_savres_externs, rs6000_output_function_prologue, | |
24723 | rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr, | |
24724 | load_lr_save, restore_saved_lr, add_crlr_cfa_restore, | |
24725 | offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue, | |
24726 | rs6000_output_function_epilogue, gen_add3_const, | |
24727 | rs6000_expand_split_stack_prologue, rs6000_live_on_entry, | |
24728 | rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved | |
24729 | to here from rs6000.c. | |
24730 | * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c. | |
24731 | * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT, | |
24732 | quad_address_offset_p) Moved to here from rs6000.c. | |
24733 | * config/rs6000/t-rs6000: Add new source file rs6000-logue.c. | |
24734 | * config/config.gcc: Add new source file rs6000-logue.c to garbage | |
24735 | collector. | |
24736 | ||
24737 | 2019-06-25 Martin Liska <mliska@suse.cz> | |
24738 | ||
24739 | * hash-table.c (hashtab_chk_error): Move here from ... | |
24740 | * hash-table.h (hashtab_chk_error): ... here. | |
24741 | ||
24742 | 2019-06-25 Martin Liska <mliska@suse.cz> | |
24743 | ||
24744 | PR tree-optimization/90978 | |
24745 | * df-scan.c (df_update_entry_block_defs): Remove dead else | |
24746 | branch. | |
24747 | (df_update_exit_block_uses): Likewise. | |
24748 | ||
24749 | 2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com> | |
24750 | Andrew Stubbs <ams@codesourcery.com> | |
24751 | ||
24752 | * config.gcc (thread_file): Set to gcn for AMD GCN. | |
24753 | * config/gcn/gcn.c (gcn_emutls_var_init): New function. | |
24754 | (TARGET_EMUTLS_VAR_INIT): New hook. | |
24755 | ||
24756 | 2019-06-25 Martin Jambor <mjambor@suse.cz> | |
24757 | ||
24758 | PR ipa/90939 | |
24759 | * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert. | |
24760 | ||
24761 | 2019-06-25 Richard Biener <rguenther@suse.de> | |
24762 | ||
24763 | PR tree-optimization/90930 | |
24764 | * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression | |
24765 | into parallel form in the last pass instance. | |
24766 | ||
24767 | 2019-06-25 Claudiu Zissulescu <claziss@synopsys.com> | |
24768 | ||
24769 | * config/arc/arc.c (arc_symbol_binds_local_p): New function. | |
24770 | (arc_legitimize_pic_address): Simplify and cleanup the function. | |
24771 | (SYMBOLIC_CONST): Remove. | |
24772 | (prepare_pic_move): Likewise. | |
24773 | (prepare_move_operands): Handle complex mov cases here. | |
24774 | (arc_legitimize_address_0): Remove call to | |
24775 | arc_legitimize_pic_address. | |
24776 | (arc_legitimize_address): Remove call to | |
24777 | arc_legitimize_tls_address. | |
24778 | * config/arc/arc.md (movqi_insn): Allow Cm3 match. | |
24779 | (movhi_insn): Likewise. | |
24780 | ||
24781 | 2019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
24782 | ||
24783 | * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and | |
24784 | PTRDIFF_TYPE. | |
24785 | * gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__" | |
24786 | format of "__intN" types for UINTMAX_TYPE. | |
24787 | * stor-layout.c (initialize_sizetypes): Accept "__intN__" | |
24788 | format of "__intN" types for SIZETYPE. | |
24789 | * tree.c (build_common_tree_nodes): Accept "__intN__" | |
24790 | format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE. | |
24791 | * doc/invoke.texi: Document that __intN__ disables pedantic | |
24792 | warnings. | |
24793 | ||
24794 | 2019-06-25 Jan Hubicka <jh@suse.cz> | |
24795 | ||
24796 | * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that | |
24797 | base2_alias_set is non-zero before doing TBAA based disambiguation. | |
24798 | ||
24799 | 2019-06-25 Martin Liska <mliska@suse.cz> | |
24800 | ||
24801 | PR tree-optimization/90973 | |
24802 | * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval | |
24803 | of prologue and epilogue. | |
24804 | ||
24805 | 2019-06-24 Jan Hubicka <jh@suse.cz> | |
24806 | ||
24807 | * ipa-utils.h (type_with_linkage_p): Verify that type is | |
24808 | CXX_ODR_P. | |
24809 | (odr_type_p): Remove extra return. | |
24810 | * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P; | |
24811 | hash STRING_FLAG only for arrays and integers. | |
24812 | * tree-stremaer-in.c (unpack_ts_type_common_value_fields): | |
24813 | Update analogously. | |
24814 | * tree-streamer-out.c (pack_ts_type_common_value_fields): | |
24815 | Likewise. | |
24816 | * print-tree.c (print_node): Print cxx-odr-p | |
24817 | and string-flag. | |
24818 | * tree.c (need_assembler_name_p): Also check that type | |
24819 | is CXX_ODR_TYPE_P | |
24820 | (verify_type_variant): Update verification of SRING_FLAG; | |
24821 | also check CXX_ODR_P. | |
24822 | * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro. | |
24823 | (TYPE_STRING_FLAG): Use it. | |
24824 | (TYPE_CXX_ODR_P): New macro. | |
24825 | * dwarf2out.c (gen_array_type_die): First check that type | |
24826 | is an array and then test string flag. | |
24827 | ||
24828 | 2019-06-24 Richard Biener <rguenther@suse.de> | |
24829 | ||
24830 | PR tree-optimization/90972 | |
24831 | * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P | |
24832 | in common code, dealing with STRING_CST properly. | |
24833 | ||
24834 | 2019-06-24 Richard Biener <rguenther@suse.de> | |
24835 | ||
24836 | PR tree-optimization/90930 | |
24837 | PR tree-optimization/90316 | |
24838 | * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing | |
24839 | decrement of limit. | |
24840 | ||
24841 | 2019-06-24 Martin Sebor <msebor@redhat.com> | |
24842 | ||
24843 | * tree-pretty-print.h: Remove unnecessary punctuation characters | |
24844 | from a diagnostic. | |
24845 | * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional. | |
24846 | ||
24847 | 2019-06-24 Jonathan Wakely <jwakely@redhat.com> | |
24848 | ||
24849 | * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG) | |
24850 | (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN) | |
24851 | (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17. | |
24852 | ||
24853 | 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> | |
24854 | ||
24855 | * config/rs6000/darwin.h: Handle GCC target pragma. | |
24856 | ||
24857 | 2019-06-23 Iain Sandoe <iain@sandoe.co.uk> | |
24858 | ||
24859 | * config/rs6000/darwin.h: (__PPC__, __PPC64__): New. | |
24860 | ||
24861 | 2019-06-22 Jeff Law <law@redhat.com> | |
24862 | ||
24863 | * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. | |
24864 | ||
24865 | 2019-06-22 Jan Hubicka <jh@suse.cz> | |
24866 | ||
24867 | * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not | |
24868 | give up on bitfields; continue searching for different refs | |
24869 | appearing later. | |
24870 | ||
24871 | 2019-06-21 Jakub Jelinek <jakub@redhat.com> | |
24872 | ||
24873 | * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle | |
24874 | even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR | |
24875 | containing the offset as possible simd lane access. Look through | |
24876 | widening conversion. Move the | |
24877 | TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent. | |
24878 | ||
24879 | 2019-06-21 Richard Biener <rguenther@suse.de> | |
24880 | ||
24881 | PR tree-optimization/90930 | |
24882 | * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited | |
24883 | flag on new stmts to avoid re-processing them. | |
24884 | ||
24885 | 2019-06-21 Matthew Beliveau <mbelivea@redhat.com> | |
24886 | ||
24887 | PR c++/90875 - added -Wswitch-outside-range option | |
24888 | * doc/invoke.texi (Wswitch-outside-range): Document. | |
24889 | ||
24890 | 2019-06-21 Jeff Law <law@redhat.com> | |
24891 | ||
24892 | PR tree-optimization/90949 | |
24893 | * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info. | |
24894 | * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state. | |
24895 | ||
24896 | 2019-06-21 Richard Biener <rguenther@suse.de> | |
24897 | ||
24898 | PR debug/90914 | |
24899 | * dwarf2out.c (prune_unused_types_walk): Always consider | |
24900 | function-local extern declarations as used. | |
24901 | ||
24902 | 2019-06-21 Richard Biener <rguenther@suse.de> | |
24903 | ||
24904 | PR tree-optimization/90913 | |
24905 | * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use | |
24906 | the scalar variant of if-conversion versioning. | |
24907 | ||
24908 | 2019-06-21 Jakub Jelinek <jakub@redhat.com> | |
24909 | ||
24910 | * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument, | |
24911 | create another "omp scan inscan exclusive" array if | |
24912 | !ctx->scan_inclusive. | |
24913 | (lower_rec_input_clauses): Handle exclusive scan inscan reductions. | |
24914 | (lower_omp_scan): Likewise. | |
24915 | * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of | |
24916 | 2-bit bitfield for simd_lane_access_p member. | |
24917 | * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle | |
24918 | aux == (void *)-4 as simd lane access. | |
24919 | * tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update | |
24920 | comment with permutations to show the canonical permutation order. | |
24921 | (vectorizable_scan_store): Handle exclusive scan. | |
24922 | (vectorizable_store): Call vectorizable_scan_store even for | |
24923 | STMT_VINFO_SIMD_LANE_ACCESS_P > 3. | |
24924 | ||
24925 | * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle | |
24926 | "omp simd array" arrays with one byte elements. | |
24927 | ||
24928 | 2019-06-20 Uroš Bizjak <ubizjak@gmail.com> | |
24929 | ||
24930 | * config/alpha/alpha.md (@unaligned_store<mode>): | |
24931 | Rename from unaligned_store<mode>. | |
24932 | (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned. | |
24933 | * config/alpha/sync.md (@load_locked_<mode>): Rename | |
24934 | from load_locked_<mode>. | |
24935 | (@store_conditional_<mode>): Rename from store_conditional_<mode>. | |
24936 | (@atomic_compare_and_swap<mode>_1): Rename | |
24937 | from atomic_compare_and_swap<mode>_1. | |
24938 | (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1. | |
24939 | * config/alpha/alpha.c (alpha_expand_mov_nobwx): | |
24940 | Use gen_reload_in_aligned and gen_unaligned_store. | |
24941 | (emit_load_locked): Remove. | |
24942 | (emit_store_conditional): Ditto. | |
24943 | (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional. | |
24944 | (alpha_split_compare_and_swap): Ditto. | |
24945 | (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1. | |
24946 | (alpha_split_compare_and_swap_12): Use gen_load_locked | |
24947 | and gen_store_conditional. | |
24948 | (alpha_split_atomic_exchange): Ditto. | |
24949 | (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1. | |
24950 | (alpha_split_atomic_exchange_12): Use gen_load_locked | |
24951 | and gen_store_conditional. | |
24952 | ||
24953 | 2019-06-20 Richard Earnshaw <rearnsha@arm.com> | |
24954 | ||
24955 | * config/aarch64/aarch64-errata.h: New file. | |
24956 | * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete. | |
24957 | (CA53_ERR_843419_SPEC): Delete. | |
24958 | (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above. | |
24959 | * config/aarch64/aarch64-linux.h: Likewise. | |
24960 | * config/aarch64/aarch64-netbsd.h: Likewise. | |
24961 | * config/aarch64/aarch64-freebsd.h: Likewise. | |
24962 | ||
24963 | 2019-06-20 Marek Polacek <polacek@redhat.com> | |
24964 | ||
24965 | * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name. | |
24966 | ||
24967 | 2019-06-20 Michael Meissner <meissner@linux.ibm.com> | |
24968 | ||
24969 | * config/rs6000/rs6000.md (isa attribute): Add support for | |
24970 | for a future processor. | |
24971 | ||
24972 | 2019-06-20 H.J. Lu <hongjiu.lu@intel.com> | |
24973 | ||
24974 | PR target/54855 | |
24975 | * config/i386/i386-expand.c (ix86_expand_vector_set): Generate | |
24976 | standard scalar operation pattern for V2DF. | |
24977 | * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New. | |
24978 | (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise. | |
24979 | (*ieee_<ieee_maxmin><mode>3): Likewise. | |
24980 | (vec_setv2df_0): Likewise. | |
24981 | ||
24982 | 2019-06-20 Jan Hubicka <jh@suse.cz> | |
24983 | ||
24984 | * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl | |
24985 | parameter; it has no use in gimple memory model. | |
24986 | (indirect_ref_may_alias_decl_p): Update. | |
24987 | ||
24988 | 2019-06-20 Martin Liska <mliska@suse.cz> | |
24989 | ||
24990 | * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease | |
24991 | to 10. | |
24992 | ||
24993 | 2019-06-20 Jakub Jelinek <jakub@redhat.com> | |
24994 | ||
24995 | * tree-vect-stmts.c (enum scan_store_kind): New type. | |
24996 | (scan_store_can_perm_p): Change last argument from int * to | |
24997 | vec<enum scan_store_kind> *, record precisely which permutations | |
24998 | need whole vector left shift or that plus VEC_COND_EXPR. | |
24999 | (vectorizable_scan_store): Adjust caller, use whole vector left shift | |
25000 | and additional VEC_COND_EXPR only for those iterations that need it. | |
25001 | ||
25002 | 2019-06-20 Alexandre Oliva <oliva@adacore.com> | |
25003 | ||
25004 | * config.gcc: Fix ARM --with-fpu checking and error message. | |
25005 | ||
25006 | 2019-06-19 Marek Polacek <polacek@redhat.com> | |
25007 | ||
25008 | PR c++/60364 - noreturn after first decl not diagnosed. | |
25009 | * attribs.c (get_attribute_namespace): No longer static. | |
25010 | (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11 | |
25011 | attributes. | |
25012 | (attr_noreturn_exclusions): Make it extern. | |
25013 | * attribs.h (get_attribute_namespace): Declare. | |
25014 | * tree-inline.c (function_attribute_inlinable_p): Use | |
25015 | get_attribute_name. | |
25016 | ||
25017 | 2019-06-19 Martin Sebor <msebor@redhat.com> | |
25018 | ||
25019 | PR tree-optimization/90626 | |
25020 | * tree-ssa-strlen.c (strxcmp_unequal): Fix typos. | |
25021 | ||
25022 | PR tree-optimization/90626 | |
25023 | * tree-ssa-strlen.c (strxcmp_unequal): New function. | |
25024 | (handle_builtin_string_cmp): Call it. | |
25025 | ||
25026 | 2019-06-19 Iain Sandoe <iain@sandoe.co.uk> | |
25027 | ||
25028 | * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC | |
25029 | and DARWIN_NOPIE_SPEC. | |
25030 | (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC. | |
25031 | (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h. | |
25032 | (DARWIN_NOPIE_SPEC): Collate from darwin10.h. | |
25033 | (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h | |
25034 | (DARWIN_EXPORT_DYNAMIC): Delete. | |
25035 | * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind | |
25036 | and pie options processing to darwin.h. | |
25037 | * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h | |
25038 | ||
25039 | 2019-06-19 Iain Sandoe <iain@sandoe.co.uk> | |
25040 | ||
25041 | * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors | |
25042 | in computing the number of options to be moved. | |
25043 | ||
25044 | 2019-06-19 Maya Rashish <coypu@sdf.org> | |
25045 | ||
25046 | * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition. | |
25047 | (CLEAR_INSN_CACHE) Use it. | |
25048 | ||
25049 | 2019-06-19 Uroš Bizjak <ubizjak@gmail.com> | |
25050 | ||
25051 | * config/i386/i386.md (cmpstrnsi): Remove dead code. | |
25052 | ||
25053 | 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com> | |
25054 | ||
25055 | PR middle-end/84521 | |
25056 | * builtins.c (expand_builtin_setjmp_setup): Save | |
25057 | hard_frame_pointer_rtx. | |
25058 | (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we | |
25059 | restore fp. | |
25060 | * function.c (expand_function_start): Save hard_frame_pointer_rtx for | |
25061 | non-local goto. | |
25062 | * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp | |
25063 | elimination code. | |
25064 | (remove_reg_equal_offset_note): Remove unused function. | |
25065 | * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination | |
25066 | code. | |
25067 | * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. | |
25068 | (arc_builtin_setjmp_frame_value): Remove function. | |
25069 | * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. | |
25070 | (avr_builtin_setjmp_frame_value): Remove function. | |
25071 | * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. | |
25072 | (ix86_builtin_setjmp_frame_value): Remove function. | |
25073 | * config/pa/pa.md (nonlocal_goto): Remove FP adjustment. | |
25074 | * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. | |
25075 | (sparc_builtin_setjmp_frame_value): Remove function. | |
25076 | * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove. | |
25077 | (vax_builtin_setjmp_frame_value): Remove function. | |
25078 | * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame | |
25079 | pointer if has_nonlocal_label. | |
25080 | ||
25081 | 2019-06-19 Jakub Jelinek <jakub@redhat.com> | |
25082 | ||
25083 | * doc/md.texi: Document vec_shl_<mode> pattern. | |
25084 | * optabs.def (vec_shl_optab): New optab. | |
25085 | * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab | |
25086 | argument, if == vec_shl_optab, check for left whole vector shift | |
25087 | pattern rather than right shift. | |
25088 | (expand_vec_perm_const): Add vec_shl_optab support. | |
25089 | * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab | |
25090 | in the comment. | |
25091 | * tree-vect-generic.c (lower_vec_perm): Support permutations which | |
25092 | can be handled by vec_shl_optab. | |
25093 | * tree-vect-stmts.c (scan_store_can_perm_p): New function. | |
25094 | (check_scan_store): Use it. | |
25095 | (vectorizable_scan_store): If target can't do normal permutations, | |
25096 | try to use whole vector left shifts and if needed a VEC_COND_EXPR | |
25097 | after it. | |
25098 | * config/i386/sse.md (vec_shl_<mode>): New expander. | |
25099 | ||
25100 | * omp-low.c (lower_rec_input_clauses): Handle references properly | |
25101 | in inscan clauses. | |
25102 | (lower_omp_scan): Likewise. | |
25103 | ||
25104 | 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
25105 | ||
25106 | * tree-ssa-address.c (preferred_mem_scale_factor): Handle when | |
25107 | mem_mode is BLKmode. | |
25108 | ||
25109 | 2019-06-18 Max Filippov <jcmvbkbc@gmail.com> | |
25110 | ||
25111 | PR target/90922 | |
25112 | * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack | |
25113 | pointer adjustment for the case of no callee-saved registers and | |
25114 | stack frame bigger than 128 bytes. | |
25115 | ||
25116 | 2019-06-18 Thomas Schwinge <thomas@codesourcery.com> | |
25117 | ||
25118 | PR middle-end/90862 | |
25119 | * omp-low.c (check_omp_nesting_restrictions): Handle | |
25120 | GF_OMP_TARGET_KIND_OACC_DECLARE. | |
25121 | ||
25122 | 2019-06-18 Uroš Bizjak <ubizjak@gmail.com> | |
25123 | ||
25124 | * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1. | |
25125 | (@add<mode>3_carry): Rename from add<mode>3_carry. | |
25126 | (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc. | |
25127 | (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz. | |
25128 | (@copysign<mode>3_const): Rename from copysign<mode>3_const. | |
25129 | (@copysign<mode>3_var): Rename from copysign<mode>3_var. | |
25130 | (@xorsign<mode>3_1): Rename from xorsign<mode>3_1. | |
25131 | (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1. | |
25132 | (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2. | |
25133 | (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3. | |
25134 | (cmpstrnsi): Use gen_cmp_1. | |
25135 | (lwp_slwpcb): Use gen_lwp_slwpcb_1. | |
25136 | (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1. | |
25137 | (@umonitor_<mode>): Rename from umonitor_<mode>. | |
25138 | * config/i386/i386-expand.c (ix86_expand_copysign): | |
25139 | Use gen_copysign3_const and gen_copysign3_var. | |
25140 | (ix86_expand_xorsign): Use gen_xorsign3_1. | |
25141 | (ix86_expand_branch): Use gen_sub3_carry_ccc, | |
25142 | gen_sub3_carry_ccgz and gen_cmp1. | |
25143 | (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry. | |
25144 | (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2. | |
25145 | (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3. | |
25146 | (ix86_split_lshr): Ditto. | |
25147 | (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor. | |
25148 | ||
25149 | 2019-06-18 Jason Merrill <jason@redhat.com> | |
25150 | ||
25151 | * tree.c (build_constructor): Add MEM_STAT_DECL. | |
25152 | ||
25153 | 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
25154 | ||
25155 | * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE. | |
25156 | * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc) | |
25157 | (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>) | |
25158 | (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>) | |
25159 | (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc) | |
25160 | (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>) | |
25161 | (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4): | |
25162 | Use CC_NZC instead of CC. | |
25163 | * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions. | |
25164 | * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable. | |
25165 | (aarch64_print_operand): Handle E_CC_NZCmode. | |
25166 | (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead | |
25167 | of gen_set_clobber_cc. | |
25168 | ||
25169 | 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
25170 | ||
25171 | * config/aarch64/aarch64-sve.md: Tabify file. | |
25172 | ||
25173 | 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
25174 | ||
25175 | * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare. | |
25176 | * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function. | |
25177 | * config/aarch64/aarch64-sve.md: Use it. | |
25178 | ||
25179 | 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
25180 | ||
25181 | * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare. | |
25182 | * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions. | |
25183 | (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move) | |
25184 | (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local) | |
25185 | (aarch64_expand_sve_vec_cmp_int): Use it. | |
25186 | (aarch64_expand_sve_vec_cmp_float): Likewise. | |
25187 | * config/aarch64/aarch64-sve.md: Likewise throughout. | |
25188 | ||
25189 | 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
25190 | Kugan Vivekanandarajah <kuganv@linaro.org> | |
25191 | ||
25192 | * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete. | |
25193 | (*cond_<optab><mode>_z): Fold into... | |
25194 | (*cond_<optab><mode>_any): ...here. Also handle cases in which | |
25195 | operand 4 can be tied to operand 0 (either inherently or via RA). | |
25196 | ||
25197 | 2019-06-18 Richard Biener <rguenther@suse.de> | |
25198 | ||
25199 | PR debug/90900 | |
25200 | * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL | |
25201 | as if optimized away. | |
25202 | ||
25203 | 2019-06-18 Tom de Vries <tdevries@suse.de> | |
25204 | ||
25205 | * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove. | |
25206 | * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove. | |
25207 | * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"): | |
25208 | Rename to ... | |
25209 | (define_insn "@set_softstack_<mode>"): ... this. | |
25210 | (define_insn "omp_simt_enter_<mode>"): Rename to ... | |
25211 | (define_insn "@omp_simt_enter_<mode>"): ... this. | |
25212 | (define_insn "omp_simt_exit_<mode>"): Rename to ... | |
25213 | (define_insn "@omp_simt_exit_<mode>"): ... this. | |
25214 | ||
25215 | 2019-06-18 Richard Sandiford <richard.sandiford@arm.com> | |
25216 | ||
25217 | * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove | |
25218 | vf parameter. Restore the previous iv step of nscalars_step, | |
25219 | but give it iv_type rather than compare_type. Tweak code order | |
25220 | to match the comments. | |
25221 | (vect_set_loop_condition_masked): Update accordingly. | |
25222 | * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int" | |
25223 | for iv_precision. Tweak comment formatting. | |
25224 | ||
25225 | 2019-06-18 Iain Sandoe <iain@sandoe.co.uk> | |
25226 | ||
25227 | * config/darwin.c: Strip trailing whitespace. | |
25228 | ||
25229 | 2019-06-18 Iain Sandoe <iain@sandoe.co.uk> | |
25230 | ||
25231 | * config/darwin.c (darwin_emit_unwind_label): New default to false. | |
25232 | (darwin_override_options): Set darwin_emit_unwind_label as needed. | |
25233 | ||
25234 | 2019-06-18 Martin Jambor <mjambor@suse.cz> | |
25235 | ||
25236 | PR ipa/90889 | |
25237 | * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the | |
25238 | caller does not have flag_ipa_cp set. | |
25239 | ||
25240 | 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com> | |
25241 | ||
25242 | * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed | |
25243 | from "*fold_left_plus_<mode>", updated operands order. | |
25244 | * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab. | |
25245 | * internal-fn.c (mask_fold_left_direct): New define. | |
25246 | (expand_mask_fold_left_optab_fn): Likewise. | |
25247 | (direct_mask_fold_left_optab_supported_p): Likewise. | |
25248 | * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function. | |
25249 | * optabs.def (mask_fold_left_plus_optab): New optab. | |
25250 | * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a | |
25251 | masked internal_fn for a reduction ifn. | |
25252 | (vectorize_fold_left_reduction): Add support for masking reductions. | |
25253 | ||
25254 | 2019-06-18 Kewen Lin <linkw@gcc.gnu.org> | |
25255 | ||
25256 | PR middle-end/80791 | |
25257 | * target.def (predict_doloop_p): New hook. | |
25258 | * targhooks.h (default_predict_doloop_p): New declaration. | |
25259 | * targhooks.c (default_predict_doloop_p): New function. | |
25260 | * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook. | |
25261 | * doc/tm.texi: Regenerate. | |
25262 | * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function. | |
25263 | (TARGET_PREDICT_DOLOOP_P): New macro. | |
25264 | * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function. | |
25265 | ||
25266 | 2019-06-17 Jakub Jelinek <jakub@redhat.com> | |
25267 | ||
25268 | * omp-low.c (struct omp_context): Add scan_inclusive field. | |
25269 | (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive | |
25270 | if inclusive scan. | |
25271 | (struct omplow_simd_context): Add lastlane member. | |
25272 | (lower_rec_simd_input_clauses): Add rvar argument, handle inscan | |
25273 | reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than | |
25274 | 1 or 2 argument. | |
25275 | (lower_rec_input_clauses): Handle inscan reductions in simd contexts. | |
25276 | (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF. | |
25277 | (lower_omp_scan): New function. | |
25278 | (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan. | |
25279 | * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE | |
25280 | check 3rd argument if present rather than 2nd. | |
25281 | * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member. | |
25282 | (struct _stmt_vec_info): Change simd_lane_access_p from bool into | |
25283 | 2-bit bitfield. | |
25284 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize | |
25285 | scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather | |
25286 | than 2nd. | |
25287 | (_loop_vec_info::~_loop_vec_info): Delete scan_map. | |
25288 | * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two | |
25289 | different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same | |
25290 | init. | |
25291 | (vect_find_stmt_data_reference): Encode in ->aux the 2nd | |
25292 | IFN_GOMP_SIMD_LANE argument. | |
25293 | (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the | |
25294 | encoded ->aux value. | |
25295 | * tree-vect-stmts.c: Include attribs.h. | |
25296 | (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE. | |
25297 | (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New | |
25298 | functions. | |
25299 | (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0. | |
25300 | (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1. | |
25301 | ||
25302 | 2019-06-17 Uroš Bizjak <ubizjak@gmail.com> | |
25303 | ||
25304 | PR target/62055 | |
25305 | * config/i386/i386.md (*nabstf2_1): New insn pattern. | |
25306 | (*nabs<mode>2_1): Ditto. | |
25307 | (nabs sse-reg splitter): New splitter. | |
25308 | * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern. | |
25309 | ||
25310 | 2019-06-17 Jan Hubicka <hubicka@ucw.cz> | |
25311 | ||
25312 | PR bootstrap/90873. | |
25313 | * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix | |
25314 | TMR index check. | |
25315 | ||
25316 | 2019-06-17 Tom de Vries <tdevries@suse.de> | |
25317 | ||
25318 | * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare. | |
25319 | * config/nvptx/nvptx.c (gen_set_softstack_insn): New function. | |
25320 | * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to | |
25321 | ... | |
25322 | (define_insn "set_softstack_<mode>"): ... this. Use P iterator on | |
25323 | match_operand 0. | |
25324 | (define_insn "omp_simt_enter_insn"): Rename to ... | |
25325 | (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on | |
25326 | match_operand 0, 1 and 2, as well as the unspec_volatile result. | |
25327 | (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and | |
25328 | gen_omp_simt_enter_si. | |
25329 | (define_expand "omp_simt_exit"): New. | |
25330 | (define_insn "omp_simt_exit"): Rename to ... | |
25331 | (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on | |
25332 | match_operand 0. | |
25333 | ||
25334 | 2019-06-17 Matthew Green <mrg@eterna.com.au> | |
25335 | Maya Rashish <coypu@sdf.org> | |
25336 | ||
25337 | * config.gcc (aarch64*-*-netbsd*): New target. | |
25338 | * config/aarch64/aarch64-netbsd.h: New file. | |
25339 | * config/aarch64/t-aarch64-netbsd: Likewise. | |
25340 | ||
25341 | 2019-06-17 Jan Hubicka <hubicka@ucw.cz> | |
25342 | ||
25343 | * tree-ssa-alias.c (aliasing_component_refs_p): Consider only | |
25344 | the access path from base to first VIEW_CONVERT_EXPR or | |
25345 | BIT_FIELD_REF. | |
25346 | ||
25347 | 2019-06-17 Jan Hubicka <hubicka@ucw.cz> | |
25348 | ||
25349 | * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate | |
25350 | access path on BIT_FIELD_REFs. | |
25351 | ||
25352 | 2019-06-17 Martin Liska <mliska@suse.cz> | |
25353 | ||
25354 | PR ipa/90874 | |
25355 | * ipa-utils.h (odr_type_p): Remove dead code. | |
25356 | ||
25357 | 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
25358 | ||
25359 | * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for | |
25360 | alternative Solaris 11.4 format. | |
25361 | * configure: Regenerate. | |
25362 | ||
25363 | 2019-06-17 Tom de Vries <tdevries@suse.de> | |
25364 | ||
25365 | * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ... | |
25366 | (define_insn "call_insn_<mode>"): ... this. Use P iterator on | |
25367 | match_operand 0. | |
25368 | (define_insn "call_value_insn"): Rename to ... | |
25369 | (define_insn "call_value_insn_<mode>"): this. Use P iterator on | |
25370 | match_operand 0. | |
25371 | (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to | |
25372 | DI. | |
25373 | ||
25374 | 2019-06-16 John David Anglin <danglin@gcc.gnu.org> | |
25375 | ||
25376 | PR middle-end/64242 | |
25377 | * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add | |
25378 | frame clobbers and schedule block. | |
25379 | (builtin_longjmp): Likewise. | |
25380 | ||
25381 | 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
25382 | ||
25383 | * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which | |
25384 | describe how to perform MSPABI compliant 64-bit shift. | |
25385 | * config/msp430/msp430.md (ashldi3): New define_expand. | |
25386 | (ashrdi3): New define_expand. | |
25387 | (lshrdi3): New define_expand. | |
25388 | ||
25389 | 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
25390 | ||
25391 | * doc/sourcebuild.texi: Document new effective target keyword | |
25392 | longlong64. | |
25393 | ||
25394 | 2019-06-16 Jan Hubicka <hubicka@ucw.cz> | |
25395 | ||
25396 | * tree-ssa-alias.c (indirect_ref_may_alias_decl_p, | |
25397 | indirect_refs_may_alias_p): Revert accidental commits. | |
25398 | ||
25399 | * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays | |
25400 | at the end of structures. | |
25401 | ||
25402 | 2019-06-16 Iain Sandoe <iain@sandoe.co.uk> | |
25403 | ||
25404 | * config/darwin.c (machopic_indirect_call_target): Use renamed | |
25405 | darwin_picsymbol_stubs to decide on output. | |
25406 | (darwin_override_options): Handle darwin_picsymbol_stubs. | |
25407 | * config/darwin.h (MIN_LD64_OMIT_STUBS): New. | |
25408 | (LD64_VERSION): Revise default. | |
25409 | * config/darwin.opt: (mpic-symbol-stubs): New option. | |
25410 | (darwin_picsymbol_stubs): New variable. | |
25411 | * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS): | |
25412 | rename to TARGET_MACHO_PICSYM_STUBS. | |
25413 | * config/i386/i386.c (output_pic_addr_const): Likewise. | |
25414 | * config/i386/i386.h Likewise. | |
25415 | * config/rs6000/darwin.h: Likewise. | |
25416 | * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed | |
25417 | darwin_picsymbol_stubs. | |
25418 | ||
25419 | 2019-06-16 Iain Sandoe <iain@sandoe.co.uk> | |
25420 | ||
25421 | * config/darwin.opt (prebind, noprebind, seglinkedit, | |
25422 | noseglinkedit): Add RejectNegative. | |
25423 | ||
25424 | 2019-06-16 Jan Hubicka <hubicka@ucw.cz> | |
25425 | ||
25426 | * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto | |
25427 | in my previous patch. | |
25428 | ||
25429 | 2019-06-16 Tom de Vries <tdevries@suse.de> | |
25430 | ||
25431 | PR tree-optimization/89376 | |
25432 | * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL. | |
25433 | ||
25434 | 2019-06-15 Maya Rashish <coypu@sdf.org> | |
25435 | ||
25436 | * doc/invoke.texi (Spec Files): Update location of the | |
25437 | Fortran spec file. | |
25438 | ||
25439 | 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com> | |
25440 | ||
25441 | * doc/extend.texi (Common Function Attributes): Clarify | |
25442 | no_sanitize. Fix grammar. | |
25443 | ||
25444 | 2019-06-15 Jan Hubicka <hubicka@ucw.cz> | |
25445 | ||
25446 | * tree-ssa-alias.c (alias_stats): Add | |
25447 | nonoverlapping_component_refs_p_may_alias, | |
25448 | nonoverlapping_component_refs_p_no_alias, | |
25449 | nonoverlapping_component_refs_of_decl_p_may_alias, | |
25450 | nonoverlapping_component_refs_of_decl_p_no_alias. | |
25451 | (dump_alias_stats): Dump them. | |
25452 | (nonoverlapping_component_refs_of_decl_p): Add stats. | |
25453 | (nonoverlapping_component_refs_p): Add stats; do not stop on first | |
25454 | ARRAY_REF. | |
25455 | ||
25456 | 2019-06-15 Uroš Bizjak <ubizjak@gmail.com> | |
25457 | ||
25458 | * config/i386/i386.md (and<mode>3): Generate zero-extends for | |
25459 | TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun)) | |
25460 | only. | |
25461 | (*anddi3_doubleword): Split before reload. Merge with | |
25462 | anddi->zext pre-reload splitter. | |
25463 | (*andndi3_doubleword): Split before reload. | |
25464 | (*<code>di3_doubleword): Ditto. | |
25465 | (*one_cmpldi2_doubleword): Ditto. | |
25466 | ||
25467 | 2019-06-15 Jakub Jelinek <jakub@redhat.com> | |
25468 | ||
25469 | PR middle-end/90779 | |
25470 | * gimplify.c: Include omp-offload.h and context.h. | |
25471 | (gimplify_bind_expr): Add "omp declare target" attributes | |
25472 | to static block scope variables inside of target region or target | |
25473 | functions. | |
25474 | ||
25475 | 2019-06-15 Tom de Vries <tdevries@suse.de> | |
25476 | ||
25477 | PR tree-optimization/90009 | |
25478 | * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path): | |
25479 | Return NULL if bb contains IFN_UNIQUE. | |
25480 | ||
25481 | 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org> | |
25482 | ||
25483 | * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator. | |
25484 | (un): New define_mode_attr. | |
25485 | (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ... | |
25486 | (isel_<un>signed_<GPR:mode>): ... this. New define_insn. | |
25487 | (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete, | |
25488 | merge into ... | |
25489 | (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn. | |
25490 | ||
25491 | 2019-06-14 Iain Sandoe <iain@sandoe.co.uk> | |
25492 | ||
25493 | * config/darwin.opt: Add RejectNegative where needed, reorder | |
25494 | and add minimal functional descriptions. | |
25495 | ||
25496 | 2019-06-14 H.J. Lu <hongjiu.lu@intel.com> | |
25497 | ||
25498 | PR rtl-optimization/90765 | |
25499 | * calls.c (update_stack_alignment_for_call): New function. | |
25500 | (expand_call): Call update_stack_alignment_for_call when | |
25501 | outgoing parameter is passed in the stack. | |
25502 | (emit_library_call_value_1): Likewise. | |
25503 | * function.c (locate_and_pad_parm): Don't update | |
25504 | stack_alignment_needed and preferred_stack_boundary. | |
25505 | ||
25506 | 2019-06-14 H.J. Lu <hongjiu.lu@intel.com> | |
25507 | ||
25508 | PR target/90877 | |
25509 | * config/i386/i386-features.c | |
25510 | (dimode_scalar_chain::compute_convert_gain): Replace | |
25511 | mmxsse_to_integer with sse_to_integer. | |
25512 | * config/i386/i386.c (ix86_register_move_cost): Verify that | |
25513 | moves between MMX and non-MMX units require secondary memory. | |
25514 | Correct costs of moves between SSE and integer units. | |
25515 | * config/i386/i386.h (processor_costs): Rename cost of moving | |
25516 | SSE register to integer to sse_to_integer. Rename cost of | |
25517 | ||
25518 | 2019-06-14 Matt Thomas <matt@3am-software.com> | |
25519 | Matthew Green <mrg@eterna.com.au> | |
25520 | Nick Hudson <skrll@netbsd.org> | |
25521 | Maya Rashish <coypu@sdf.org> | |
25522 | Richard Earnshaw <rearnsha@arm.com> | |
25523 | ||
25524 | * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration. | |
25525 | * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD. | |
25526 | * config/arm/netbsd-eabi.h: New file. | |
25527 | * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before | |
25528 | redefining. | |
25529 | (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler. | |
25530 | * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define. | |
25531 | (NETBSD_SUBTARGET_EXTRA_SPECS): New define. | |
25532 | (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS. | |
25533 | ||
25534 | 2019-06-14 Richard Biener <rguenther@suse.de> | |
25535 | ||
25536 | * tree-loop-distribution.c (classify_partition): Return | |
25537 | whether a reduction appeared in all partitions and do not | |
25538 | stop builtin detection because of this. | |
25539 | (distribute_loop): Sort a non-builtin partition last if | |
25540 | there's a reduction in all partitions and make sure the | |
25541 | partition prevailing as last is not a builtin. | |
25542 | ||
25543 | 2019-06-14 Feng Xue <fxue@os.amperecomputing.com> | |
25544 | ||
25545 | PR ipa/90401 | |
25546 | * ipa-prop.c (add_to_agg_contents_list): New function. | |
25547 | (clobber_by_agg_contents_list_p): Likewise. | |
25548 | (extract_mem_content): Likewise. | |
25549 | (get_place_in_agg_contents_list): Delete. | |
25550 | (determine_known_aggregate_parts): Renamed from | |
25551 | determine_locally_known_aggregate_parts. New parameter | |
25552 | aa_walk_budget_p. | |
25553 | ||
25554 | 2019-06-13 Martin Sebor <msebor@redhat.com> | |
25555 | ||
25556 | PR tree-optimization/90662 | |
25557 | * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands | |
25558 | to the same type. | |
25559 | ||
25560 | 2019-06-13 Jan Hubicka <hubicka@ucw.cz> | |
25561 | ||
25562 | PR bootstrap/90873 | |
25563 | * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that | |
25564 | dbase is not TARGET_MEM_REF. | |
25565 | ||
25566 | 2019-06-13 Uroš Bizjak <ubizjak@gmail.com> | |
25567 | ||
25568 | * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x. | |
25569 | Update all uses. | |
25570 | (and<mode>3): Use gen_extend_insn instead of indirect functions. | |
25571 | Do not generate DImode extends for 32bit targets. | |
25572 | (and->zext post-reload splitter): Use gen_extend_insn | |
25573 | instead of indirect functions. | |
25574 | (anddi->zext pre-reload splitter): New. | |
25575 | (*zext<mode>_doubleword_and): Remove. | |
25576 | (*zext<mode>_doubleword): Ditto. | |
25577 | (*zextsi_doubleword): Dittto. | |
25578 | ||
25579 | 2019-06-13 Uroš Bizjak <ubizjak@gmail.com> | |
25580 | ||
25581 | * config/i386/i386-expand.c (ix86_expand_int_sse_cmp): | |
25582 | Use gen_sub3_insn instead of indirect function. | |
25583 | (ix86_expand_ashl_const): Use gen_add2_insn instead of | |
25584 | indirect function. | |
25585 | (ix86_adjust_counter): Ditto. | |
25586 | ||
25587 | 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com> | |
25588 | Lijia He <helijia@linux.ibm.com> | |
25589 | ||
25590 | PR tree-optimization/77820 | |
25591 | * tree-ssa-threadedge.c | |
25592 | (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New | |
25593 | function. | |
25594 | (thread_across_edge): Add call to | |
25595 | edge_forwards_cmp_to_conditional_jump_through_empty_bb_p. | |
25596 | ||
25597 | 2019-06-13 Iain Sandoe <iain@sandoe.co.uk> | |
25598 | ||
25599 | * config/darwin-driver.c (validate_macosx_version_min): New. | |
25600 | (darwin_default_min_version): Cleanup and validate supplied version. | |
25601 | (darwin_driver_init): Likewise and push cleaned version into opts. | |
25602 | ||
25603 | 2019-06-13 Jan Hubicka <hubicka@ucw.cz> | |
25604 | ||
25605 | PR tree-optimization/90869 | |
25606 | * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view | |
25607 | converts in MEM_REF referencing decl rather than view converts | |
25608 | from decl type to MEM_REF type. | |
25609 | ||
25610 | 2019-06-13 Richard Biener <rguenther@suse.de> | |
25611 | ||
25612 | PR tree-optimization/90856 | |
25613 | * tree-sra.c (build_ref_for_model): Only use | |
25614 | build_reconstructed_reference when address-spaces are the same. | |
25615 | ||
25616 | 2019-06-13 Jakub Jelinek <jakub@redhat.com> | |
25617 | ||
25618 | * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't | |
25619 | wrap ei variable name in the declaration in ()s. | |
25620 | (nvptx_single): Actually use mode_label variable. Formatting fix. | |
25621 | ||
25622 | 2019-06-13 Richard Biener <rguenther@suse.de> | |
25623 | ||
25624 | * tree-vectorizer.h (vect_loop_vectorized_call): Declare. | |
25625 | * tree-vectorizer.c (vect_loop_vectorized_call): Export and | |
25626 | also return the condition stmt. | |
25627 | * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost | |
25628 | loop we can version and version that, reusing the loop version | |
25629 | created by if-conversion instead of versioning again. | |
25630 | ||
25631 | 2019-06-13 Aldy Hernandez <aldyh@redhat.com> | |
25632 | ||
25633 | * gimple-loop-versioning.cc (prune_loop_conditions): Use | |
25634 | may_contain_p. | |
25635 | * tree-vrp (value_range_base::may_contain_p): Call into | |
25636 | value_inside_range. | |
25637 | (value_inside_range): Make private inside value_range_base class. | |
25638 | Take min/max from *this. | |
25639 | (range_includes_p): Remove. | |
25640 | * tree-vrp.h (value_range_base): Add value_inside_range. | |
25641 | (range_includes_p): Remove. | |
25642 | (range_includes_zero_p): Call may_contain_p. | |
25643 | * vr-values.c (compare_range_with_value): Same. | |
25644 | ||
25645 | 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com> | |
25646 | ||
25647 | * doc/extend.texi (ARC Function Attributes): Update info. | |
25648 | ||
25649 | 2019-06-13 Feng Xue <fxue@os.amperecomputing.com> | |
25650 | ||
25651 | PR tree-optimization/89713 | |
25652 | * doc/invoke.texi (-ffinite-loops): Document new option. | |
25653 | * common.opt (-ffinite-loops): New option. | |
25654 | * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark | |
25655 | IFN_GOACC_LOOP calls as necessary. | |
25656 | * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit | |
25657 | is finite. | |
25658 | * omp-offload.c (oacc_xform_loop): Skip lowering if return value of | |
25659 | IFN_GOACC_LOOP call is not used. | |
25660 | * opts.c (default_options_table): Enable -ffinite-loops at -O2+. | |
25661 | ||
25662 | 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
25663 | ||
25664 | PR target/88838 | |
25665 | * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the | |
25666 | compare_type is not with Pmode size, we will create an IV with | |
25667 | Pmode size with truncated use (i.e. converted to the correct type). | |
25668 | * tree-vect-loop.c (vect_verify_full_masking): Find IV type. | |
25669 | (vect_iv_limit_for_full_masking): New. Factored out of | |
25670 | vect_set_loop_condition_masked. | |
25671 | * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New. | |
25672 | (vect_iv_limit_for_full_masking): Declare. | |
25673 | ||
25674 | 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
25675 | ||
25676 | PR target/88834 | |
25677 | * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle | |
25678 | IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES. | |
25679 | (get_alias_ptr_type_for_ptr_address): Likewise. | |
25680 | (add_iv_candidate_for_use): Add scaled index candidate if useful. | |
25681 | * tree-ssa-address.c (preferred_mem_scale_factor): New. | |
25682 | * config/aarch64/aarch64.c (aarch64_classify_address): Relax | |
25683 | allow_reg_index_p. | |
25684 | ||
25685 | 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org> | |
25686 | ||
25687 | * config/aarch64/iterators.md (ADDSUB): Fix typo in comment. | |
25688 | ||
25689 | 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu> | |
25690 | ||
25691 | * common/config/pru/pru-common.c: New file. | |
25692 | * config.gcc: Add PRU target. | |
25693 | * config/pru/alu-zext.md: New file. | |
25694 | * config/pru/constraints.md: New file. | |
25695 | * config/pru/predicates.md: New file. | |
25696 | * config/pru/pru-opts.h: New file. | |
25697 | * config/pru/pru-passes.c: New file. | |
25698 | * config/pru/pru-pragma.c: New file. | |
25699 | * config/pru/pru-protos.h: New file. | |
25700 | * config/pru/pru.c: New file. | |
25701 | * config/pru/pru.h: New file. | |
25702 | * config/pru/pru.md: New file. | |
25703 | * config/pru/pru.opt: New file. | |
25704 | * config/pru/t-pru: New file. | |
25705 | * doc/extend.texi: Document PRU pragmas. | |
25706 | * doc/invoke.texi: Document PRU-specific options. | |
25707 | * doc/md.texi: Document PRU asm constraints. | |
25708 | ||
25709 | 2019-06-12 Martin Sebor <msebor@redhat.com> | |
25710 | ||
25711 | PR middle-end/90676 | |
25712 | * tree-pretty-print.c (dump_mem_ref): New function. Include | |
25713 | MEM_REF type in output when different size than operand. | |
25714 | (dump_generic_node): Move code to dump_mem_ref and call it. | |
25715 | ||
25716 | 2019-06-12 Martin Sebor <msebor@redhat.com> | |
25717 | ||
25718 | PR tree-optimization/90662 | |
25719 | * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers | |
25720 | to arrays. | |
25721 | ||
25722 | 2019-06-12 Tom de Vries <tdevries@suse.de> | |
25723 | ||
25724 | PR tree-optimization/90009 | |
25725 | * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join. | |
25726 | ||
25727 | 2019-06-12 Martin Liska <mliska@suse.cz> | |
25728 | ||
25729 | * ggc-common.c (ggc_prune_overhead_list): Do not sanitize | |
25730 | the created map. | |
25731 | * hash-map.h: Add sanitize_eq_and_hash into ::hash_map. | |
25732 | * mem-stats.h (mem_alloc_description::mem_alloc_description): | |
25733 | Do not sanitize created maps. | |
25734 | ||
25735 | 2019-06-12 Aldy Hernandez <aldyh@redhat.com> | |
25736 | ||
25737 | * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use | |
25738 | value_range::singleton_p. | |
25739 | * tree-vrp.c (value_range_constant_singleton): Remove. | |
25740 | * tree-vrp.h (value_range_constant_singleton): Remove. | |
25741 | * vr-values.c (vr_values::singleton): Use | |
25742 | value_range::singleton_p. | |
25743 | ||
25744 | 2019-06-12 Jakub Jelinek <jakub@redhat.com> | |
25745 | ||
25746 | PR target/90811 | |
25747 | * cfgexpand.c (align_local_variable): Add really_expand argument, | |
25748 | don't SET_DECL_ALIGN if it is false. | |
25749 | (add_stack_var): Add really_expand argument, pass it through to | |
25750 | align_local_variable. | |
25751 | (expand_one_stack_var_1): Pass true as really_expand to | |
25752 | align_local_variable. | |
25753 | (expand_one_ssa_partition): Pass true as really_expand to | |
25754 | add_stack_var. | |
25755 | (expand_one_var): Pass really_expand through to add_stack_var. | |
25756 | ||
25757 | 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
25758 | ||
25759 | * config/arm/iterators.md (VABAL): New int iterator. | |
25760 | * config/arm/neon.md (<sup>sadv16qi): New define_expand. | |
25761 | * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S, | |
25762 | UNSPEC_VABAL_U values. | |
25763 | ||
25764 | 2019-06-12 Martin Liska <mliska@suse.cz> | |
25765 | ||
25766 | * value-prof.c (stream_out_histogram_value): Only first value | |
25767 | can't be negative. | |
25768 | ||
25769 | 2019-06-12 Jakub Jelinek <jakub@redhat.com> | |
25770 | ||
25771 | PR c/90760 | |
25772 | * symtab.c (symtab_node::set_section): Allow being called on aliases | |
25773 | as long as they aren't analyzed yet. | |
25774 | ||
25775 | 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com> | |
25776 | ||
25777 | * config/mips/mips.c (mips_final_postscan_insn): Modify call | |
25778 | to `mips_set_text_contents_type' to indicate whether a | |
25779 | non-debug insn follows. | |
25780 | ||
25781 | 2019-06-11 Michael Meissner <meissner@linux.ibm.com> | |
25782 | ||
25783 | * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete | |
25784 | enabling -mpcrel by default. | |
25785 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Update | |
25786 | test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so | |
25787 | that the test against -mcpu=future is done first. Then test if | |
25788 | -mprefixed-addr is on for -mpcrel. | |
25789 | (rs6000_disable_incompatible_switches): Add -mcpu=future support. | |
25790 | ||
25791 | 2019-06-11 Jakub Jelinek <jakub@redhat.com> | |
25792 | ||
25793 | PR target/90811 | |
25794 | * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d | |
25795 | instead of and.u%d. | |
25796 | ||
25797 | 2019-06-11 Marc Glisse <marc.glisse@inria.fr> | |
25798 | ||
25799 | * match.pd (X/[ex]4<Y/[ex]4): Handle conversions. | |
25800 | ||
25801 | 2019-06-11 Matthew Beliveau <mbelivea@redhat.com> | |
25802 | ||
25803 | PR c++/90449 - add -Winaccessible-base option. | |
25804 | * doc/invoke.texi (Winaccessible-base): Document. | |
25805 | ||
25806 | 2019-06-11 Marc Glisse <marc.glisse@inria.fr> | |
25807 | ||
25808 | PR tree-optimization/62041 | |
25809 | * fold-const.c (fold_real_zero_addition_p): Handle vectors. | |
25810 | ||
25811 | 2019-06-11 Jason Merrill <jason@redhat.com> | |
25812 | ||
25813 | * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory. | |
25814 | * tree.c (get_tree_code_name): Likewise. | |
25815 | * print-tree.c (print_node): Only briefly print a node with an | |
25816 | invalid code. | |
25817 | ||
25818 | 2019-06-11 Jakub Jelinek <jakub@redhat.com> | |
25819 | ||
25820 | PR bootstrap/90819 | |
25821 | * trans-mem.c (tm_memopt_compute_available): Add assertion | |
25822 | that blocks is not empty. Formatting fix. | |
25823 | ||
25824 | 2019-06-11 Martin Liska <mliska@suse.cz> | |
25825 | ||
25826 | PR c++/87847 | |
25827 | * hash-table.h: Extend create_gcc, add one parameter | |
25828 | that is passed into hash_table::hash_table. | |
25829 | ||
25830 | 2019-06-10 Uroš Bizjak <ubizjak@gmail.com> | |
25831 | ||
25832 | * config/i386/i386-protos.h (ix86_split_fp_absneg_operator): | |
25833 | New prototype. | |
25834 | * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator): | |
25835 | Emit clobber also for non-sse operations. | |
25836 | (ix86_split_fp_absneg_operator): New function. | |
25837 | * config/i386/i386.md (SSEMODEF): New mode iterator. | |
25838 | (ssevecmodef): New mode attribute. | |
25839 | (<code>tf2): Use absneg code iterator. | |
25840 | (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator. | |
25841 | Add three-operand AVX alternatives. | |
25842 | (*<code><mode>2_i387_1): Rename from *absnegxf2_i387. | |
25843 | Use absneg code iterator and X87MODEF mode iterator. | |
25844 | (absneg fp_reg non-sse splitter): Call absneg code iterator | |
25845 | and X87MODEF mode iterator. | |
25846 | (absneg general_reg non-sse splitter): Use absneg code iterator | |
25847 | and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator. | |
25848 | (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg | |
25849 | code iterator. Add three-operand AVX alternative. | |
25850 | (absneg sse_reg splitter): Use absneg code iterator | |
25851 | and SSEMODEF mode iterator. Handle AVX operands. | |
25852 | (absneg fp_reg splitter): Use absneg code iterator | |
25853 | and MODEF mode iterator. | |
25854 | (absneg general_reg splitter): Merge splitters using MODEF mode | |
25855 | iterator. Use absneg code iterator. Call | |
25856 | ix86_split_fp_absneg_operator. | |
25857 | (*<code><mode>2_i387): Rename from *<code><mode>2_1. | |
25858 | Do not enable for non-sse modes before reload. | |
25859 | (CSGNMODE): Remove. | |
25860 | (CSGNVMODE): Ditto. | |
25861 | (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and | |
25862 | ssevecmodef mode attribute instaed of CSGNVMODE. | |
25863 | (copysign<mode>3_const): Ditto. | |
25864 | (copysign<mode>3_var): Ditto. | |
25865 | * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2. | |
25866 | Use absneg code iterator. Simplify code using std::swap. | |
25867 | * config/i386/predicates.md (absneg_operator): Remove. | |
25868 | ||
25869 | 2019-06-10 Martin Sebor <msebor@redhat.com> | |
25870 | ||
25871 | * gimple-fold.c (get_range_strlen): Update comment that didn't | |
25872 | make it into r267503 or related commits. | |
25873 | ||
25874 | 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru> | |
25875 | ||
25876 | * gcov-tool.c (merge_usage, rewrite_usage): Mark with | |
25877 | ATTRIBUTE_NORETURN thus making consistent with overlap_usage. | |
25878 | ||
25879 | 2019-06-10 Jakub Jelinek <jakub@redhat.com> | |
25880 | ||
25881 | * tree.def (OMP_SCAN): New tree code. | |
25882 | * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and | |
25883 | OMP_CLAUSE_EXCLUSIVE. | |
25884 | * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP. | |
25885 | (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define. | |
25886 | * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for | |
25887 | OMP_CLAUSE_{IN,EX}CLUSIVE. | |
25888 | (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE. | |
25889 | * tree-nested.c (convert_nonlocal_reference_stmt, | |
25890 | convert_local_reference_stmt, convert_gimple_call): Handle | |
25891 | GIMPLE_OMP_SCAN. | |
25892 | * tree-pretty-print.c (dump_omp_clause): Handle | |
25893 | OMP_CLAUSE_{IN,EX}CLUSIVE. | |
25894 | (dump_generic_node): Handle OMP_SCAN. | |
25895 | * gimple.def (GIMPLE_OMP_SCAN): New gimple code. | |
25896 | * gimple.h (gomp_scan): New type. | |
25897 | (is_a_helper <gomp_scan *>::test, | |
25898 | is_a_helper <const gomp_scan *>::test): New templates. | |
25899 | (gimple_build_omp_scan): Declare. | |
25900 | (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr, | |
25901 | gimple_omp_scan_set_clauses): New inline functions. | |
25902 | (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:. | |
25903 | * gimple.c (gimple_build_omp_scan): New function. | |
25904 | (gimple_copy): Handle GIMPLE_OMP_SCAN. | |
25905 | * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise. | |
25906 | * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle | |
25907 | GIMPLE_OMP_TASKGROUP. | |
25908 | (dump_gimple_omp_scan): New function. | |
25909 | (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN. | |
25910 | * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN. | |
25911 | * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise. | |
25912 | * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN. | |
25913 | (is_gimple_stmt): Handle OMP_SCAN. | |
25914 | (gimplify_scan_omp_clauses): Reject inscan reductions on constructs | |
25915 | other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE. | |
25916 | (gimplify_adjust_omp_clauses): Diagnose inscan reductions not | |
25917 | mentioned in nested #pragma omp scan. Handle | |
25918 | OMP_CLAUSE_{IN,EX}CLUSIVE. | |
25919 | (gimplify_expr): Handle OMP_SCAN. | |
25920 | * omp-low.c (check_omp_nesting_restrictions): For parent context, | |
25921 | look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in | |
25922 | simd constructs. | |
25923 | (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle | |
25924 | GIMPLE_OMP_SCAN. | |
25925 | ||
25926 | 2019-06-10 Martin Liska <mliska@suse.cz> | |
25927 | ||
25928 | * ipa-cp.c (ignore_edge_p): New function. | |
25929 | (build_toporder_info): Use it. | |
25930 | * ipa-inline.c (ignore_edge_p): New function. | |
25931 | (inline_small_functions): Use it. | |
25932 | * ipa-pure-const.c (ignore_edge_for_nothrow): | |
25933 | Verify opt_for_fn for caller and callee. | |
25934 | (ignore_edge_for_pure_const): Likewise. | |
25935 | * ipa-reference.c (ignore_edge_p): Extend to check | |
25936 | for opt_for_fn. | |
25937 | * ipa-utils.c (searchc): Refactor. | |
25938 | * ipa-utils.h: Fix coding style. | |
25939 | ||
25940 | 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com> | |
25941 | ||
25942 | * config/arc/arc.c (arc_rtx_costs): Update costs. | |
25943 | ||
25944 | 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com> | |
25945 | ||
25946 | * config/arc/arc-protos.h (arc_check_ior_const): Declare. | |
25947 | (arc_split_ior): Likewise. | |
25948 | (arc_check_mov_const): Likewise. | |
25949 | (arc_split_mov_const): Likewise. | |
25950 | * config/arc/arc.c (arc_print_operand): Fix 'z' letter. | |
25951 | (arc_rtx_costs): Replace check Crr with Cax constraint. | |
25952 | (prepare_move_operands): Cleanup, remove unused code. | |
25953 | (arc_split_ior): New function. | |
25954 | (arc_check_ior_const): Likewise. | |
25955 | (arc_split_mov_const): Likewise. | |
25956 | (arc_check_mov_const): Likewise. | |
25957 | * config/arc/arc.md (movsi_insn): Restructure it, and convert it | |
25958 | in define_insn_and_split pattern. | |
25959 | (iorsi3): Likewise. | |
25960 | (mulsi3_v2): Add new matching variant. | |
25961 | (andsi3_i): Cleanup pattern. | |
25962 | (rotrsi3_cnt1): Update pattern. | |
25963 | (rotrsi3_cnt8): New pattern. | |
25964 | (ashlsi2_cnt8): Likewise. | |
25965 | (ashlsi2_cnt16): Likewise. | |
25966 | * config/arc/constraints.md (C0p): Update constraint. | |
25967 | (Crr): Remove it. | |
25968 | (C0x): New pattern. | |
25969 | (Cax): New pattern. | |
25970 | ||
25971 | 2019-06-10 Martin Liska <mliska@suse.cz> | |
25972 | ||
25973 | * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes): | |
25974 | Update coding style. | |
25975 | (sem_item_optimizer::dump_cong_classes): | |
25976 | Print how many items are in a non-singular class. Improve | |
25977 | coding style. | |
25978 | ||
25979 | 2019-06-10 Martin Liska <mliska@suse.cz> | |
25980 | ||
25981 | * value-prof.c (dump_histogram_value): Change dump format. | |
25982 | (gimple_mod_subtract_transform): Remove legacy comment. | |
25983 | ||
25984 | 2019-06-10 Martin Liska <mliska@suse.cz> | |
25985 | ||
25986 | * value-prof.c (dump_histogram_value): Print histogram values | |
25987 | only if present. | |
25988 | ||
25989 | 2019-06-10 Martin Liska <mliska@suse.cz> | |
25990 | ||
25991 | * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New. | |
25992 | (GCOV_SINGLE_VALUE_COUNTERS): Likewise. | |
25993 | * ipa-profile.c (ipa_profile_generate_summary): | |
25994 | Use get_most_common_single_value. | |
25995 | * tree-profile.c (gimple_init_gcov_profiler): | |
25996 | Instrument with __gcov_one_value_profiler_v2 | |
25997 | and __gcov_indirect_call_profiler_v4. | |
25998 | * value-prof.c (dump_histogram_value): | |
25999 | Print all values for HIST_TYPE_SINGLE_VALUE. | |
26000 | (stream_out_histogram_value): Update assert for | |
26001 | N values. | |
26002 | (stream_in_histogram_value): Set number of | |
26003 | counters for HIST_TYPE_SINGLE_VALUE. | |
26004 | (get_most_common_single_value): New. | |
26005 | (gimple_divmod_fixed_value_transform): | |
26006 | Use get_most_common_single_value. | |
26007 | (gimple_ic_transform): Likewise. | |
26008 | (gimple_stringops_transform): Likewise. | |
26009 | (gimple_find_values_to_profile): Set number | |
26010 | of counters for HIST_TYPE_SINGLE_VALUE. | |
26011 | * value-prof.h (get_most_common_single_value): New. | |
26012 | ||
26013 | 2019-06-10 Martin Liska <mliska@suse.cz> | |
26014 | ||
26015 | * hash-map.h: Pass default value to hash_table ctor. | |
26016 | * hash-table.h: Add default value to call of a ctor. | |
26017 | ||
26018 | 2019-06-08 Jonathan Wakely <jwakely@redhat.com> | |
26019 | ||
26020 | * doc/invoke.texi (C Dialect Options): Minor grammatical change. | |
26021 | (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL" | |
26022 | ||
26023 | 2019-06-07 John David Anglin <danglin@gcc.gnu.orig> | |
26024 | ||
26025 | PR target/90751 | |
26026 | * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment. | |
26027 | Call pa_output_function_label. | |
26028 | (TARGET_ASM_FUNCTION_PROLOGUE): define. | |
26029 | * config/pa/pa-protos.h (pa_output_function_label): Declare. | |
26030 | * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED | |
26031 | to declaration. | |
26032 | (pa_linux_output_function_prologue): Declare. | |
26033 | (TARGET_ASM_FUNCTION_PROLOGUE): Delete define. | |
26034 | (pa_output_function_label): New. | |
26035 | (pa_output_function_prologue): Revise to use pa_output_function_label. | |
26036 | (pa_linux_output_function_prologue): New. | |
26037 | * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define. | |
26038 | ||
26039 | 2019-06-07 Aldy Hernandez <aldyh@redhat.com> | |
26040 | ||
26041 | * tree-vrp.h (value_range_base::intersect): New. | |
26042 | (value_range::intersect_helper): Move from here... | |
26043 | (value_range_base::intersect_helper): ...to here. | |
26044 | * tree-vrp.c (value_range::intersect_helper): Rename to... | |
26045 | (value_range_base::intersect_helper): ...this, and rewrite to | |
26046 | return a value instead of modifying THIS in place. | |
26047 | Also, move equivalence handling... | |
26048 | (value_range::intersect): ...here, while calling intersect_helper. | |
26049 | * gimple-fold.c (size_must_be_zero_p): Use value_range_base when | |
26050 | calling intersect. | |
26051 | * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge): | |
26052 | Same. | |
26053 | * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same. | |
26054 | ||
26055 | 2019-06-07 Jakub Jelinek <jakub@redhat.com> | |
26056 | ||
26057 | * Makefile.in (genprogerr): Add condmd. | |
26058 | (genprog): Remove it here. | |
26059 | ||
26060 | 2019-06-07 Andrew Stubbs <ams@codesourcery.com> | |
26061 | ||
26062 | * doc/invoke.texi (AMD GCN Options): Add gfx906. | |
26063 | ||
26064 | 2019-06-07 Richard Biener <rguenther@suse.de> | |
26065 | ||
26066 | PR debug/90574 | |
26067 | * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels | |
26068 | that appear after user labels. | |
26069 | ||
26070 | 2019-06-07 Martin Liska <mliska@suse.cz> | |
26071 | ||
26072 | * cselib.c (cselib_init): Disable hash table | |
26073 | sanitization. | |
26074 | * hash-set.h: Pass new default argument to m_table. | |
26075 | * hash-table.c: Add global variable with hash table | |
26076 | sanitization limit. | |
26077 | * hash-table.h (Allocator>::hash_table): Add new argument | |
26078 | to ctor. | |
26079 | (hashtab_chk_error): New. | |
26080 | * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New. | |
26081 | * toplev.c (process_options): Set hash_table_sanitize_eq_limit | |
26082 | from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value. | |
26083 | ||
26084 | 2019-06-07 Jan Hubicka <hubicka@ucw.cz> | |
26085 | ||
26086 | * common.opt (flto-odr-type-merging): Ignore. | |
26087 | * invoke.texi (-flto-odr-type-merging): Remove. | |
26088 | * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove. | |
26089 | (can_be_vtable_hashed_p): Remove. | |
26090 | (hash_odr_vtable): Remove. | |
26091 | (odr_vtable_hasher::hash): Remove. | |
26092 | (types_same_for_odr): Remove. | |
26093 | (types_odr_comparable): Remove. | |
26094 | (odr_vtable_hasher::equal): Remove. | |
26095 | (odr_vtable_hash_type, odr_vtable_hash): Remove. | |
26096 | (add_type_duplicate): Do not synchronize vtable and name hashtables. | |
26097 | (get_odr_type): Do not use vtable hash. | |
26098 | (dump_odr_type): Remove commented out code. | |
26099 | (build_type_inheritance_graph): Do not allocate vtable hash. | |
26100 | (rebuild_type_inheritance_graph): Do not delete vtable hash. | |
26101 | * ipa-utils.h (type_with_linkage_p): Drop vtable hash path. | |
26102 | (odr_type_p): Likewise. | |
26103 | * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering | |
26104 | test. | |
26105 | ||
26106 | 2019-06-07 Jan Hubicka <hubicka@ucw.cz> | |
26107 | ||
26108 | * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up | |
26109 | immediately after same_types_for_tbaa_p returns -1 and continue | |
26110 | looking for possible exact match; if matching types are arrays | |
26111 | watch for partial overlaps. | |
26112 | (indirect_ref_may_alias_decl_p): Watch for partial array overlaps. | |
26113 | (indirect_refs_may_alias_p): Do type based disambiguation first; | |
26114 | update comment. | |
26115 | ||
26116 | 2019-06-07 Richard Sandiford <richard.sandiford@arm.com> | |
26117 | ||
26118 | * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p. | |
26119 | ||
26120 | 2019-06-07 Martin Liska <mliska@suse.cz> | |
26121 | ||
26122 | * doc/invoke.texi: Remove param. | |
26123 | * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV): | |
26124 | Remove. | |
26125 | * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise. | |
26126 | (GCOV_ICALL_TOPN_NCOUNTS): Likewise. | |
26127 | * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise. | |
26128 | * profile.c (instrument_values): Remove | |
26129 | HIST_TYPE_INDIR_CALL_TOPN. | |
26130 | * tree-profile.c (init_ic_make_global_vars): | |
26131 | Always build __gcov_indirect_call only. | |
26132 | (gimple_init_gcov_profiler): Remove usage | |
26133 | of PARAM_INDIR_CALL_TOPN_PROFILE. | |
26134 | (gimple_gen_ic_profiler): Likewise. | |
26135 | * value-prof.c (dump_histogram_value): Likewise. | |
26136 | (stream_in_histogram_value): Likewise. | |
26137 | (gimple_indirect_call_to_profile): Likewise. | |
26138 | (gimple_find_values_to_profile): Likewise. | |
26139 | * value-prof.h (enum hist_type): Likewise. | |
26140 | ||
26141 | 2019-06-07 Martin Liska <mliska@suse.cz> | |
26142 | ||
26143 | * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the | |
26144 | function. | |
26145 | ||
26146 | 2019-06-07 Martin Liska <mliska@suse.cz> | |
26147 | ||
26148 | PR tree-optimization/78902 | |
26149 | * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New. | |
26150 | (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove. | |
26151 | (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New. | |
26152 | (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New. | |
26153 | (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove. | |
26154 | (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove. | |
26155 | (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New. | |
26156 | (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New. | |
26157 | (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New. | |
26158 | (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove. | |
26159 | (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New. | |
26160 | (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove. | |
26161 | (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST): | |
26162 | New. | |
26163 | (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove. | |
26164 | (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New. | |
26165 | (ATTR_MALLOC_NOTHROW_NONNULL): Remove. | |
26166 | (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New. | |
26167 | (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New. | |
26168 | (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove. | |
26169 | (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New. | |
26170 | (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New. | |
26171 | * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use | |
26172 | warn_unused_result attribute. | |
26173 | (BUILT_IN_STRDUP): Likewise. | |
26174 | (BUILT_IN_STRNDUP): Likewise. | |
26175 | (BUILT_IN_ALLOCA): Likewise. | |
26176 | (BUILT_IN_CALLOC): Likewise. | |
26177 | (BUILT_IN_MALLOC): Likewise. | |
26178 | (BUILT_IN_REALLOC): Likewise. | |
26179 | ||
26180 | 2019-06-06 Jim Wilson <jimw@sifive.com> | |
26181 | ||
26182 | PR target/89955 | |
26183 | * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted. | |
26184 | * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added. | |
26185 | * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added. | |
26186 | ||
26187 | 2019-06-06 Martin Sebor <msebor@redhat.com> | |
26188 | ||
26189 | * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article. | |
26190 | (handle_builtin_malloc): Remove trailing spaces. | |
26191 | (handle_builtin_memset): Same. | |
26192 | (handle_builtin_memcmp): Same. | |
26193 | (compute_string_length): Same. | |
26194 | (determine_min_objsize): Same. | |
26195 | (handle_builtin_string_cmp): Same. | |
26196 | (handle_char_store): Same. Break up excessively long line. | |
26197 | ||
26198 | 2019-06-06 Martin Jambor <mjambor@suse.cz> | |
26199 | ||
26200 | * tree-sra.c (build_reconstructed_reference): Drop the alignment | |
26201 | check. | |
26202 | ||
26203 | 2019-06-06 Martin Jambor <mjambor@suse.cz> | |
26204 | ||
26205 | * tree-sra.c (struct access): New field grp_same_access_path. | |
26206 | (dump_access): Dump it. | |
26207 | (build_reconstructed_reference): New function. | |
26208 | (build_ref_for_model): Use it if possible. | |
26209 | (path_comparable_for_same_access): New function. | |
26210 | (same_access_path_p): Likewise. | |
26211 | (sort_and_splice_var_accesses): Set the new flag. | |
26212 | (analyze_access_subtree): Likewise. | |
26213 | (propagate_subaccesses_across_link): Propagate zero value of the new | |
26214 | flag down the access tree. | |
26215 | ||
26216 | 2019-06-06 Andrew Stubbs <ams@codesourcery.com> | |
26217 | ||
26218 | * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906. | |
26219 | * config/gcn/gcn.opt (gpu_type): Add gfx906. | |
26220 | * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib. | |
26221 | (MULTILIB_DIRNAMES): Rename gcn5 to gfx900. | |
26222 | Add gfx906. | |
26223 | ||
26224 | 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
26225 | ||
26226 | PR tree-optimization/90332 | |
26227 | * config/aarch64/aarch64.c (aarch64_expand_vector_init): | |
26228 | Handle VALS containing two vectors. | |
26229 | * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename | |
26230 | to... | |
26231 | (@aarch64_combinez<mode>): ... This. | |
26232 | (*aarch64_combinez_be<mode>): Rename to... | |
26233 | (@aarch64_combinez_be<mode>): ... This. | |
26234 | (vec_init<mode><Vhalf>): New define_expand. | |
26235 | * config/aarch64/iterators.md (Vhalf): Handle V8HF. | |
26236 | ||
26237 | 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
26238 | ||
26239 | * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift | |
26240 | library functions only when not optimizing for size. | |
26241 | (ashlsi3): Likewise. | |
26242 | (ashrhi3): Likewise. | |
26243 | (ashrsi3): Likewise. | |
26244 | (lshrhi3): Likewise. | |
26245 | (lshrsi3): Likewise. | |
26246 | ||
26247 | 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com> | |
26248 | ||
26249 | PR rtl-optimization/88751 | |
26250 | * ira.c (ira): Use the number of the actually referenced registers | |
26251 | when calculating the threshold. | |
26252 | ||
26253 | 2019-06-06 Jakub Jelinek <jakub@redhat.com> | |
26254 | ||
26255 | * configure: Regenerate. | |
26256 | ||
26257 | 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com> | |
26258 | ||
26259 | * config/msp430/msp430.md (ashlhi3): Force shift src operand into a | |
26260 | register if it is in memory, so the shift can be emulated with a rotate | |
26261 | instruction. | |
26262 | (ashrhi3): Likewise. | |
26263 | (lshrhi3): Likewise. | |
26264 | ||
26265 | 2019-06-06 Martin Liska <mliska@suse.cz> | |
26266 | ||
26267 | PR tree-optimization/87954 | |
26268 | * match.pd: Simplify mult where both arguments are 0 or 1. | |
26269 | ||
26270 | 2019-06-06 Richard Biener <rguenther@suse.de> | |
26271 | ||
26272 | * vr-values.c (vr_values::extract_range_from_ssa_name): Do not | |
26273 | put equivalences on UNDEFINED ranges. | |
26274 | * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): | |
26275 | Make sure to drop defs of stmts added during simplification | |
26276 | to VARYING. | |
26277 | ||
26278 | 2019-06-06 Richard Biener <rguenther@suse.de> | |
26279 | ||
26280 | * tree-ssa-structalias.c: Include tree-cfg.h. | |
26281 | (make_heapvar): Do not make heap vars artificial. | |
26282 | (find_func_aliases_for_builtin_call): Handle stack allocation | |
26283 | functions. | |
26284 | (find_func_aliases): Delay processing of simple enough returns | |
26285 | in non-IPA mode. | |
26286 | (set_uids_in_ptset): Adjust. | |
26287 | (find_what_var_points_to): Likewise. | |
26288 | (solve_constraints): Do not dump points-to sets here. | |
26289 | (compute_points_to_sets): Post-process return statements, | |
26290 | amending the escaped solution. Dump points-to sets afterwards. | |
26291 | (ipa_pta_execute): Dump points-to sets. | |
26292 | ||
26293 | 2019-06-06 Martin Liska <mliska@suse.cz> | |
26294 | ||
26295 | PR web/87933 | |
26296 | * doc/install.texi: Fix HTML headers and | |
26297 | titles for 'Installing GCC' pages. | |
26298 | ||
26299 | 2019-06-06 Martin Liska <mliska@suse.cz> | |
26300 | ||
26301 | * ipa-icf-gimple.h (dump_message_1): Remove. | |
26302 | (dump_message): Likewise. | |
26303 | (return_false_with_message_1): Print also file. | |
26304 | (return_false_with_msg): Likewise. | |
26305 | (return_with_result): Likewise. | |
26306 | (return_with_debug): Likewise. | |
26307 | * ipa-icf.c (sem_function::equals_private): Remove call | |
26308 | to dump_message. | |
26309 | ||
26310 | 2019-06-05 Hongtao Liu <hongtao.liu@intel.com> | |
26311 | ||
26312 | * config/i386/sse.md (define_mode_suffix vecmemsuffix): New. | |
26313 | (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable | |
26314 | memory operand for it. | |
26315 | (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto. | |
26316 | ||
26317 | 2019-06-05 Martin Sebor <msebor@redhat.com> | |
26318 | ||
26319 | * config/i386/i386-features.c (ix86_get_function_versions_dispatcher): | |
26320 | Adjust quoting and hyphenation. | |
26321 | * convert.c (convert_to_real_1): Same. | |
26322 | * gcc.c (driver_wrong_lang_callback): Same. | |
26323 | (driver::handle_unrecognized_options): Same. | |
26324 | * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same. | |
26325 | * opts-common.c (cmdline_handle_error): Same. | |
26326 | (read_cmdline_option): Same. | |
26327 | * opts-global.c (complain_wrong_lang): Same. | |
26328 | (print_ignored_options): Same. | |
26329 | (handle_common_deferred_options): Same. | |
26330 | * pretty-print.h: Same. | |
26331 | * print-rtl.c (debug_bb_n_slim): Same. | |
26332 | * sched-rgn.c (make_pass_sched_fusion): Same. | |
26333 | * tree-cfg.c (verify_gimple_assign_unary): Same. | |
26334 | (verify_gimple_label): Same. | |
26335 | * tree-ssa-operands.c (verify_ssa_operands): Same. | |
26336 | * varasm.c (do_assemble_alias): Same. | |
26337 | (assemble_alias): Same. | |
26338 | ||
26339 | 2019-06-05 Richard Henderson <rth@twiddle.net> | |
26340 | ||
26341 | * config/alpha/alpha.c (direct_return): Move down after | |
26342 | struct machine_function definition; use saved frame_size; | |
26343 | return bool. | |
26344 | (struct machine_function): Add sa_mask, sa_size, frame_size. | |
26345 | (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ... | |
26346 | (alpha_compute_frame_layout): ... new function. | |
26347 | (TARGET_COMPUTE_FRAME_LAYOUT): New. | |
26348 | (alpha_initial_elimination_offset): Use saved sa_size. | |
26349 | (alpha_vms_initial_elimination_offset): Likewise. | |
26350 | (alpha_vms_can_eliminate): Remove alpha_sa_size call. | |
26351 | (alpha_expand_prologue): Use saved frame data. Merge integer | |
26352 | and fp register save loops. | |
26353 | (alpha_expand_epilogue): Likewise. | |
26354 | (alpha_start_function): Use saved frame data. | |
26355 | * config/alpha/alpha-protos.h (direct_return): Update. | |
26356 | (alpha_sa_size): Remove. | |
26357 | ||
26358 | 2019-06-05 Eric Botcazou <ebotcazou@adacore.com> | |
26359 | ||
26360 | * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a | |
26361 | multiplication by a power-of-two value. | |
26362 | (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value | |
26363 | and turn the modulo operation into a masking operation. | |
26364 | ||
26365 | 2019-06-05 Jakub Jelinek <jakub@redhat.com> | |
26366 | ||
26367 | PR debug/90733 | |
26368 | * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs | |
26369 | with VOIDmode inner operands. | |
26370 | ||
26371 | 2019-06-05 Richard Biener <rguenther@suse.de> | |
26372 | ||
26373 | PR middle-end/90726 | |
26374 | * tree-ssa-loop-niter.c (expand_simple_operations): Do not | |
26375 | turn an expression graph into a tree. | |
26376 | ||
26377 | 2019-06-05 Jakub Jelinek <jakub@redhat.com> | |
26378 | ||
26379 | * omp-expand.c (struct omp_region): Add has_lastprivate_conditional | |
26380 | member. | |
26381 | (expand_parallel_call): If region->inner->has_lastprivate_conditional, | |
26382 | treat it like explicit monotonic schedule modifier. | |
26383 | (expand_omp_for): Initialize has_lastprivate_conditional. | |
26384 | If fd.lastprivate_conditional != 0, treat it like explicit monotonic | |
26385 | schedule modifier. | |
26386 | ||
26387 | * omp-low.c (lower_rec_input_clauses): For lastprivate conditional | |
26388 | references, lookup in in hash map MEM_REF operand instead of the | |
26389 | MEM_REF itself. | |
26390 | (lower_omp_1): When looking for lastprivate conditional assignments, | |
26391 | handle MEM_REFs with REFERENCE_TYPE operands. | |
26392 | ||
26393 | * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and | |
26394 | on privatization clauses OMP_CLAUSE_DECL is privatized by reference | |
26395 | and references a VLA. Handle references to non-VLAs if is_simd | |
26396 | all privatization clauses like reductions. | |
26397 | (lower_rec_input_clauses) <case do_private, case do_firstprivate>: | |
26398 | If omp_is_reference, use always omp simd arrays and set | |
26399 | DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses | |
26400 | fails, emit reference initialization. | |
26401 | ||
26402 | 2019-06-05 Hongtao Liu <hongtao.liu@intel.com> | |
26403 | ||
26404 | PR target/89803 | |
26405 | * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask, | |
26406 | _mm_mask_fpclass_sd_mask): New intrinsics. | |
26407 | (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins. | |
26408 | * config/i386/i386-builtin.def | |
26409 | (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask): | |
26410 | New builtins. | |
26411 | (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted. | |
26412 | * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT), | |
26413 | DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted. | |
26414 | * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT, | |
26415 | case QI_FTYPE_V2SF_INT): Ditto. | |
26416 | * config/i386/sse.md | |
26417 | (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>): | |
26418 | Extended to insnstructions with mask operands. | |
26419 | ||
26420 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26421 | ||
26422 | * config/rs6000/constraints.md (define_register_constraint "wp"): | |
26423 | Delete. | |
26424 | (define_register_constraint "wq"): Delete. | |
26425 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
26426 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
26427 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
26428 | RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq. | |
26429 | * config/rs6000/vsx.md (define_mode_attr VSr3): Delete. | |
26430 | (define_mode_attr VSa): Delete. | |
26431 | (define_mode_attr VSisa): New. | |
26432 | (rest of file): Adjust. | |
26433 | * doc/md.texi (Machine Constraints): Adjust. | |
26434 | ||
26435 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26436 | ||
26437 | * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf. | |
26438 | (define_attr "enabled"): Handle those new isa values. | |
26439 | ||
26440 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26441 | ||
26442 | * config/rs6000/vsx.md (define_mode_attr VSr4): Delete. | |
26443 | (define_mode_attr VSr5): Delete. | |
26444 | (define_mode_attr VStype_sqrt): Delete. | |
26445 | (define_mode_iterator VSX_SPDP): Delete. | |
26446 | (define_mode_attr VS_spdp_res): Delete. | |
26447 | (define_mode_attr VS_spdp_insn): Delete. | |
26448 | (define_mode_attr VS_spdp_type): Delete. | |
26449 | (*vsx_sqrt<mode>2): Adjust. | |
26450 | (vsx_<VS_spdp_insn>): Delete, split to... | |
26451 | (vsx_xscvdpsp): ... this. New. And... | |
26452 | (vsx_xvcvspdp): ... this. New. And... | |
26453 | (vsx_xvcvdpsp): ... this. New. | |
26454 | ||
26455 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26456 | ||
26457 | * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF | |
26458 | and V2DF. | |
26459 | * config/rs6000/vsx.md (define_mode_attr VSs): Delete. | |
26460 | (rest of file): Adjust. | |
26461 | ||
26462 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26463 | ||
26464 | * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>. | |
26465 | (vsx_extract_<mode>_var): Ditto. | |
26466 | ||
26467 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26468 | ||
26469 | * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI | |
26470 | with just "wa". | |
26471 | ||
26472 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26473 | ||
26474 | * config/rs6000/constraints.md (define_register_constraint "ww"): | |
26475 | Delete. | |
26476 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
26477 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
26478 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
26479 | RS6000_CONSTRAINT_ww. | |
26480 | * config/rs6000/rs6000.md: Adjust. | |
26481 | * config/rs6000/vsx.md: Adjust. | |
26482 | * doc/md.texi (Machine Constraints): Adjust. | |
26483 | ||
26484 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26485 | ||
26486 | * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments. | |
26487 | (define_mode_attr sd): New. | |
26488 | (define_mode_attr s): New. | |
26489 | (define_mode_attr Ftrad): Delete. | |
26490 | (define_mode_attr Fvsx): Delete. | |
26491 | (define_mode_attr Fs): Delete. | |
26492 | (rest of file): Use the new mode attributes. | |
26493 | * config.rs6000/vsx.md: Use the new mode attributes. | |
26494 | ||
26495 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26496 | ||
26497 | * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W | |
26498 | with just "wa". | |
26499 | ||
26500 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26501 | ||
26502 | * config/rs6000/vsx.md (define_mode_attr VSr2): Delete. | |
26503 | (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are | |
26504 | used with VSX_B, VSX_D, or VSX_F, with just "wa". | |
26505 | ||
26506 | 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com> | |
26507 | ||
26508 | PR target/78263 | |
26509 | * config/rs6000/altivec.h: Don't #define vector, pixel, bool for | |
26510 | C++ with strict ANSI requirements. | |
26511 | ||
26512 | 2019-06-04 Marc Glisse <marc.glisse@inria.fr> | |
26513 | ||
26514 | * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip | |
26515 | computations when step is 1. | |
26516 | ||
26517 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26518 | ||
26519 | * config/rs6000/constraints.md (define_register_constraint "wf"): | |
26520 | Delete. | |
26521 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
26522 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
26523 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
26524 | RS6000_CONSTRAINT_wf. | |
26525 | * config/rs6000/rs6000.md: Adjust. | |
26526 | * config/rs6000/vsx.md: Adjust. | |
26527 | * doc/md.texi (Machine Constraints): Adjust. | |
26528 | ||
26529 | 2019-06-04 Andrew Pinski <apinski@marvell.com> | |
26530 | ||
26531 | * config/aarch64/aarch64.c (aarch64_asan_shadow_offset): | |
26532 | Fix ILP32 value. | |
26533 | ||
26534 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26535 | ||
26536 | * config/rs6000/constraints.md (define_register_constraint "wd"): | |
26537 | Delete. | |
26538 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
26539 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
26540 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
26541 | RS6000_CONSTRAINT_wd. | |
26542 | * config/rs6000/rs6000.md: Adjust. | |
26543 | * config/rs6000/vsx.md: Adjust. | |
26544 | * doc/md.texi (Machine Constraints): Adjust. | |
26545 | ||
26546 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26547 | ||
26548 | * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete. | |
26549 | (rest of file): Adjust. | |
26550 | ||
26551 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26552 | ||
26553 | * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete. | |
26554 | (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust. | |
26555 | (vsx_splat_<mode>_reg): Adjust. | |
26556 | ||
26557 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26558 | ||
26559 | * config/rs6000/constraints.md (define_register_constraint "ws"): | |
26560 | Delete. | |
26561 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
26562 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
26563 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
26564 | RS6000_CONSTRAINT_ws. | |
26565 | * config/rs6000/rs6000.md: Adjust. | |
26566 | * config/rs6000/vsx.md: Adjust. | |
26567 | * doc/md.texi (Machine Constraints): Adjust. | |
26568 | ||
26569 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26570 | ||
26571 | * config/rs6000/constraints.md (define_register_constraint "wv"): | |
26572 | Delete. | |
26573 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
26574 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
26575 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
26576 | RS6000_CONSTRAINT_wv. | |
26577 | * config/rs6000/rs6000.md: Adjust. | |
26578 | * config/rs6000/vsx.md: Adjust. | |
26579 | * doc/md.texi (Machine Constraints): Adjust. | |
26580 | ||
26581 | 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org> | |
26582 | ||
26583 | * config/rs6000/constraints.md (define_register_constraint "wi"): | |
26584 | Delete. | |
26585 | (define_register_constraint "wt"): Delete. | |
26586 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
26587 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
26588 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
26589 | RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt. | |
26590 | * config/rs6000/rs6000.md: Adjust. | |
26591 | * config/rs6000/vsx.md: Adjust. | |
26592 | * doc/md.texi (Machine Constraints): Adjust. | |
26593 | ||
26594 | 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
26595 | ||
26596 | * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove | |
26597 | const. | |
26598 | * config/aarch64/aarch64.c (aarch64_asm_output_external): Call | |
26599 | default_elf_asm_output_external. | |
26600 | ||
26601 | 2019-06-04 Martin Liska <mliska@suse.cz> | |
26602 | ||
26603 | * ipa-icf.c (INCLUDE_LIST): Remove. | |
26604 | (sem_item_optimizer::execute): Remove call to init_wpa. | |
26605 | * ipa-icf.h (init_wpa): Remove. | |
26606 | ||
26607 | 2019-06-04 Jakub Jelinek <jakub@redhat.com> | |
26608 | ||
26609 | * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate | |
26610 | conditional on combined for simd. | |
26611 | * omp-low.c (struct omp_context): Add combined_into_simd_safelen0 | |
26612 | member. | |
26613 | (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1 | |
26614 | constructs, don't remove lastprivate_conditional_map, but instead set | |
26615 | ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points | |
26616 | to parent construct temporaries. | |
26617 | (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0 | |
26618 | like !ctx->lastprivate_conditional_map. | |
26619 | (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0, | |
26620 | use up->outer context instead of up. | |
26621 | * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if | |
26622 | gimple_omp_for_combined_p. | |
26623 | (expand_omp_for_static_nochunk): Likewise. | |
26624 | (expand_omp_for_static_chunk): Add forgotten cond_var bump that was | |
26625 | probably moved over into expand_omp_for_generic rather than being copied | |
26626 | there. | |
26627 | ||
26628 | 2019-06-04 Martin Liska <mliska@suse.cz> | |
26629 | ||
26630 | * value-prof.c (dump_histogram_value): Fix typo. | |
26631 | (gimple_mod_subtract_transform): Likewise. | |
26632 | ||
26633 | 2019-06-04 Richard Biener <rguenther@suse.de> | |
26634 | ||
26635 | PR middle-end/90726 | |
26636 | * tree-chrec.c (chrec_contains_symbols): Add to visited. | |
26637 | (tree_contains_chrecs): Likewise. | |
26638 | (chrec_contains_symbols_defined_in_loop): Move here and avoid | |
26639 | exponential behaivor from ... | |
26640 | * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop): | |
26641 | ... here. | |
26642 | (expression_expensive_p): Avoid exponential behavior and compute | |
26643 | expanded size, rejecting any expansion. | |
26644 | * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove. | |
26645 | (idx_contains_abnormal_ssa_name_p): Likewise. | |
26646 | (contains_abnormal_ssa_name_p_1): New helper for walk_tree. | |
26647 | (contains_abnormal_ssa_name_p): Simplify and use | |
26648 | walk_tree_without_duplicates. | |
26649 | ||
26650 | 2019-06-04 Richard Biener <rguenther@suse.de> | |
26651 | ||
26652 | PR tree-optimization/90738 | |
26653 | Revert | |
26654 | 2019-06-03 Richard Biener <rguenther@suse.de> | |
26655 | ||
26656 | * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original | |
26657 | full reference tree and record in ref->ref. | |
26658 | (vn_reference_lookup_3): Pass in original ref to | |
26659 | ao_ref_init_from_vn_reference. | |
26660 | (vn_reference_lookup): Likewise. | |
26661 | * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype. | |
26662 | * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): | |
26663 | Handle non-decl bases in the original reference. | |
26664 | ||
26665 | 2019-06-04 Martin Liska <mliska@suse.cz> | |
26666 | ||
26667 | * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count | |
26668 | number of references. | |
26669 | (sem_item_optimizer::do_congruence_step): | |
26670 | (sem_item_optimizer::worklist_push): Dump how references | |
26671 | a class has. | |
26672 | (sem_item_optimizer::worklist_pop): Use heap. | |
26673 | (sem_item_optimizer::process_cong_reduction): Likewise. | |
26674 | * ipa-icf.h: Use fibonacci_heap insteam of std::list. | |
26675 | ||
26676 | 2019-06-04 Martin Liska <mliska@suse.cz> | |
26677 | ||
26678 | * ipa-icf.h (struct sem_usage_pair_hash): New. | |
26679 | (sem_usage_pair_hash::hash): Likewise. | |
26680 | (sem_usage_pair_hash::equal): Likewise. | |
26681 | (struct sem_usage_hash): Likewise. | |
26682 | * ipa-icf.c (sem_item::sem_item): Initialize | |
26683 | referenced_by_count. | |
26684 | (sem_item::add_reference): Register a reference | |
26685 | in ref_map and not in target->usages. | |
26686 | (sem_item::setup): Remove initialization of | |
26687 | dead vectors. | |
26688 | (sem_item::~sem_item): Remove usage of dead vectors. | |
26689 | (sem_item::dump): Remove dump of references. | |
26690 | (sem_item_optimizer::sem_item_optimizer): Initialize | |
26691 | m_references. | |
26692 | (sem_item_optimizer::read_section): Remove useless | |
26693 | dump. | |
26694 | (sem_item_optimizer::parse_funcs_and_vars): Likewise here. | |
26695 | (sem_item_optimizer::build_graph): Pass m_references | |
26696 | to ::add_reference. | |
26697 | (sem_item_optimizer::verify_classes): Remove usage of dead | |
26698 | vectors. | |
26699 | (sem_item_optimizer::traverse_congruence_split): Return true | |
26700 | when a class is split. | |
26701 | (sem_item_optimizer::do_congruence_step_for_index): Use | |
26702 | hash_map for look up of (sem_item *, index). That brings | |
26703 | significant speed up. | |
26704 | (sem_item_optimizer::do_congruence_step): Return true | |
26705 | when a split is done. | |
26706 | (congruence_class::is_class_used): Use referenced_by_count. | |
26707 | ||
26708 | 2019-06-04 Alan Modra <amodra@gmail.com> | |
26709 | ||
26710 | PR target/90689 | |
26711 | * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge | |
26712 | error. | |
26713 | ||
26714 | 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org> | |
26715 | ||
26716 | * config/rs6000/rs6000.h (MASK_MFPGPR): Delete. | |
26717 | * config/rs6000/rs6000.c (direct_move_p): Adjust. | |
26718 | (rs6000_secondary_reload_simple_move): Adjust. | |
26719 | (rs6000_opt_masks): Neuter the "mfpgpr" option. | |
26720 | * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust. | |
26721 | * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust | |
26722 | comment. | |
26723 | (power6x): Adjust. | |
26724 | * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust. | |
26725 | (floatunssi<mode>2_lfiwzx): Adjust. | |
26726 | (fix_trunc<mode>si2_stfiwx): Adjust. | |
26727 | (fixuns_trunc<mode>si2_stfiwx): Adjust. | |
26728 | * config/rs6000/rs6000.opt (mno-mfpgpr): New. | |
26729 | (mfpgpr): Mark as deprecated. | |
26730 | * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr. | |
26731 | (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust. | |
26732 | * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr. | |
26733 | ||
26734 | 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org> | |
26735 | ||
26736 | * config/rs6000/constraints.md (define_register_constraint "wg"): | |
26737 | Delete. | |
26738 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
26739 | RS6000_CONSTRAINT_wg. | |
26740 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
26741 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
26742 | * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64): | |
26743 | Delete "wg" alternatives. | |
26744 | * doc/md.texi (Machine Constraints): Adjust. | |
26745 | ||
26746 | 2019-06-03 Alan Modra <amodra@gmail.com> | |
26747 | ||
26748 | * bb-reorder.c (copy_bb_p): Don't overflow size calculation. | |
26749 | (get_uncond_jump_length): Assert length less than INT_MAX and | |
26750 | non-negative. | |
26751 | ||
26752 | 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com> | |
26753 | ||
26754 | PR middle-end/64242 | |
26755 | * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule | |
26756 | block. | |
26757 | (expand_builtin_nonlocal_goto): Likewise. | |
26758 | ||
26759 | 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com> | |
26760 | ||
26761 | * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare. | |
26762 | (aarch64_asm_output_external): Declare. | |
26763 | * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New. | |
26764 | (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs. | |
26765 | (aarch64_asm_output_alias): New. | |
26766 | (aarch64_asm_output_external): New. | |
26767 | * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define. | |
26768 | (ASM_OUTPUT_EXTERNAL): Define. | |
26769 | ||
26770 | 2019-06-03 Aldy Hernandez <aldyh@redhat.com> | |
26771 | * tree-vrp.h (value_range_base::nonzero_p): New. | |
26772 | (value_range_base::set_nonnull): Rename to... | |
26773 | (value_range_base::set_nonzero): ...this. | |
26774 | (value_range_base::set_null): Rename to... | |
26775 | (value_range_base::set_zero): ...this. | |
26776 | (value_range::set_nonnull): Remove. | |
26777 | (value_range::set_null): Remove. | |
26778 | * tree-vrp.c (range_is_null): Remove. | |
26779 | (range_is_nonnull): Remove. | |
26780 | (extract_range_from_binary_expr): Use value_range_base::*zero_p | |
26781 | instead of range_is_*null. | |
26782 | (extract_range_from_unary_expr): Same. | |
26783 | (value_range_base::set_nonnull): Rename to... | |
26784 | (value_range_base::set_nonzero): ...this. | |
26785 | (value_range::set_nonnull): Remove. | |
26786 | (value_range_base::set_null): Rename to... | |
26787 | (value_range_base::set_zero): ...this. | |
26788 | (value_range::set_null): Remove. | |
26789 | (extract_range_from_binary_expr): Rename set_*null uses to | |
26790 | set_*zero. | |
26791 | (extract_range_from_unary_expr): Same. | |
26792 | (union_helper): Same. | |
26793 | * vr-values.c (get_value_range): Use set_*zero instead of | |
26794 | set_*null. | |
26795 | (vr_values::extract_range_from_binary_expr): Same. | |
26796 | (vr_values::extract_range_basic): Same. | |
26797 | ||
26798 | 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com> | |
26799 | ||
26800 | PR driver/90684 | |
26801 | * opts.c (parse_and_check_align_values): Allow 4 alignment values. | |
26802 | ||
26803 | 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
26804 | ||
26805 | * config/aarch64/iterators.md (MAX_OPP): New code attr. | |
26806 | * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): | |
26807 | Rename to... | |
26808 | (aarch64_<su>abd<mode>_3): ... This. | |
26809 | (<sur>sadv16qi): Add TARGET_DOTPROD expansion. | |
26810 | ||
26811 | 2019-06-03 Richard Biener <rguenther@suse.de> | |
26812 | ||
26813 | * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original | |
26814 | full reference tree and record in ref->ref. | |
26815 | (vn_reference_lookup_3): Pass in original ref to | |
26816 | ao_ref_init_from_vn_reference. | |
26817 | (vn_reference_lookup): Likewise. | |
26818 | * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype. | |
26819 | * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p): | |
26820 | Handle non-decl bases in the original reference. | |
26821 | ||
26822 | 2019-06-03 Martin Liska <mliska@suse.cz> | |
26823 | ||
26824 | * doc/generic.texi: Remove Java Trees. | |
26825 | ||
26826 | 2019-06-03 Martin Liska <mliska@suse.cz> | |
26827 | ||
26828 | * fold-const.c (operand_equal_p): Fix typo as compare_tree_int | |
26829 | returns 0 when operands are equal. | |
26830 | ||
26831 | 2019-06-03 Richard Biener <rguenther@suse.de> | |
26832 | ||
26833 | PR tree-optimization/90716 | |
26834 | * tree-loop-distribution.c (destroy_loop): Process blocks in | |
26835 | correct order. | |
26836 | ||
26837 | 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
26838 | ||
26839 | PR target/88837 | |
26840 | * vector-builder.h (vector_builder::count_dups): New method. | |
26841 | * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init): | |
26842 | Declare prototype. | |
26843 | * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @. | |
26844 | (vec_init<mode><Vel>): New pattern. | |
26845 | * config/aarch64/aarch64.c (emit_insr): New function. | |
26846 | (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise. | |
26847 | (aarch64_sve_expand_vector_init_insert_elems): Likewise. | |
26848 | (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise. | |
26849 | (aarch64_sve_expand_vector_init): Define two overloaded functions. | |
26850 | ||
26851 | 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com> | |
26852 | ||
26853 | PR tree-optimization/90681 | |
26854 | * internal-fn.c (mask_load_direct): Mark as non-vectorizable again. | |
26855 | * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a | |
26856 | special case for SLP, but fail on non-groupped loads. | |
26857 | ||
26858 | 2019-06-03 Martin Liska <mliska@suse.cz> | |
26859 | ||
26860 | * cfg.c (debug): Use TDF_DETAILS for debug and | |
26861 | print edge info only once. | |
26862 | ||
26863 | 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org> | |
26864 | ||
26865 | PR fortran/90539 | |
26866 | * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor. | |
26867 | ||
26868 | 2019-06-01 Martin Sebor <msebor@redhat.com> | |
26869 | ||
26870 | PR middle-end/90694 | |
26871 | * tree-pretty-print.c (dump_generic_node): Add parentheses. | |
26872 | ||
26873 | 2019-05-31 Jan Hubicka <jh@suse.cz> | |
26874 | ||
26875 | * alias.c: Include ipa-utils.h. | |
26876 | (get_alias_set): Try to complete ODR type via ODR type hash lookup. | |
26877 | * ipa-devirt.c (prevailing_odr_type): New. | |
26878 | * ipa-utils.h (previaling_odr_type): Declare. | |
26879 | ||
26880 | 2019-05-31 H.J. Lu <hongjiu.lu@intel.com> | |
26881 | Hongtao Liu <hongtao.liu@intel.com> | |
26882 | ||
26883 | PR target/89355 | |
26884 | * config/i386/i386-features.c (rest_of_insert_endbranch): Remove | |
26885 | NOTE_INSN_DELETED_LABEL check. | |
26886 | ||
26887 | 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com> | |
26888 | Robert Suchanek <robert.suchanek@mips.com> | |
26889 | ||
26890 | * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st | |
26891 | and 3rd operands of the fmadd/fmsub/maddv builtin. | |
26892 | ||
26893 | 2019-05-31 Jakub Jelinek <jakub@redhat.com> | |
26894 | ||
26895 | * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define. | |
26896 | * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional | |
26897 | on OMP_SIMD if not nested inside of worksharing loop that also has | |
26898 | lastprivate conditional clause for the same decl. | |
26899 | (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed. | |
26900 | * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also | |
26901 | on simd. | |
26902 | (lower_rec_input_clauses): Likewise. Handle lastprivate conditional | |
26903 | on simd construct. | |
26904 | (lower_lastprivate_conditional_clauses): Handle lastprivate conditional | |
26905 | on simd construct. | |
26906 | (lower_lastprivate_clauses): Likewise. | |
26907 | (lower_omp_sections): Call lower_lastprivate_conditional_clauses before | |
26908 | calling lower_rec_input_clauses. | |
26909 | (lower_omp_for): Likewise. | |
26910 | (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_ | |
26911 | clause on simd construct. | |
26912 | * omp-expand.c (expand_omp_simd): Initialize cond_var if | |
26913 | OMP_CLAUSE__CONDTEMP_ clause is present. | |
26914 | ||
26915 | * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on | |
26916 | ivar and lvar. | |
26917 | ||
26918 | 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com> | |
26919 | ||
26920 | PR c/43673 | |
26921 | * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with | |
26922 | TEX_D32, TEX_D64 or TEX_D128. | |
26923 | ||
26924 | 2019-05-31 Marc Glisse <marc.glisse@inria.fr> | |
26925 | ||
26926 | * match.pd (~(vec?cst1:cst2)): New transformation. | |
26927 | ||
26928 | 2019-05-31 Marc Glisse <marc.glisse@inria.fr> | |
26929 | ||
26930 | * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator. | |
26931 | ((size_t)(A /[ex] B) CMP C): New transformation. | |
26932 | ||
26933 | 2019-05-31 Richard Sandiford <richard.sandiford@arm.com> | |
26934 | ||
26935 | * doc/md.texi: Document define_insn_and_rewrite. | |
26936 | * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code. | |
26937 | * gensupport.c (queue_elem): Update comment. | |
26938 | (replace_operands_with_dups): New function. | |
26939 | (gen_rewrite_sequence): Likewise. | |
26940 | (process_rtx): Handle DEFINE_INSN_AND_REWRITE. | |
26941 | * read-rtl.c (apply_subst_iterator): Likewise. | |
26942 | (add_condition_to_rtx, named_rtx_p): Likewise. | |
26943 | (rtx_reader::read_rtx_operand): Likewise. | |
26944 | * config/aarch64/aarch64-sve.md | |
26945 | (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to... | |
26946 | (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use | |
26947 | define_insn_and_rewrite. | |
26948 | (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites. | |
26949 | Remove separate define_split. | |
26950 | ||
26951 | 2019-05-31 Jan Hubicka <jh@suse.cz> | |
26952 | ||
26953 | * tree-ssa-alias.c (type_has_components_p): New function. | |
26954 | (aliasing_component_refs_p): Use it. | |
26955 | ||
26956 | 2019-05-31 Martin Liska <mliska@suse.cz> | |
26957 | ||
26958 | * gdbhooks.py: Add const_tree to TreePrinter. | |
26959 | ||
26960 | 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> | |
26961 | ||
26962 | PR debug/86964 | |
26963 | * common.opt (feliminate-unused-debug-symbols): Enable by default. | |
26964 | * doc/invoke.texi (Debugging Options): Document new default of | |
26965 | -feliminate-unused-debug-symbols and remove restriction to 'stabs'. | |
26966 | ||
26967 | 2019-05-31 Jakub Jelinek <jakub@redhat.com> | |
26968 | ||
26969 | PR tree-optimization/90671 | |
26970 | * tree-ssa-threadupdate.c (ssa_create_duplicates): If | |
26971 | template_block used to be empty on the first call, don't use | |
26972 | gsi_split_seq_after and gsi_insert_seq_after, but remember whole | |
26973 | seq with bb_seq and set it with set_bb_seq. | |
26974 | ||
26975 | 2019-05-31 Iain Sandoe <iain@sandoe.co.uk> | |
26976 | ||
26977 | * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New. | |
26978 | ||
26979 | 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com> | |
26980 | Michael Meissner <meissner@linux.ibm.com> | |
26981 | ||
26982 | * config/rs6000/predicates.md (pcrel_address): New define_predicate. | |
26983 | (prefixed_mem_operand): Likewise. | |
26984 | (non_prefixed_mem_operand): Likewise. | |
26985 | * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New | |
26986 | prototype. | |
26987 | * config/rs6000/rs6000.c (print_operand_address): Handle | |
26988 | PC-relative addresses. | |
26989 | (mode_supports_prefixed_address_p): New function. | |
26990 | (rs6000_prefixed_address): New function. | |
26991 | * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define. | |
26992 | (SYMBOL_REF_PCREL_P): Likewise. | |
26993 | ||
26994 | 2019-05-30 Jakub Jelinek <jakub@redhat.com> | |
26995 | ||
26996 | * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP. | |
26997 | (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP. | |
26998 | (gimplify_omp_for): If worksharing loop with lastprivate conditional | |
26999 | is nested inside of parallel region, add _condtemp_ clause to both. | |
27000 | * tree-nested.c (convert_nonlocal_omp_clauses, | |
27001 | convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of | |
27002 | assertion failure. | |
27003 | * omp-general.h (struct omp_for_data): Add have_pointer_condtemp | |
27004 | member. | |
27005 | * omp-general.c (omp_extract_for_data): Compute it. | |
27006 | * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_. | |
27007 | (lower_rec_input_clauses): Likewise. | |
27008 | (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_ | |
27009 | clause is already present, just add one further one after it. | |
27010 | (lower_lastprivate_clauses): Handle cond_ptr with array type. | |
27011 | (lower_send_shared_vars): Clear _condtemp_ vars. | |
27012 | (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical | |
27013 | or section or taskgroup. | |
27014 | * omp-expand.c (determine_parallel_type): Disallow combining only if | |
27015 | first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining | |
27016 | of parallel sections if OMP_CLAUSE__CONDTEMP_ is present. | |
27017 | (expand_omp_for_generic, expand_omp_for_static_nochunk, | |
27018 | expand_omp_for_static_chunk, expand_omp_for): Use | |
27019 | fd->have_pointer_condtemp instead of fd->lastprivate_conditional to | |
27020 | determine if a special set of API routines are needed and if condtemp | |
27021 | needs to be initialized, while always initialize cond_var if | |
27022 | fd->lastprivate_conditional is non-zero. | |
27023 | ||
27024 | 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com> | |
27025 | Michael Meissner <meissner@linux.ibm.com> | |
27026 | ||
27027 | * config/rs6000/constraints.md (eI): New constraint. | |
27028 | * config/rs6000/predicates.md (cint34_operand): New predicate. | |
27029 | * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define. | |
27030 | (SIGNED_34BIT_OFFSET_P): Likewise. | |
27031 | * doc/md.texi (eI): Document constraint. | |
27032 | ||
27033 | 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com> | |
27034 | ||
27035 | * config/aarch64/aarch64-sve.md (*fabd<mode>3): New. | |
27036 | ||
27037 | 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com> | |
27038 | Michael Meissner <meissner@linux.ibm.com> | |
27039 | ||
27040 | * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define. | |
27041 | (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS. | |
27042 | (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE. | |
27043 | (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR. | |
27044 | (OTHER_FUTURE_MASKS): Likewise. | |
27045 | (POWERPC_MASKS): Likewise. | |
27046 | * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is | |
27047 | specified without -mprefixed-addr or -mcpu=future. Error if | |
27048 | -mprefixed-addr is specified without -mcpu=future. | |
27049 | (rs6000_opt_masks): Add entry for prefixed-addr. | |
27050 | * rs6000.opt (mprefixed-addr): New option. | |
27051 | ||
27052 | 2019-05-30 Sam Tebbs <sam.tebbs@arm.com> | |
27053 | ||
27054 | * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add | |
27055 | cfun->is_thunk check. | |
27056 | ||
27057 | 2019-05-30 Jakub Jelinek <jakub@redhat.com> | |
27058 | ||
27059 | * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght | |
27060 | to length. | |
27061 | ||
27062 | 2019-05-30 Martin Liska <mliska@suse.cz> | |
27063 | ||
27064 | * gdbinit.in: Fix 'ptc' command. Add trt | |
27065 | that prints TREE_TYPE($). | |
27066 | ||
27067 | 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com> | |
27068 | Alan Modra <amodra@gmail.com> | |
27069 | ||
27070 | * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel | |
27071 | calls here... | |
27072 | (rs6000_indirect_call_template_1): ...and here. | |
27073 | (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave, | |
27074 | plt16_ha, plt16_lo, mtctr indirect calls. Use | |
27075 | rs6000_pltseq_enum. | |
27076 | (rs6000_decl_ok_for_sibcall): New function. | |
27077 | (rs6000_function_ok_for_sibcall): Refactor. | |
27078 | (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel. | |
27079 | (rs6000_call_aix): Don't emit toc restore rtl for indirect calls | |
27080 | when pcrel. Reorganize. | |
27081 | (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel. | |
27082 | * rs6000.h (rs6000_pltseq_enum): New enum. | |
27083 | * rs6000.md (UNSPEC_PLT_PCREL): New unspec. | |
27084 | (*pltseq_tocsave): Use rs6000_pltseq_enum. | |
27085 | (*pltseq_plt16_ha): Likewise. | |
27086 | (*pltseq_plt16_lo): Likewise. | |
27087 | (*pltseq_mtctr): Likewise. | |
27088 | (*pltseq_plt_pcrel): New insn. | |
27089 | (*call_local_aix): Handle @notoc calls. | |
27090 | (*call_value_local_aix): Likewise. | |
27091 | (*call_nonlocal_aix): Adjust lengths for pcrel calls. | |
27092 | (*call_value_nonlocal_aix): Likewise. | |
27093 | (*call_indirect_pcrel): New insn. | |
27094 | (*call_value_indirect_pcrel): Likewise. | |
27095 | ||
27096 | 2019-05-29 Uroš Bizjak <ubizjak@gmail.com> | |
27097 | ||
27098 | * config/i386/sse.md (*save_multiple<mode>): Rename from | |
27099 | save_multiple<mode>. | |
27100 | (*restore_multiple<mode>): Rename from restore_multiple<mode>. | |
27101 | (*restore_multiple_and_return<mode>): Rename from | |
27102 | restore_multiple_and_return<mode>. | |
27103 | (*restore_multiple_leave_return<mode>): Rename from | |
27104 | restore_multiple_leave_return<mode>. | |
27105 | ||
27106 | 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp> | |
27107 | ||
27108 | * config.gcc (rx-*-linux*): New target. | |
27109 | * config/rx/elf.opt: New file. | |
27110 | * config/rx/linux.h: Likewise. | |
27111 | * config/rx/t-linux: Likewise. | |
27112 | * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined, | |
27113 | make it zero. | |
27114 | * config/rx/rx.h (ASM_APP_ON): Allow to be overridden. | |
27115 | (ASM_APP_OFF): Likewise. | |
27116 | * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were | |
27117 | moved elsewhere. | |
27118 | ||
27119 | 2019-05-29 Jan Hubicka <jh@suse.cz> | |
27120 | ||
27121 | * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main | |
27122 | variants are pointer equivalent. | |
27123 | ||
27124 | 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com> | |
27125 | ||
27126 | * config/aarch64/aarch64-c.c: Added TARGET_SVE2. | |
27127 | * config/aarch64/aarch64-sve2.md: New file. | |
27128 | (<u>avg<mode>3_floor): New pattern. | |
27129 | (<u>avg<mode>3_ceil): Likewise. | |
27130 | (*<sur>h<addsub><mode>): Likewise. | |
27131 | * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2. | |
27132 | * config/aarch64/aarch64.md: Include aarch64-sve2.md. | |
27133 | ||
27134 | 2019-05-29 Jakub Jelinek <jakub@redhat.com> | |
27135 | ||
27136 | PR bootstrap/90543 | |
27137 | * optc-save-gen.awk: In cl_optimization_print, use correct condition | |
27138 | for var_opt_string printing. In cl_optimization_print_diff, print | |
27139 | (null) instead of invoking undefined behavior if one of the | |
27140 | var_opt_string pointers is NULL and use && instead of first || in the | |
27141 | guarding condition. For var_target_other options, handle const char * | |
27142 | target variables similarly to const char * optimize node variables. | |
27143 | ||
27144 | 2019-05-29 Sam Tebbs <sam.tebbs@arm.com> | |
27145 | ||
27146 | * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add | |
27147 | AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716. | |
27148 | * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins): | |
27149 | Add autib1716 and pacib1716 initialisation. | |
27150 | * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks | |
27151 | for autib1716 and pacib1716. | |
27152 | * config/aarch64/aarch64-protos.h (aarch64_key_type, | |
27153 | aarch64_post_cfi_startproc): Define. | |
27154 | * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern. | |
27155 | * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection, | |
27156 | aarch64_handle_pac_ret_protection): Set default sign key to A. | |
27157 | * config/aarch64/aarch64.c (aarch64_expand_epilogue, | |
27158 | aarch64_expand_prologue): Add check for b-key. | |
27159 | * config/aarch64/aarch64.c (aarch64_ra_sign_key, | |
27160 | aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define. | |
27161 | * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define. | |
27162 | * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key". | |
27163 | * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716, | |
27164 | UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716, | |
27165 | UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP. | |
27166 | * config/aarch64/aarch64.md (do_return): Add check for b-key. | |
27167 | * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace | |
27168 | pauth_hint_num_a with pauth_hint_num. | |
27169 | * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace | |
27170 | pauth_hint_num_a with pauth_hint_num. | |
27171 | * config/aarch64/aarch64.opt (msign-return-address=): Deprecate. | |
27172 | * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP, | |
27173 | UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP. | |
27174 | * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716, | |
27175 | UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716. | |
27176 | * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716, | |
27177 | UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP, | |
27178 | UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP. | |
27179 | * config/aarch64/iterators.md (pauth_hint_num_a): Replace | |
27180 | UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and | |
27181 | UNSPEC_AUTIA1716 respectively. | |
27182 | * config/aarch64/iterators.md (pauth_hint_num_a): Rename to | |
27183 | pauth_hint_num and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, | |
27184 | UNSPEC_PACIB1716, UNSPEC_AUTIB1716. | |
27185 | * doc/invoke.texi (-mbranch-protection): Add b-key type. | |
27186 | * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename | |
27187 | UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP. | |
27188 | ||
27189 | 2019-05-29 Jakub Jelinek <jakub@redhat.com> | |
27190 | ||
27191 | * gimplify.c (struct gimplify_omp_ctx): Add clauses member. | |
27192 | (gimplify_scan_omp_clauses): Initialize ctx->clauses. | |
27193 | (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional | |
27194 | explicit clause on combined parallel into implicit shared clause. | |
27195 | (gimplify_adjust_omp_clauses): Move lastprivate conditional clause | |
27196 | and firstprivate if the decl has one too from combined parallel to | |
27197 | the worksharing construct. | |
27198 | ||
27199 | 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com> | |
27200 | Michael Meissner <meissner@linux.ibm.com> | |
27201 | ||
27202 | * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define. | |
27203 | ||
27204 | 2019-05-28 Michael Meissner <meissner@linux.ibm.com> | |
27205 | ||
27206 | * rtl.h (LABEL_REF_P): New #define. | |
27207 | ||
27208 | 2019-05-28 John David Anglin <danglin@gcc.gnu.org> | |
27209 | ||
27210 | * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment. | |
27211 | ||
27212 | 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com> | |
27213 | ||
27214 | * internal-fn.c: Marked mask_load_direct as vectorizable. | |
27215 | * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo. | |
27216 | * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be | |
27217 | combined even if masks different with allow_slp_p param. | |
27218 | (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups. | |
27219 | * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to | |
27220 | dissolve SLP-only vectorizable groups when SLP has been discarded. | |
27221 | (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed. | |
27222 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads | |
27223 | masks. | |
27224 | (vect_build_slp_tree_1): Fixed comment typo. | |
27225 | (vect_build_slp_tree_2): Include masks from masked loads in SLP tree. | |
27226 | * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked | |
27227 | loads for SLP only. | |
27228 | * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only | |
27229 | vectorizable. | |
27230 | * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise. | |
27231 | ||
27232 | 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
27233 | ||
27234 | * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf): | |
27235 | Remove obsolete use_thunk reference. | |
27236 | * config/i386/i386.c (x86_output_mi_thunk): Likewise. | |
27237 | * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. | |
27238 | * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise. | |
27239 | * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise. | |
27240 | * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. | |
27241 | * config/sh/sh.c (sh_output_mi_thunk): Likewise. | |
27242 | * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. | |
27243 | * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise. | |
27244 | * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise. | |
27245 | ||
27246 | 2019-05-28 Nathan Sidwell <nathan@acm.org> | |
27247 | ||
27248 | * tree.h (IDENTIFIER_ANON_P): New. | |
27249 | (anon_aggrname_format, anon_aggname_p): Don't declare. | |
27250 | (make_anon_name): Declare. | |
27251 | * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P. | |
27252 | (hash_tree): Likewise. | |
27253 | * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise. | |
27254 | * tree.c (anon_aggrname_p, anon_aggrname_format): Delete. | |
27255 | (anon_cnt, make_anon_name): New. | |
27256 | ||
27257 | 2019-05-28 Martin Liska <mliska@suse.cz> | |
27258 | ||
27259 | PR other/90315 | |
27260 | * opts-global.c (decode_options): Print help for all | |
27261 | help_option_arguments. | |
27262 | * opts.c (print_help): Add new argument. | |
27263 | (common_handle_option): Remember all values into | |
27264 | help_option_arguments. | |
27265 | * opts.h (print_help): Add new argument. | |
27266 | ||
27267 | 2019-05-28 Martin Liska <mliska@suse.cz> | |
27268 | ||
27269 | PR ipa/90555 | |
27270 | * ipa-icf-gimple.c (func_checker::compare_loops): New function. | |
27271 | * ipa-icf-gimple.h (func_checker::compare_loops): Likewise. | |
27272 | (func_checker::compare_bb): Call compare_loops. | |
27273 | ||
27274 | 2019-05-27 Jakub Jelinek <jakub@redhat.com> | |
27275 | ||
27276 | * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional | |
27277 | on sections construct. | |
27278 | * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections | |
27279 | construct. | |
27280 | (lower_omp_sections): Handle lastprivate conditional. | |
27281 | (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with | |
27282 | lastprivate_conditional_map. | |
27283 | * omp-expand.c (expand_omp_sections): Handle lastprivate conditional. | |
27284 | ||
27285 | * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered, | |
27286 | critical, taskgroup and section regions when looking for a region | |
27287 | with non-NULL lastprivate_conditional_map. | |
27288 | ||
27289 | 2019-05-27 Uroš Bizjak <ubizjak@gmail.com> | |
27290 | ||
27291 | * config/i386/i386.c (ix86_gen_add3): Remove indirect function. | |
27292 | (*ix86_gen_sub3): Ditto. | |
27293 | (*ix86_gen_sub3_carry): Ditto. | |
27294 | (*ix86_gen_one_cmpl2): Ditto. | |
27295 | (*ix86_gen_andsp): Ditto. | |
27296 | (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3. | |
27297 | (gen_and2_insn): New static function. | |
27298 | (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp. | |
27299 | Use gen_add3_insn instead of ix86_gen_add3. | |
27300 | (ix86_expand_split_stack_prologue): Use gen_add2_insn | |
27301 | instead of ix86_gen_add3. | |
27302 | (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3. | |
27303 | Use gen_sub3_insn instead of ix86_gen_sub3. | |
27304 | * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn | |
27305 | instead of ix86_gen_add3. | |
27306 | (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of | |
27307 | ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3. | |
27308 | (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3. | |
27309 | * config/i386/i386-options.c (ix86_option_override_internal): | |
27310 | Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry, | |
27311 | ix86_gen_one_cmpl2 and ix86_gen_andsp. | |
27312 | ||
27313 | 2019-05-27 Eric Botcazou <ebotcazou@adacore.com> | |
27314 | ||
27315 | * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index | |
27316 | and DW_OP_GNU_const_index opcodes. | |
27317 | ||
27318 | 2019-05-27 Uroš Bizjak <ubizjak@gmail.com> | |
27319 | ||
27320 | * config/i386/i386.h (STACK_SIZE_MODE): Define. | |
27321 | ||
27322 | 2019-05-27 Richard Biener <rguenther@suse.de> | |
27323 | ||
27324 | PR tree-optimization/90637 | |
27325 | * tree-ssa-sink.c (statement_sink_location): Honor the | |
27326 | computed sink location for single-uses. | |
27327 | ||
27328 | 2019-05-27 Richard Biener <rguenther@suse.de> | |
27329 | ||
27330 | PR middle-end/90610 | |
27331 | * match.pd (vec_perm): Avoid clobbering op0 when not generating | |
27332 | a bit-insert. | |
27333 | ||
27334 | 2019-05-26 Uroš Bizjak <ubizjak@gmail.com> | |
27335 | ||
27336 | * config/i386/i386.md (@sub<mode>3_carry): Rename | |
27337 | from sub<mode>3_carry. | |
27338 | (@leave_<mode>): New expander. | |
27339 | (*leave): Rename from leave. | |
27340 | (*leave_rex64): Rename from leave_rex64. | |
27341 | (@monitorx_<mode>): Rename from monitorx_<mode>. | |
27342 | (@clzero_<mode>): Rename from clzero_<mode>. | |
27343 | * config/i386/sse.md (@sse3_monitor_<mode>): Rename | |
27344 | from sse3_monitor_<mode>. | |
27345 | * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function. | |
27346 | (*ix86_gen_leave): Ditto. | |
27347 | (*ix86_gen_monitor): Ditto. | |
27348 | (*ix86_gen_monitorx): Ditto. | |
27349 | (*ix86_gen_clzero): Ditto. | |
27350 | (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave. | |
27351 | * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1): | |
27352 | Use gen_sub3_carry instead of ix86_gen_sub3_carry. | |
27353 | (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>: | |
27354 | Use gen_sse3_monitor instead of ix86_gen_monitor. | |
27355 | <case IX86_BUILTIN_MONITORX>: Use gen_monitorx | |
27356 | instead of ix86_gen_monitorx. | |
27357 | <case IX86_BUILTIN_CLZERO>: Use gen_clzero | |
27358 | instead of ix86_gen_clzero. | |
27359 | * config/i386/i386-options.c (ix86_option_override_internal): | |
27360 | Do not initialize ix86_gen_leave, ix86_gen_sub3_carry, | |
27361 | ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero. | |
27362 | ||
27363 | 2019-05-26 Uroš Bizjak <ubizjak@gmail.com> | |
27364 | ||
27365 | * config/i386/i386.md (@tls_global_dynamic_64_<mode>): | |
27366 | Rename from tls_global_dynamic_64_<mode>. | |
27367 | (@tls_local_dynamic_base_64_<mode>): Rename from | |
27368 | tls_local_dynamic_base_64_<mode>. | |
27369 | * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64): | |
27370 | Remove indirect function. | |
27371 | (*ix86_gen_tls_local_dynamic_base_64): Ditto. | |
27372 | (legitimize_tls_address): Use gen_tls_global_dynamic_64 function | |
27373 | instead of ix86_gen_tls_global_dynamic_64. | |
27374 | Use gen_tls_local_dynamic_base_64 instead of | |
27375 | ix86_gen_tls_local_dynamic_base_64. | |
27376 | * config/i386/i386-options.c (ix86_option_override_internal): | |
27377 | Do not initialize ix86_gen_tls_global_dynamic_64 and | |
27378 | ix86_gen_tls_local_dynamic_base_64. | |
27379 | ||
27380 | 2019-05-26 Uroš Bizjak <ubizjak@gmail.com> | |
27381 | ||
27382 | * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>) | |
27383 | Rename from pro_epilogue_adjust_stack_<mode>_add. | |
27384 | (@pro_epilogue_adjust_stack_sub_<mode>) | |
27385 | Rename from pro_epilogue_adjust_stack_<mode>_sub. | |
27386 | (@allocate_stack_worker_probe_<mode>): | |
27387 | Rename from allocate_stack_worker_probe_<mode>. | |
27388 | (allocate_stack): Use gen_allocate_stack_worker_probe. | |
27389 | (probe_stack): Use gen_probe_stack_1. | |
27390 | (@probe_stack_1_<mode>): Rename from probe_stack_<mode>. | |
27391 | (@adjust_stack_and_probe_<mode>): Rename from | |
27392 | adjust_stack_and_probe<mode>. | |
27393 | (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>. | |
27394 | (stack_protect_set): Use gen_stack_protect_set_1. | |
27395 | (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>. | |
27396 | (stack_protect_test): Use gen_stack_protect_test_1. | |
27397 | (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>. | |
27398 | * config/i386/i386.c (*ix86_gen_allocate_stack_worker): | |
27399 | Remove indirect function. | |
27400 | (*ix86_gen_adjust_stack_and_probe): Ditto. | |
27401 | (*ix86_gen_probe_stack_range): Ditto. | |
27402 | (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add | |
27403 | instead of gen_pro_epilogue_adjust_stack_{si,di}_add. | |
27404 | (ix86_adjust_stack_and_probe_stack_clash): Use | |
27405 | gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe. | |
27406 | (ix86_adjust_stack_and_probe): Ditto. | |
27407 | (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead | |
27408 | of ix86_gen_probe_stack_range. | |
27409 | (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub | |
27410 | instead of gen_pro_epilogue_adjust_stack_{si,di}_sub. | |
27411 | * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p): | |
27412 | Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of | |
27413 | CODE_FOR_stack_protect_test_{si,di}. | |
27414 | * config/i386/i386-options.c (ix86_option_override_internal): | |
27415 | Do not initialize ix86_gen_allocate_stack_worker, | |
27416 | ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range. | |
27417 | ||
27418 | 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com> | |
27419 | ||
27420 | * doc/invoke.texi (Link Options): Many editorial changes around | |
27421 | -flinker-output. | |
27422 | ||
27423 | 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
27424 | ||
27425 | * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove | |
27426 | pre-Solaris 11 referene and most Studio compiler details. | |
27427 | ||
27428 | 2019-05-24 John David Anglin <danglin@gcc.gnu.org> | |
27429 | ||
27430 | PR target/90530 | |
27431 | * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from | |
27432 | DImode to SImode in floating-point registers on 64-bit target. | |
27433 | * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to | |
27434 | register_operand in xmpyu patterns. | |
27435 | ||
27436 | 2019-05-24 Jakub Jelinek <jakub@redhat.com> | |
27437 | ||
27438 | * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_. | |
27439 | * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of | |
27440 | OMP_CLAUSE__REDUCTEMP_. | |
27441 | * tree.c (omp_clause_num_ops, omp_clause_code_name): Add | |
27442 | OMP_CLAUSE__CONDTEMP_. | |
27443 | (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_. | |
27444 | * tree-pretty-print.c (dump_omp_clause): Likewise. | |
27445 | * tree-nested.c (convert_nonlocal_omp_clauses, | |
27446 | convert_local_omp_clauses): Likewise. | |
27447 | * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants | |
27448 | instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL. | |
27449 | (gimplify_scan_omp_clauses): Don't reject lastprivate conditional | |
27450 | on OMP_FOR. | |
27451 | (gimplify_omp_for): Warn and disable conditional modifier from | |
27452 | lastprivate on loop iterators. | |
27453 | * omp-general.h (struct omp_for_data): Add lastprivate_conditional | |
27454 | member. | |
27455 | * omp-general.c (omp_extract_for_data): Initialize it. | |
27456 | * omp-low.c (struct omp_context): Add lastprivate_conditional_map | |
27457 | member. | |
27458 | (delete_omp_context): Delete it. | |
27459 | (lower_lastprivate_conditional_clauses): New function. | |
27460 | (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments, | |
27461 | handle lastprivate conditional clauses. | |
27462 | (lower_reduction_clauses): Add CLIST argument, emit it into | |
27463 | the critical section if any. | |
27464 | (lower_omp_sections): Adjust lower_lastprivate_clauses and | |
27465 | lower_reduction_clauses callers. | |
27466 | (lower_omp_for_lastprivate): Add CLIST argument, pass it through | |
27467 | to lower_lastprivate_clauses. | |
27468 | (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust | |
27469 | lower_omp_for_lastprivate and lower_reduction_clauses callers, emit | |
27470 | clist into a critical section if not emitted there already by | |
27471 | lower_reduction_clauses. | |
27472 | (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses | |
27473 | callers. | |
27474 | (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate | |
27475 | conditional variables. | |
27476 | * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_ | |
27477 | clause is present. | |
27478 | (expand_omp_for_generic, expand_omp_for_static_nochunk, | |
27479 | expand_omp_for_static_chunk): Handle lastprivate conditional. | |
27480 | (expand_omp_for): Handle fd.lastprivate_conditional like | |
27481 | fd.have_reductemp. | |
27482 | ||
27483 | 2019-05-24 Andrew Stubbs <ams@codesourcery.com> | |
27484 | ||
27485 | * config/gcn/gcn-run.c (main): Set a non-zero return value if the | |
27486 | kernel does not exit cleanly. | |
27487 | * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb. | |
27488 | ||
27489 | 2019-05-24 Jason Merrill <jason@redhat.com> | |
27490 | ||
27491 | Revert: | |
27492 | * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE. | |
27493 | ||
27494 | 2019-05-24 Richard Biener <rguenther@suse.de> | |
27495 | ||
27496 | PR testsuite/90607 | |
27497 | * tree-loop-distribution.c (struct partition): Add location | |
27498 | member. | |
27499 | (partition_alloc): Initialize all fields. | |
27500 | (generate_memset_builtin): Use the location recorded in the | |
27501 | partition for the generated call. | |
27502 | (generate_memcpy_builtin): Likewise. | |
27503 | (classify_partition): Record the location of a single store | |
27504 | as location for the partition. | |
27505 | ||
27506 | 2019-05-24 Andrew Stubbs <ams@codesourcery.com> | |
27507 | ||
27508 | * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry | |
27509 | for lo-part. | |
27510 | ||
27511 | 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com> | |
27512 | ||
27513 | PR target/90588 | |
27514 | * common/config/aarch64/aarch64-common.c | |
27515 | (aarch64_rewrite_selected_cpu): Change local temporary variable | |
27516 | type from unsigned long to uint64_t. | |
27517 | * config/aarch64/aarch64-protos.h (aarch64_parse_extension, | |
27518 | aarch64_get_extension_string_for_isa_flags): Change declaration to | |
27519 | match new definition by replacing unsigned long with uint64_t. | |
27520 | ||
27521 | 2019-05-24 Jakub Jelinek <jakub@redhat.com> | |
27522 | ||
27523 | PR target/90568 | |
27524 | * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call | |
27525 | gen_attr_type just once instead of 4-7 times. Formatting fixes. | |
27526 | Handle stack_protect_test_<mode> codegen similarly to corresponding | |
27527 | sub instruction. | |
27528 | ||
27529 | 2019-05-23 Iain Sandoe <iain@sandoe.co.uk> | |
27530 | ||
27531 | * config/i386/darwin.h: Reject -mfentry*. | |
27532 | * doc/sourcebuild.texi: Document mfentry target support. | |
27533 | ||
27534 | 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com> | |
27535 | ||
27536 | * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p): | |
27537 | Rename to rs6000_global_entry_point_prologue_needed_p. Return | |
27538 | false for PC-relative functions. | |
27539 | (rs6000_output_function_prologue): Change called function name to | |
27540 | rs6000_global_entry_point_prologue_needed_p. Emit ".localentry | |
27541 | name,1" for PC-relative functions. | |
27542 | (rs6000_elf_declare_function_name): Change called function name to | |
27543 | rs6000_global_entry_point_prologue_needed_p. | |
27544 | ||
27545 | 2019-05-23 Uroš Bizjak <ubizjak@gmail.com> | |
27546 | ||
27547 | PR target/90552 | |
27548 | * config/i386/i386.c (gen_rtx_cost): | |
27549 | Use ix86_tune_cost instead of ix86_cost. | |
27550 | ||
27551 | 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com> | |
27552 | Michael Meissner <meissner@linux.ibm.com> | |
27553 | Segher Boessenkool <segher@kernel.crashing.org> | |
27554 | ||
27555 | * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add | |
27556 | OPTION_MASK_PCREL. | |
27557 | (POWERPC_MASKS): Add OPTION_MASK_PCREL. | |
27558 | * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype. | |
27559 | (rs6000_fndecl_pcrel_p): Likewise. | |
27560 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Report | |
27561 | error if -mpcrel is requested without -mcpu=future. | |
27562 | (rs6000_opt_masks): Add entry for pcrel. | |
27563 | (rs6000_fndecl_pcrel_p): New function. | |
27564 | (rs6000_pcrel_p): Likewise. | |
27565 | * config/rs6000/rs6000.opt (mpcrel): New option. | |
27566 | * doc/invoke.texi: Document -mpcrel and -mno-pcrel. | |
27567 | ||
27568 | 2019-05-23 Jan Hubicka <jh@suse.cz> | |
27569 | Martin Liska <mliska@suse.cz> | |
27570 | ||
27571 | PR tree-optimization/90576 | |
27572 | * tree-ssa-alias.c (compare_sizes): Remove dead calls to | |
27573 | poly_int_tree_p. | |
27574 | (aliasing_component_refs_p): Fix three way size compare conditional; | |
27575 | give up earlier in case we can not decide on equivalence. | |
27576 | ||
27577 | 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com> | |
27578 | Michael Meissner <meissner@linux.ibm.com> | |
27579 | Segher Boessenkool <segher@kernel.crashing.org> | |
27580 | ||
27581 | * config.gcc: Add future cpu. | |
27582 | * config/rs6000/driver-rs6000.c (asm_names): Add future cpu. | |
27583 | * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New | |
27584 | #define. | |
27585 | (POWERPC_MASKS): Add OPTION_MASK_FUTURE. | |
27586 | (RS6000_CPU): New instantiation for future cpu. | |
27587 | * config/rs6000/rs6000-opts.h (enum processor_type): Add | |
27588 | PROCESSOR_FUTURE. | |
27589 | * config/rs6000/rs6000-string.c (expand_compare_loop): Treat | |
27590 | PROCESSOR_FUTURE like PROCESSOR_POWER9 for now. | |
27591 | * config/rs6000/rs6000-tables.opt: Regenerate. | |
27592 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat | |
27593 | PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now. | |
27594 | (rs6000_machine_from_flags): Handle future cpu. | |
27595 | (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like | |
27596 | PROCESSOR_POWER9 for now. | |
27597 | (rs6000_adjust_cost): Likewise. | |
27598 | (rs6000_issue_rate): Likewise. | |
27599 | (rs6000_register_move_cost): Likewise. | |
27600 | (rs6000_opt_masks): Add entry for future. | |
27601 | * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu. | |
27602 | (MASK_FUTURE): New #define. | |
27603 | * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu. | |
27604 | * config/rs6000/rs6000.opt (mfuture): New target option. | |
27605 | * doc/invoke.texi (mcpu): Add future cpu. | |
27606 | ||
27607 | 2019-05-23 Martin Liska <mliska@suse.cz> | |
27608 | ||
27609 | PR c++/90587 | |
27610 | * tree-ssa-uninit.c (value_sat_pred_p): The result of & | |
27611 | operation points to a temporary (pointed via tree_to_wide_ref) | |
27612 | that is out of scope after the &. | |
27613 | ||
27614 | 2019-05-23 Jonathan Wakely <jwakely@redhat.com> | |
27615 | ||
27616 | PR c++/90592 | |
27617 | * doc/extend.texi (Function Names): Add missing word. | |
27618 | ||
27619 | 2019-05-23 Richard Biener <rguenther@suse.de> | |
27620 | ||
27621 | PR tree-optimization/88440 | |
27622 | * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns | |
27623 | at -O[2s]+. | |
27624 | * tree-loop-distribution.c (generate_memset_builtin): Fold the | |
27625 | generated call. | |
27626 | (generate_memcpy_builtin): Likewise. | |
27627 | (distribute_loop): Pass in whether to only distribute patterns. | |
27628 | (prepare_perfect_loop_nest): Also allow size optimization. | |
27629 | (pass_loop_distribution::execute): When optimizing a loop | |
27630 | nest for size allow pattern replacement. | |
27631 | ||
27632 | 2019-05-23 Jakub Jelinek <jakub@redhat.com> | |
27633 | ||
27634 | PR target/90568 | |
27635 | * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead | |
27636 | of xor. | |
27637 | ||
27638 | 2019-05-23 Martin Liska <mliska@suse.cz> | |
27639 | ||
27640 | PR sanitizer/90570 | |
27641 | * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target | |
27642 | expression similarly to gimplify_decl_expr. | |
27643 | ||
27644 | 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
27645 | ||
27646 | * cse.c (cse_dump_path): s/dump_file/f. | |
27647 | ||
27648 | 2019-05-22 David Malcolm <dmalcolm@redhat.com> | |
27649 | ||
27650 | PR c++/90462 | |
27651 | * diagnostic-format-json.cc: Include "selftest.h". | |
27652 | (json_from_expanded_location): Only add "file" key for non-NULL | |
27653 | file strings. | |
27654 | (json_from_location_range): Don't add "start" and "finish" | |
27655 | children if they are UNKNOWN_LOCATION. | |
27656 | (selftest::test_unknown_location): New selftest. | |
27657 | (selftest::test_bad_endpoints): New selftest. | |
27658 | (selftest::diagnostic_format_json_cc_tests): New function. | |
27659 | * json.cc (json::object::get): New function. | |
27660 | (selftest::test_object_get): New selftest. | |
27661 | (selftest::json_cc_tests): Call it. | |
27662 | * json.h (json::object::get): New decl. | |
27663 | * selftest-run-tests.c (selftest::run_tests): Call | |
27664 | selftest::diagnostic_format_json_cc_tests. | |
27665 | * selftest.h (selftest::diagnostic_format_json_cc_tests): New | |
27666 | decl. | |
27667 | ||
27668 | 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com> | |
27669 | Andrew Stubbs <amd@codesourcery.com> | |
27670 | ||
27671 | * config.gcc (gcc_cv_initfini_array): Set for AMD GCN. | |
27672 | * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New. | |
27673 | (kernel): Rename to... | |
27674 | (main_kernel): ... this. | |
27675 | (load_image): Load _init_array and _fini_array kernels. | |
27676 | (run): Add argument for kernel to run. | |
27677 | (main): Run init_array_kernel before main_kernel, and | |
27678 | fini_array_kernel after. | |
27679 | * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow | |
27680 | amdgpu_hsa_kernel attribute on functions. | |
27681 | (gcn_disable_constructors): Delete. | |
27682 | (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete. | |
27683 | * config/gcn/crt0.c (size_t): Define. | |
27684 | (_init_array, _fini_array): New. | |
27685 | (__preinit_array_start, __preinit_array_end, | |
27686 | __init_array_start, __init_array_end, | |
27687 | __fini_array_start, __fini_array_end): Declare weak references. | |
27688 | ||
27689 | 2019-05-22 Andrew Stubbs <ams@codesourcery.com> | |
27690 | ||
27691 | * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5. | |
27692 | ||
27693 | 2019-05-22 Jason Merrill <jason@redhat.com> | |
27694 | ||
27695 | * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE. | |
27696 | ||
27697 | 2019-05-22 H.J. Lu <hongjiu.lu@intel.com> | |
27698 | ||
27699 | PR target/88483 | |
27700 | * config/i386/i386-options.c (ix86_init_machine_status): Set | |
27701 | stack_frame_required to true. | |
27702 | * config/i386/i386.c (ix86_get_frame_size): New function. | |
27703 | (ix86_frame_pointer_required): Replace get_frame_size with | |
27704 | ix86_get_frame_size. | |
27705 | (ix86_compute_frame_layout): Likewise. | |
27706 | (ix86_find_max_used_stack_alignment): Changed to void. Set | |
27707 | stack_frame_required. | |
27708 | (ix86_finalize_stack_frame_flags): Always call | |
27709 | ix86_find_max_used_stack_alignment. Replace get_frame_size with | |
27710 | ix86_get_frame_size. | |
27711 | * config/i386/i386.h (machine_function): Add stack_frame_required. | |
27712 | ||
27713 | 2019-05-22 Uroš Bizjak <ubizjak@gmail.com> | |
27714 | ||
27715 | * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition. | |
27716 | ||
27717 | 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com> | |
27718 | ||
27719 | * common/config/aarch64/aarch64-common.c | |
27720 | (struct aarch64_option_extension, struct processor_name_to_arch, | |
27721 | struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp, | |
27722 | aarch64_contains_opt, | |
27723 | aarch64_get_extension_string_for_isa_flags): Change type of | |
27724 | variables storing flags to uint64_t. | |
27725 | * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4, | |
27726 | sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags. | |
27727 | * config/aarch64/aarch64.c (struct processor, | |
27728 | aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu, | |
27729 | aarch64_validate_march, aarch64_override_options, | |
27730 | aarch64_option_print, aarch64_handle_attr_isa_flags, | |
27731 | aarch64_declare_function_name, aarch64_start_file): Make flag | |
27732 | variables uint64_t. | |
27733 | * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES, | |
27734 | AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3, | |
27735 | AARCH64_FL_SVE2_BITPERM): New macro feature flags. | |
27736 | * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t. | |
27737 | * config/aarch64/driver-aarch64.c | |
27738 | (struct aarch64_arch_extension, struct aarch64_core_data, | |
27739 | struct aarch64_arch_driver_info, host_detect_local_cpu): Make | |
27740 | flag variables uint64_t. | |
27741 | * doc/invoke.texi: Add documentation for new arguments. | |
27742 | ||
27743 | 2019-05-22 Richard Biener <rguenther@suse.de> | |
27744 | ||
27745 | * alias.c (ao_ref_from_mem): Move stack-slot sharing | |
27746 | rewrite ... | |
27747 | * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here. | |
27748 | ||
27749 | 2019-05-22 Martin Liska <mliska@suse.cz> | |
27750 | ||
27751 | PR lto/90500 | |
27752 | * doc/extend.texi: Document the change. | |
27753 | ||
27754 | 2019-05-22 Richard Biener <rguenther@suse.de> | |
27755 | ||
27756 | PR tree-optimization/90450 | |
27757 | * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed. | |
27758 | (mem_ref_hasher::equal): Check it. | |
27759 | (mem_ref_alloc): Initialize it. | |
27760 | (gather_mem_refs_stmt): Set it. | |
27761 | ||
27762 | 2019-05-22 Richard Biener <rguenther@suse.de> | |
27763 | ||
27764 | * gimple-fold.c (arith_code_with_undefined_signed_overflow): | |
27765 | Add ABS_EXPR. | |
27766 | (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR | |
27767 | as ABSU_EXPR. | |
27768 | ||
27769 | 2019-05-22 Alan Modra <amodra@gmail.com> | |
27770 | ||
27771 | * config/rs6000/rs6000.h (ASM_OPT_ANY): Define. | |
27772 | (ASM_CPU_SPEC): Conditionally add -many. | |
27773 | * config/rs6000/rs6000.c (rs6000_machine): New static var. | |
27774 | (rs6000_machine_from_flags, emit_asm_machine): New functions.. | |
27775 | (rs6000_file_start): ..extracted from here, and modified to | |
27776 | test all ISA bits. | |
27777 | (rs6000_output_function_prologue): Emit .machine as necessary. | |
27778 | ||
27779 | 2019-05-22 Hans-Peter Nilsson <hp@axis.com> | |
27780 | ||
27781 | PR middle-end/90553 | |
27782 | * ira-lives.c (process_bb_node_lives): Consider defs | |
27783 | for a call insn to be die before the call, not after. | |
27784 | ||
27785 | * function.c (assign_parm_setup_block): Raise alignment of | |
27786 | stacked parameter only for STRICT_ALIGNMENT targets. | |
27787 | ||
27788 | 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> | |
27789 | ||
27790 | * config/rs6000/constraints.md (define_register_constraint "wz"): | |
27791 | Delete. | |
27792 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
27793 | RS6000_CONSTRAINT_wz. | |
27794 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
27795 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
27796 | * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7". | |
27797 | * doc/md.texi (Machine Constraints): Adjust. | |
27798 | ||
27799 | 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> | |
27800 | ||
27801 | * config/rs6000/constraints.md (define_register_constraint "wl"): | |
27802 | Delete. | |
27803 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
27804 | RS6000_CONSTRAINT_wl. | |
27805 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
27806 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
27807 | * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6". | |
27808 | * doc/md.texi (Machine Constraints): Adjust. | |
27809 | ||
27810 | 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> | |
27811 | ||
27812 | * config/rs6000/constraints.md (define_register_constraint "wm"): | |
27813 | Delete. | |
27814 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
27815 | RS6000_CONSTRAINT_wm. | |
27816 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
27817 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
27818 | * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v". | |
27819 | * doc/md.texi (Machine Constraints): Adjust. | |
27820 | ||
27821 | 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> | |
27822 | ||
27823 | * config/rs6000/constraints.md (define_register_constraint "wk"): | |
27824 | Delete. | |
27825 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
27826 | RS6000_CONSTRAINT_wk. | |
27827 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
27828 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
27829 | * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v". | |
27830 | * doc/md.texi (Machine Constraints): Adjust. | |
27831 | ||
27832 | 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> | |
27833 | ||
27834 | * config/rs6000/constraints.md (define_register_constraint "wj"): | |
27835 | Delete. | |
27836 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
27837 | RS6000_CONSTRAINT_wj. | |
27838 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
27839 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
27840 | * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v". | |
27841 | (VS_64dm): Delete. | |
27842 | * config/rs6000/vsx.md: Ditto. | |
27843 | * doc/md.texi (Machine Constraints): Adjust. | |
27844 | ||
27845 | 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org> | |
27846 | ||
27847 | * config/rs6000/constraints.md (define_register_constraint "wh"): | |
27848 | Delete. | |
27849 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
27850 | RS6000_CONSTRAINT_wh. | |
27851 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
27852 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
27853 | * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v". | |
27854 | * doc/md.texi (Machine Constraints): Adjust. | |
27855 | ||
27856 | 2019-05-21 Uroš Bizjak <ubizjak@gmail.com> | |
27857 | ||
27858 | PR target/90547 | |
27859 | * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): | |
27860 | Avoid calling gen_lowpart with CONST operand. | |
27861 | ||
27862 | 2019-05-21 Alexandre Oliva <aoliva@redhat.com> | |
27863 | ||
27864 | * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add | |
27865 | field template_last_to_copy. | |
27866 | (ssa_create_duplicates): Set it, and use it. Attempt to | |
27867 | preserve more debug stmts. | |
27868 | ||
27869 | 2019-05-21 Uroš Bizjak <ubizjak@gmail.com> | |
27870 | ||
27871 | * config/i386/sse.md (VF1_AVX2): New mode iterator. | |
27872 | (signbit<mode>2): New expander | |
27873 | ||
27874 | 2019-05-21 James Clarke <jrtc27@jrtc27.com> | |
27875 | ||
27876 | PR bootstrap/87338 | |
27877 | * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL | |
27878 | instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL. | |
27879 | ||
27880 | 2019-05-21 Uroš Bizjak <ubizjak@gmail.com> | |
27881 | ||
27882 | * config/i386/cpuid.h (__cpuid): For 32bit targets, zero | |
27883 | %ebx and %ecx bafore calling cpuid with leaf 1 or | |
27884 | non-constant leaf argument. | |
27885 | ||
27886 | 2019-05-21 Alan Modra <amodra@gmail.com> | |
27887 | ||
27888 | PR target/90545 | |
27889 | * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase | |
27890 | power9 direct move cost. | |
27891 | ||
27892 | 2019-05-21 Richard Biener <rguenther@suse.de> | |
27893 | ||
27894 | PR middle-end/90510 | |
27895 | * fold-const.c (fold_read_from_vector): New function. | |
27896 | * fold-const.h (fold_read_from_vector): Declare. | |
27897 | * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for | |
27898 | single-element insert permutations. Canonicalize selector | |
27899 | further and fix issue with last commit. | |
27900 | ||
27901 | 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru> | |
27902 | ||
27903 | * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p | |
27904 | parameter with default value false to declaration. | |
27905 | (split_edges_for_insertion): New inline function. Wrapper for | |
27906 | split_critical_edges with for_edge_insertion_p = true. | |
27907 | * tree-cfg.c (split_critical_edges): Don't split non-critical | |
27908 | edges if for_edge_insertion_p is false. Fix whitespace. | |
27909 | * tree-ssa-pre.c (pass_pre::execute): Call | |
27910 | split_edges_for_insertion instead of split_critical_edges. | |
27911 | * tree-ssa-tail-merge.c (tail_merge_optimize): Ditto. | |
27912 | * tree-ssa-sink.c (pass_sink_code::execute): Ditto. | |
27913 | (pass_data_sink_code): Update function name in the comment. | |
27914 | ||
27915 | 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru> | |
27916 | ||
27917 | * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper | |
27918 | around is_value_included_in that knows how to handle BIT_AND_EXPR. | |
27919 | (is_pred_expr_subset_of): Use the new function. Handle more cases where | |
27920 | code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false | |
27921 | positives. | |
27922 | ||
27923 | 2019-05-21 Martin Liska <mliska@suse.cz> | |
27924 | ||
27925 | * config/rs6000/driver-rs6000.c (elf_platform): Do not use | |
27926 | an extra newline. | |
27927 | * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>. | |
27928 | (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and | |
27929 | vec_lvsr. | |
27930 | * config/rs6000/rs6000.c (rs6000_option_override_internal): | |
27931 | Quote a C type. | |
27932 | (rs6000_function_arg): Likewise. | |
27933 | (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot. | |
27934 | (rs6000_expand_ternop_builtin): Use interval syntax. | |
27935 | (get_element_number): Likewise. | |
27936 | (altivec_expand_builtin): Likewise. | |
27937 | (rs6000_get_function_versions_dispatcher): Quote target_clones. | |
27938 | ||
27939 | 2019-05-20 Jakub Jelinek <jakub@redhat.com> | |
27940 | ||
27941 | PR c++/59813 | |
27942 | PR target/90418 | |
27943 | * function.h (struct function): Add calls_eh_return member. | |
27944 | * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when | |
27945 | gimplifying __builtin_eh_return call. | |
27946 | * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun | |
27947 | to cfun. | |
27948 | (expand_call_inline): Or in src_cfun->calls_eh_return into | |
27949 | dst_cfun->calls_eh_return. | |
27950 | * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if | |
27951 | cfun->calls_eh_return. | |
27952 | * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return. | |
27953 | * lto-streamer-out.c (output_struct_function_base): Write | |
27954 | calls_eh_return. | |
27955 | ||
27956 | 2019-05-20 Marc Glisse <marc.glisse@inria.fr> | |
27957 | ||
27958 | PR rtl-optimization/43147 | |
27959 | * config/i386/i386.c (ix86_gimple_fold_builtin): Handle | |
27960 | IX86_BUILTIN_SHUFPD. | |
27961 | ||
27962 | 2019-05-20 Jan Hubicka <hubicka@ucw.cz> | |
27963 | ||
27964 | * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ... | |
27965 | (refs_may_alias_p_1): ... here; update stats. | |
27966 | (refs_may_alias_p): Do not update stats here. | |
27967 | ||
27968 | 2019-05-20 Richard Biener <rguenther@suse.de> | |
27969 | ||
27970 | * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR | |
27971 | doesn't produce pointers. | |
27972 | {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what | |
27973 | the first operand points to. | |
27974 | ||
27975 | 2019-05-20 Jan Hubicka <hubicka@ucw.cz> | |
27976 | ||
27977 | * tree-ssa-alias.c (compare_sizes): New function. | |
27978 | (sompare_type_sizes): New function | |
27979 | (aliasing_component_refs_p): Use it. | |
27980 | (indirect_ref_may_alias_decl_p): Likewise. | |
27981 | ||
27982 | 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
27983 | ||
27984 | * config/i386/sol2.h (CC1_SPEC): Reject -mx32. | |
27985 | ||
27986 | 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
27987 | ||
27988 | * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e. | |
27989 | (LIBLSAN_EARLY_SPEC): Likewise. | |
27990 | * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise. | |
27991 | ||
27992 | 2019-05-20 Martin Liska <mliska@suse.cz> | |
27993 | ||
27994 | * config/i386/i386.c (ix86_libc_has_fast_function): | |
27995 | Add ATTRIBUTE_UNUSED for the argument. | |
27996 | ||
27997 | 2019-05-20 Richard Biener <rguenther@suse.de> | |
27998 | ||
27999 | * gimple-match-head.c: Include vec-perm-indices.h. | |
28000 | * generic-match-head.c: Likewise. | |
28001 | * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h | |
28002 | is included. | |
28003 | * fold-const.c (fold_vec_perm): Export. | |
28004 | (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR... | |
28005 | (match.pd): ...here. | |
28006 | ||
28007 | 2019-05-20 Jakub Jelinek <jakub@redhat.com> | |
28008 | ||
28009 | * cfgloop.h (struct loop): Add simdlen member. | |
28010 | * cfgloopmanip.c (copy_loop_info): Copy simdlen as well. | |
28011 | * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present. | |
28012 | * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0 | |
28013 | as new argument to autovectorize_vector_sizes target hook. If | |
28014 | loop->simdlen, pick up vector size where the vectorization factor | |
28015 | is equal to loop->simd, and if there is none, fall back to the first | |
28016 | successful one. | |
28017 | (vect_transform_loop): Adjust autovectorize_vector_sizes target hook | |
28018 | caller. | |
28019 | * omp-low.c (omp_clause_aligned_alignment): Likewise. | |
28020 | * omp-general.c (omp_max_vf): Likewise. | |
28021 | * optabs-query.c (can_vec_mask_load_store_p): Likewise. | |
28022 | * tree-vect-slp.c (vect_slp_bb): Likewise. | |
28023 | * target.def (autovectorize_vector_sizes): Add ALL argument and | |
28024 | document it. | |
28025 | * doc/tm.texi: Adjust documentation. | |
28026 | * targhooks.c (default_autovectorize_vector_sizes): Add bool argument. | |
28027 | * targhooks.h (default_autovectorize_vector_sizes): Likewise. | |
28028 | * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add | |
28029 | bool argument. | |
28030 | * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise. | |
28031 | * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise. | |
28032 | * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise. | |
28033 | * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If | |
28034 | true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if | |
28035 | preferred vector size is not 512-bit or 256-bit, just put those | |
28036 | unpreferred ones last. | |
28037 | ||
28038 | 2019-05-20 Martin Liska <mliska@suse.cz> | |
28039 | ||
28040 | * targhooks.c (default_libc_has_fast_function): New function. | |
28041 | * targhooks.h (default_libc_has_fast_function): Likewise. | |
28042 | ||
28043 | 2019-05-20 Martin Liska <mliska@suse.cz> | |
28044 | ||
28045 | PR middle-end/90263 | |
28046 | * builtins.c (expand_builtin_memory_copy_args): When having a | |
28047 | target with fast mempcpy implementation do now use memcpy. | |
28048 | * config/i386/i386.c (ix86_libc_has_fast_function): New. | |
28049 | (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise. | |
28050 | * doc/tm.texi: Likewise. | |
28051 | * doc/tm.texi.in: Likewise. | |
28052 | * target.def: | |
28053 | * expr.c (emit_block_move_hints): Add 2 new arguments. | |
28054 | * expr.h (emit_block_move_hints): Bail out when libcall | |
28055 | to memcpy would be used. | |
28056 | ||
28057 | 2019-05-20 Martin Liska <mliska@suse.cz> | |
28058 | ||
28059 | * profile-count.c: Add vertical spacing in order | |
28060 | to separate functions. | |
28061 | * profile-count.h: Likewise. | |
28062 | ||
28063 | 2019-05-20 Martin Liska <mliska@suse.cz> | |
28064 | ||
28065 | * profile-count.h: Do not use full qualified | |
28066 | names if possible. | |
28067 | * profile-count.c (profile_count::to_frequency): Likewise. | |
28068 | ||
28069 | 2019-05-20 Martin Liska <mliska@suse.cz> | |
28070 | ||
28071 | * profile-count.h (enum profile_quality): Use capital letters | |
28072 | for enum value names. Use the adjusted names. | |
28073 | * profile-count.c: Use the adjusted names. | |
28074 | ||
28075 | 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> | |
28076 | ||
28077 | * config/rs6000/constraints.md (define_register_constraint "wH"): | |
28078 | Delete. | |
28079 | (define_register_constraint "wI"): Delete. | |
28080 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
28081 | RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI. | |
28082 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
28083 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
28084 | * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v" | |
28085 | resp. "d", or with "wa" as appropriate, all with "p8v". | |
28086 | * config/rs6000/vsx.md: Ditto. | |
28087 | * doc/md.texi (Machine Constraints): Adjust. | |
28088 | ||
28089 | 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> | |
28090 | ||
28091 | * config/rs6000/constraints.md (define_register_constraint "wy"): | |
28092 | Delete. | |
28093 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
28094 | RS6000_CONSTRAINT_wy. | |
28095 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
28096 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
28097 | * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v". | |
28098 | Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>". | |
28099 | (define_mode_attr Fisa): New. | |
28100 | * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v". | |
28101 | * doc/md.texi (Machine Constraints): Adjust. | |
28102 | ||
28103 | 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> | |
28104 | ||
28105 | * config/rs6000/constraints.md (define_register_constraint "wu"): | |
28106 | Delete. | |
28107 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
28108 | RS6000_CONSTRAINT_wu. | |
28109 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
28110 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
28111 | * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa", | |
28112 | both with "p8v". | |
28113 | (define_mode_attr Fa): Delete. | |
28114 | * config/rs6000/vsx.md: Ditto. | |
28115 | * doc/md.texi (Machine Constraints): Adjust. | |
28116 | ||
28117 | 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> | |
28118 | ||
28119 | * config/rs6000/constraints.md (define_register_constraint "wJ"): | |
28120 | Delete. | |
28121 | (define_register_constraint "wK"): Delete. | |
28122 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
28123 | RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK. | |
28124 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
28125 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
28126 | * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v". | |
28127 | Replace "wK" constraint by "wH" with "p9v". | |
28128 | * config/rs6000/vsx.md: Ditto. | |
28129 | * doc/md.texi (Machine Constraints): Adjust. | |
28130 | ||
28131 | 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> | |
28132 | ||
28133 | * config/rs6000/constraints.md (define_register_constraint "wb"): | |
28134 | Delete. | |
28135 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
28136 | RS6000_CONSTRAINT_wb. | |
28137 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
28138 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
28139 | * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v". | |
28140 | * config/rs6000/vsx.md: Ditto. | |
28141 | * doc/md.texi (Machine Constraints): Adjust. | |
28142 | ||
28143 | 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org> | |
28144 | ||
28145 | * config/rs6000/constraints.md (define_register_constraint "wo"): | |
28146 | Delete. | |
28147 | * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete | |
28148 | RS6000_CONSTRAINT_wo. | |
28149 | * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust. | |
28150 | (rs6000_init_hard_regno_mode_ok): Adjust. | |
28151 | * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v". | |
28152 | * config/rs6000/altivec.md: Ditto. | |
28153 | * doc/md.texi (Machine Constraints): Adjust. | |
28154 | ||
28155 | 2019-05-18 Iain Sandoe <iain@sandoe.co.uk> | |
28156 | ||
28157 | * config/darwin-c.c (darwin_register_objc_includes): Do not | |
28158 | prepend the sysroot when building gnu-runtime header search | |
28159 | paths. | |
28160 | ||
28161 | 2019-05-18 Iain Sandoe <iain@sandoe.co.uk> | |
28162 | ||
28163 | * config/darwin.c (darwin_file_end): Use switch_to_section () | |
28164 | instead of direct output of the asm. | |
28165 | ||
28166 | 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org> | |
28167 | ||
28168 | * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean | |
28169 | argument to be type bool (was int before). | |
28170 | (rs6000_emit_epilogue): Simplify some code. Declare some variables | |
28171 | at first use. Use type bool for some variables. Fix a theoretical | |
28172 | eh_return bug for svr4. | |
28173 | ||
28174 | 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org> | |
28175 | ||
28176 | * config/rs6000/rs6000.md (isa): New attribute. | |
28177 | (enabled): New attribute. | |
28178 | ||
28179 | 2019-05-17 Max Filippov <jcmvbkbc@gmail.com> | |
28180 | ||
28181 | * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call | |
28182 | assemble_start_function and assemble_end_function. | |
28183 | ||
28184 | 2019-05-17 Thomas Schwinge <thomas@codesourcery.com> | |
28185 | ||
28186 | PR middle-end/89433 | |
28187 | * omp-general.c (oacc_verify_routine_clauses): Change formal | |
28188 | parameters. Add checking if already marked with an OpenACC | |
28189 | 'routine' directive. Adjust all users. | |
28190 | ||
28191 | PR middle-end/89433 | |
28192 | * omp-general.c (oacc_build_routine_dims): Move some of its | |
28193 | processing into... | |
28194 | (oacc_verify_routine_clauses): ... this new function. | |
28195 | * omp-general.h (oacc_verify_routine_clauses): New prototype. | |
28196 | ||
28197 | 2019-05-17 Iain Sandoe <iain@sandoe.co.uk> | |
28198 | ||
28199 | * config/rs6000/rs6000.c (machopic_output_stub): Adjust the | |
28200 | formating of picbase labels to match other ports. | |
28201 | ||
28202 | 2019-05-17 Iain Sandoe <iain@sandoe.co.uk> | |
28203 | ||
28204 | * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent | |
28205 | in the generated code. | |
28206 | ||
28207 | 2019-05-16 Martin Sebor <msebor@redhat.com> | |
28208 | ||
28209 | * builtins.c (expand_builtin_atomic_always_lock_free): Quote | |
28210 | identifiers, keywords, operators, and types in diagnostics. Correct | |
28211 | quoting, spelling, and sentence capitalization issues. | |
28212 | (expand_builtin_atomic_is_lock_free): Same. | |
28213 | (fold_builtin_next_arg): Same. | |
28214 | * cfgexpand.c (expand_one_var): Same. | |
28215 | (tree_conflicts_with_clobbers_p): Same. | |
28216 | (expand_asm_stmt): Same. | |
28217 | (verify_loop_structure): Same. | |
28218 | * cgraphunit.c (process_function_and_variable_attributes): Same. | |
28219 | * collect-utils.c (collect_execute): Same. | |
28220 | * collect2.c (maybe_run_lto_and_relink): Same. | |
28221 | (is_lto_object_file): Same. | |
28222 | (scan_prog_file): Same. | |
28223 | * convert.c (convert_to_real_1): Same. | |
28224 | * dwarf2out.c (dwarf2out_begin_prologue): Same. | |
28225 | * except.c (verify_eh_tree): Same. | |
28226 | * gcc.c (execute): Same. | |
28227 | (eval_spec_function): Same. | |
28228 | (run_attempt): Same. | |
28229 | (driver::set_up_specs): Same. | |
28230 | (compare_debug_auxbase_opt_spec_function): Same. | |
28231 | * gcov-tool.c (unlink_gcda_file): Same. | |
28232 | (do_merge): Same. | |
28233 | (do_rewrite): Same. | |
28234 | * gcse.c (gcse_or_cprop_is_too_expensive): Same. | |
28235 | * gimplify.c (gimplify_asm_expr): Same. | |
28236 | (gimplify_adjust_omp_clauses): Same. | |
28237 | * hsa-gen.c (gen_hsa_addr_insns): Same. | |
28238 | (gen_hsa_insns_for_load): Same. | |
28239 | (gen_hsa_cmp_insn_from_gimple): Same. | |
28240 | (gen_hsa_insns_for_operation_assignment): Same. | |
28241 | (gen_get_level): Same. | |
28242 | (gen_hsa_alloca): Same. | |
28243 | (omp_simple_builtin::generate): Same. | |
28244 | (gen_hsa_atomic_for_builtin): Same. | |
28245 | (gen_hsa_insns_for_call): Same. | |
28246 | * input.c (dump_location_info): Same. | |
28247 | * ipa-devirt.c (compare_virtual_tables): Same. | |
28248 | * ira.c (ira_setup_eliminable_regset): Same. | |
28249 | * lra-assigns.c (lra_assign): Same. | |
28250 | * lra-constraints.c (lra_constraints): Same. | |
28251 | * lto-streamer-in.c (lto_input_mode_table): Same. | |
28252 | * lto-wrapper.c (get_options_from_collect_gcc_options): Same. | |
28253 | (merge_and_complain): Same. | |
28254 | (compile_offload_image): Same. | |
28255 | (compile_images_for_offload_targets): Same. | |
28256 | (debug_objcopy): Same. | |
28257 | (run_gcc): Same. | |
28258 | (main): Same. | |
28259 | * opts.c (print_specific_help): Same. | |
28260 | (parse_no_sanitize_attribute): Same. | |
28261 | (print_help): Same. | |
28262 | (handle_param): Same. | |
28263 | * plugin.c (add_new_plugin): Same. | |
28264 | (parse_plugin_arg_opt): Same. | |
28265 | (try_init_one_plugin): Same. | |
28266 | * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords, | |
28267 | operators, and types in diagnostics. Correct quoting and spelling | |
28268 | issues. | |
28269 | * read-rtl-function.c (parse_edge_flag_token): Same. | |
28270 | (function_reader::parse_enum_value): Same. | |
28271 | * reg-stack.c (check_asm_stack_operands): Same. | |
28272 | * regcprop.c (validate_value_data): Same. | |
28273 | * sched-rgn.c (make_pass_sched_fusion): Same. | |
28274 | * stmt.c (check_unique_operand_names): Same. | |
28275 | * targhooks.c (default_target_option_pragma_parse): Same. | |
28276 | * tlink.c (recompile_files): Same. | |
28277 | * toplev.c (process_options): Same. | |
28278 | (do_compile): Same. | |
28279 | * trans-mem.c (diagnose_tm_1): Same. | |
28280 | (ipa_tm_scan_irr_block): Same. | |
28281 | (ipa_tm_diagnose_transaction): Same. | |
28282 | * tree-cfg.c (verify_address): Same. Use get_tree_code_name to | |
28283 | format a tree code name in a diagnostic. | |
28284 | (verify_types_in_gimple_min_lval): Same. | |
28285 | (verify_types_in_gimple_reference): Same. | |
28286 | (verify_gimple_call): Same. | |
28287 | (verify_gimple_assign_unary): Same. | |
28288 | (verify_gimple_assign_binary): Same. | |
28289 | (verify_gimple_assign_ternary): Same. | |
28290 | (verify_gimple_assign_single): Same. | |
28291 | (verify_gimple_switch): Same. | |
28292 | (verify_gimple_label): Same. | |
28293 | (verify_gimple_phi): Same. | |
28294 | (verify_gimple_in_seq): Same. | |
28295 | (verify_eh_throw_stmt_node): Same. | |
28296 | (collect_subblocks): Same. | |
28297 | (gimple_verify_flow_info): Same. | |
28298 | (do_warn_unused_result): Same. | |
28299 | * tree-inline.c (expand_call_inline): Same. | |
28300 | * tree-into-ssa.c (update_ssa): Same. | |
28301 | * tree.c (tree_int_cst_elt_check_failed): Same. | |
28302 | (tree_vec_elt_check_failed): Same. | |
28303 | (omp_clause_operand_check_failed): Same. | |
28304 | (verify_type_variant): Same. | |
28305 | (verify_type): Same. | |
28306 | * value-prof.c (verify_histograms): Same. | |
28307 | * varasm.c (assemble_start_function): Same. | |
28308 | ||
28309 | 2019-05-16 Martin Sebor <msebor@redhat.com> | |
28310 | ||
28311 | * config/i386/i386-expand.c (get_element_number): Quote keywords | |
28312 | and other internal names in diagnostics. Adjust other diagnostic | |
28313 | formatting issues noted by -Wformat-diag. | |
28314 | * config/i386/i386-features.c | |
28315 | (ix86_mangle_function_version_assembler_name): Same. | |
28316 | * config/i386/i386-options.c (ix86_handle_abi_attribute): Same. | |
28317 | * config/i386/i386.c (ix86_function_type_abi): Same. | |
28318 | (ix86_function_ms_hook_prologue): Same. | |
28319 | (classify_argument): Same. | |
28320 | (ix86_expand_prologue): Same. | |
28321 | (ix86_md_asm_adjust): Same. | |
28322 | (ix86_memmodel_check): Same. | |
28323 | ||
28324 | 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com> | |
28325 | ||
28326 | * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace | |
28327 | TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64 | |
28328 | and fpxx modes. | |
28329 | ||
28330 | 2019-05-17 H.J. Lu <hongjiu.lu@intel.com> | |
28331 | ||
28332 | PR target/90497 | |
28333 | * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX | |
28334 | intrinsics without SSE/SSE2/SSSE3. | |
28335 | * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW | |
28336 | check. | |
28337 | (*mmx_uavgv8qi3): Likewise. | |
28338 | ||
28339 | 2019-05-17 Richard Biener <rguenther@suse.de> | |
28340 | ||
28341 | * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping | |
28342 | VEC_PERM_EXPR as __VEC_PERM with -gimple. | |
28343 | ||
28344 | 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com> | |
28345 | ||
28346 | * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the | |
28347 | vec_sldw insn pattern. | |
28348 | ||
28349 | 2019-05-17 Richard Biener <rguenther@suse.de> | |
28350 | ||
28351 | * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree. | |
28352 | ||
28353 | 2019-05-17 Martin Liska <mliska@suse.cz> | |
28354 | ||
28355 | PR driver/90496 | |
28356 | * toplev.c (output_stack_usage): With LTO and sanitizer it | |
28357 | happens that a global ctor (_GLOBAL__sub_I_00099_0_main) | |
28358 | has no file location. | |
28359 | ||
28360 | 2019-05-16 Jakub Jelinek <jakub@redhat.com> | |
28361 | ||
28362 | PR c++/90484 | |
28363 | * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that | |
28364 | sz0 is equal to sz1, instead return false in that case. | |
28365 | ||
28366 | * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF | |
28367 | has non-constant expression, force sctx.lane and use two | |
28368 | argument IFN_GOMP_SIMD_LANE instead of single argument. | |
28369 | * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE | |
28370 | two argument IFN_GOMP_SIMD_LANE without lhs. | |
28371 | * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond | |
28372 | member. | |
28373 | (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND): | |
28374 | Define. | |
28375 | (LOOP_REQUIRES_VERSIONING): Or in | |
28376 | LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND. | |
28377 | * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize | |
28378 | simd_if_cond. | |
28379 | (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0. | |
28380 | * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check | |
28381 | from simd if clause if needed. | |
28382 | ||
28383 | 2019-05-16 Richard Biener <rguenther@suse.de> | |
28384 | ||
28385 | * tree-affine.c (expr_to_aff_combination): New function split | |
28386 | out from... | |
28387 | (tree_to_aff_combination): ... here. | |
28388 | (aff_combination_expand): Avoid building a GENERIC tree. | |
28389 | ||
28390 | 2019-05-16 Max Filippov <jcmvbkbc@gmail.com> | |
28391 | ||
28392 | * cgraphunit.c (cgraph_node::expand_thunk): Remove | |
28393 | assemble_start_function and assemble_end_function calls. | |
28394 | * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call | |
28395 | assemble_start_function and assemble_end_function. | |
28396 | * config/arc/arc.c (arc_output_mi_thunk): Likewise. | |
28397 | * config/arm/arm.c (arm_output_mi_thunk): Likewise. | |
28398 | * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise. | |
28399 | * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise. | |
28400 | * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise. | |
28401 | * config/csky/csky.c (csky_output_mi_thunk): Likewise. | |
28402 | * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise. | |
28403 | * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise. | |
28404 | * config/i386/i386.c (x86_output_mi_thunk): Likewise. | |
28405 | * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. | |
28406 | * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise. | |
28407 | * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk): | |
28408 | Likewise. | |
28409 | * config/mips/mips.c (mips_output_mi_thunk): Likewise. | |
28410 | * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise. | |
28411 | * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise. | |
28412 | * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise. | |
28413 | * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise. | |
28414 | * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise. | |
28415 | * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise. | |
28416 | * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise. | |
28417 | * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. | |
28418 | * config/s390/s390.c (s390_output_mi_thunk): Likewise. | |
28419 | * config/sh/sh.c (sh_output_mi_thunk): Likewise. | |
28420 | * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. | |
28421 | * config/spu/spu.c (spu_output_mi_thunk): Likewise. | |
28422 | * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk): | |
28423 | Likewise. | |
28424 | * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise. | |
28425 | * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise. | |
28426 | * config/vax/vax.c (vax_output_mi_thunk): Likewise. | |
28427 | ||
28428 | 2019-05-16 Jan Hubicka <hubicka@ucw.cz> | |
28429 | ||
28430 | * tree-ssa-alias.c (alias_stats): Add | |
28431 | aliasing_component_refs_p_may_alias and | |
28432 | aliasing_component_refs_p_no_alias. | |
28433 | (dump_alias_stats): Print aliasing_component_refs_p stats. | |
28434 | (aliasing_component_refs_p): Update stats. | |
28435 | ||
28436 | 2019-05-16 Martin Liska <mliska@suse.cz> | |
28437 | ||
28438 | PR lto/90500 | |
28439 | * multiple_target.c (expand_target_clones): Do not allow | |
28440 | target_clones being used with a symbol that is an alias. | |
28441 | ||
28442 | 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru> | |
28443 | ||
28444 | PR tree-optimization/90394 | |
28445 | * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false | |
28446 | positives rather than ICE for cases where (code2 == NE_EXPR | |
28447 | && code1 == BIT_AND_EXPR). | |
28448 | ||
28449 | 2019-05-16 Jakub Jelinek <jakub@redhat.com> | |
28450 | ||
28451 | PR fortran/90329 | |
28452 | * tree-core.h (struct tree_decl_common): Document | |
28453 | decl_nonshareable_flag for PARM_DECLs. | |
28454 | * tree.h (DECL_HIDDEN_STRING_LENGTH): Define. | |
28455 | * calls.c (expand_call): Don't try tail call if caller | |
28456 | has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be | |
28457 | passed on the stack and callee needs to pass any arguments on the | |
28458 | stack. | |
28459 | * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use | |
28460 | else if instead of series of mutually exclusive ifs. Handle | |
28461 | DECL_HIDDEN_STRING_LENGTH for PARM_DECLs. | |
28462 | * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise. | |
28463 | ||
28464 | * lto-streamer.h (LTO_major_version): Bump to 9. | |
28465 | ||
28466 | 2019-05-16 Jun Ma <JunMa@linux.alibaba.com> | |
28467 | ||
28468 | PR tree-optimization/90106 | |
28469 | * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add | |
28470 | new parameter as new internal function call, also move it to new | |
28471 | basic block. | |
28472 | (use_internal_fn): Pass internal function call to | |
28473 | shrink_wrap_one_built_in_call_with_conds. | |
28474 | ||
28475 | 2019-05-15 Jakub Jelinek <jakub@redhat.com> | |
28476 | ||
28477 | * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set | |
28478 | max_vf to 1. | |
28479 | * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear | |
28480 | safelen_int and set loop->dont_vectorize. | |
28481 | ||
28482 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28483 | ||
28484 | PR target/89021 | |
28485 | * config/i386/i386-builtin.def: Enable MMX intrinsics with | |
28486 | SSE/SSE2/SSSE3. | |
28487 | * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins): | |
28488 | Likewise. | |
28489 | * config/i386/i386-expand.c (ix86_expand_builtin): Allow | |
28490 | SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE. | |
28491 | * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__ | |
28492 | is defined. | |
28493 | ||
28494 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28495 | ||
28496 | PR target/89021 | |
28497 | * config/i386/mmx.md (*vec_dupv2sf): Changed to | |
28498 | define_insn_and_split to support SSE emulation. | |
28499 | (*vec_extractv2sf_0): Likewise. | |
28500 | (*vec_extractv2sf_1): Likewise. | |
28501 | (*vec_extractv2si_0): Likewise. | |
28502 | (*vec_extractv2si_1): Likewise. | |
28503 | (*vec_extractv2si_zext_mem): Likewise. | |
28504 | (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE. | |
28505 | (vec_extractv2sf_1 splitter): Likewise. | |
28506 | (vec_extractv2sfsf): Likewise. | |
28507 | (vec_setv2si): Likewise. | |
28508 | (vec_extractv2si_1 splitter): Likewise. | |
28509 | (vec_extractv2sisi): Likewise. | |
28510 | (vec_setv4hi): Likewise. | |
28511 | (vec_extractv4hihi): Likewise. | |
28512 | (vec_setv8qi): Likewise. | |
28513 | (vec_extractv8qiqi): Likewise. | |
28514 | (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass | |
28515 | TARGET_MMX_WITH_SSE ix86_expand_vector_extract. | |
28516 | (vec_extractv2sisi): Likewise. | |
28517 | (vec_extractv4hihi): Likewise. | |
28518 | (vec_extractv8qiqi): Likewise. | |
28519 | (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass | |
28520 | TARGET_MMX_WITH_SSE to ix86_expand_vector_init. | |
28521 | (vec_initv2sisi): Likewise. | |
28522 | (vec_initv4hihi): Likewise. | |
28523 | (vec_initv8qiqi): Likewise. | |
28524 | (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass | |
28525 | TARGET_MMX_WITH_SSE to ix86_expand_vector_set. | |
28526 | (vec_setv4hi): Likewise. | |
28527 | (vec_setv8qi): Likewise. | |
28528 | ||
28529 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28530 | ||
28531 | PR target/89021 | |
28532 | * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow | |
28533 | TARGET_MMX_WITH_SSE. | |
28534 | (MMXMODE:*mov<mode>_internal): Likewise. | |
28535 | (MMXMODE:movmisalign<mode>): Likewise. | |
28536 | ||
28537 | 2019-05-15 Uroš Bizjak <ubizjak@gmail.com> | |
28538 | ||
28539 | PR target/89021 | |
28540 | * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute. | |
28541 | * config/i386/sse.md (sse2_cvtpi2pd): Ditto. | |
28542 | (sse2_cvtpd2pi): Ditto. | |
28543 | (sse2_cvttpd2pi): Ditto. | |
28544 | (*vec_concatv2sf_sse4_1): Ditto. | |
28545 | (*vec_concatv2sf_sse): Ditto. | |
28546 | (*vec_concatv2si_sse4_1): Ditto. | |
28547 | (*vec_concatv2si): Ditto. | |
28548 | (*vec_concatv4si_0): Ditto. | |
28549 | (*vec_concatv2di_0): Ditto. | |
28550 | ||
28551 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28552 | ||
28553 | PR target/89021 | |
28554 | * config/i386/sse.md (abs<mode>2): Add SSE emulation. | |
28555 | ||
28556 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28557 | ||
28558 | PR target/89021 | |
28559 | * config/i386/sse.md (ssse3_palignrdi): Changed to | |
28560 | define_insn_and_split to support SSE emulation. | |
28561 | ||
28562 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28563 | ||
28564 | PR target/89021 | |
28565 | * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation. | |
28566 | ||
28567 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28568 | ||
28569 | PR target/89021 | |
28570 | * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to | |
28571 | define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add | |
28572 | SSE emulation. | |
28573 | ||
28574 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28575 | ||
28576 | PR target/89021 | |
28577 | * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX | |
28578 | or TARGET_MMX_WITH_SSE. | |
28579 | (*ssse3_pmulhrswv4hi3): Add SSE emulation. | |
28580 | ||
28581 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28582 | ||
28583 | PR target/89021 | |
28584 | * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation. | |
28585 | ||
28586 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28587 | ||
28588 | PR target/89021 | |
28589 | * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3): | |
28590 | Changed to define_insn_and_split to support SSE emulation. | |
28591 | ||
28592 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28593 | ||
28594 | PR target/89021 | |
28595 | * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3): | |
28596 | Changed to define_insn_and_split to support SSE emulation. | |
28597 | ||
28598 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28599 | ||
28600 | PR target/89021 | |
28601 | * config/i386/mmx.md (mmx_<emms>): Renamed to ... | |
28602 | (*mmx_<emms>): This. | |
28603 | (mmx_<emms>): New expander. | |
28604 | ||
28605 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28606 | ||
28607 | PR target/89021 | |
28608 | * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation | |
28609 | support. | |
28610 | (*sse2_umulv1siv1di3): Add SSE2 emulation. | |
28611 | ||
28612 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28613 | ||
28614 | PR target/89021 | |
28615 | * config/i386/mmx.md (sse_movntq): Add SSE2 emulation. | |
28616 | ||
28617 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28618 | ||
28619 | PR target/89021 | |
28620 | * config/i386/mmx.md (mmx_psadbw): Add SSE emulation. | |
28621 | ||
28622 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28623 | ||
28624 | PR target/89021 | |
28625 | * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and | |
28626 | TARGET_MMX_WITH_SSE. | |
28627 | (*mmx_uavgv4hi3): Add SSE emulation. | |
28628 | ||
28629 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28630 | ||
28631 | PR target/89021 | |
28632 | * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX | |
28633 | and TARGET_MMX_WITH_SSE. | |
28634 | (*mmx_uavgv8qi3): Add SSE emulation. | |
28635 | ||
28636 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28637 | ||
28638 | PR target/89021 | |
28639 | * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2 | |
28640 | maskmovdqu for __MMX_WITH_SSE__. | |
28641 | ||
28642 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28643 | ||
28644 | PR target/89021 | |
28645 | * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check | |
28646 | TARGET_MMX and TARGET_MMX_WITH_SSE. | |
28647 | (*mmx_umulv4hi3_highpart): Add SSE emulation. | |
28648 | ||
28649 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28650 | ||
28651 | PR target/89021 | |
28652 | * config/i386/mmx.md (mmx_pmovmskb): Changed to | |
28653 | define_insn_and_split to support SSE emulation. | |
28654 | ||
28655 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28656 | ||
28657 | PR target/89021 | |
28658 | * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX | |
28659 | and TARGET_MMX_WITH_SSE. | |
28660 | (mmx_<code>v8qi3): Likewise. | |
28661 | (smaxmin:<code>v4hi3): New. | |
28662 | (umaxmin:<code>v8qi3): Likewise. | |
28663 | (smaxmin:*mmx_<code>v4hi3): Add SSE emulation. | |
28664 | (umaxmin:*mmx_<code>v8qi3): Likewise. | |
28665 | ||
28666 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28667 | ||
28668 | PR target/89021 | |
28669 | * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and | |
28670 | TARGET_MMX_WITH_SSE. | |
28671 | (*mmx_pinsrw): Add SSE emulation. | |
28672 | ||
28673 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28674 | ||
28675 | PR target/89021 | |
28676 | * config/i386/mmx.md (mmx_pextrw): Add SSE emulation. | |
28677 | ||
28678 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28679 | ||
28680 | PR target/89021 | |
28681 | * config/i386/sse.md (sse_cvtpi2ps): Changed to | |
28682 | define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add | |
28683 | SSE emulation. | |
28684 | ||
28685 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28686 | ||
28687 | PR target/89021 | |
28688 | * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation. | |
28689 | (sse_cvttps2pi): Likewise. | |
28690 | ||
28691 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28692 | ||
28693 | PR target/89021 | |
28694 | * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and | |
28695 | TARGET_MMX_WITH_SSE. | |
28696 | (mmx_pshufw_1): Add SSE emulation. | |
28697 | (*vec_dupv4hi): Changed to define_insn_and_split and also allow | |
28698 | TARGET_MMX_WITH_SSE to support SSE emulation. | |
28699 | ||
28700 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28701 | ||
28702 | PR target/89021 | |
28703 | * config/i386/constraints.md (Yw): New constraint. | |
28704 | * config/i386/mmx.md (*vec_dupv2si): Changed to | |
28705 | define_insn_and_split and also allow TARGET_MMX_WITH_SSE to | |
28706 | support SSE emulation. | |
28707 | ||
28708 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28709 | ||
28710 | PR target/89021 | |
28711 | * config/i386/mmx.md (mmx_eq<mode>3): Also allow | |
28712 | TARGET_MMX_WITH_SSE. | |
28713 | (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE | |
28714 | support. | |
28715 | (mmx_gt<mode>3): Likewise. | |
28716 | ||
28717 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28718 | ||
28719 | PR target/89021 | |
28720 | * config/i386/mmx.md (mmx_andnot<mode>3): Also allow | |
28721 | TARGET_MMX_WITH_SSE. Add SSE support. | |
28722 | ||
28723 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28724 | ||
28725 | PR target/89021 | |
28726 | * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow | |
28727 | TARGET_MMX_WITH_SSE. | |
28728 | (any_logic:<code><mode>3): New. | |
28729 | (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE. | |
28730 | Add SSE support. | |
28731 | ||
28732 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28733 | ||
28734 | PR target/89021 | |
28735 | * config/i386/mmx.md (mmx_ashr<mode>3): Also allow | |
28736 | TARGET_MMX_WITH_SSE. Add SSE emulation. | |
28737 | (mmx_<shift_insn><mode>3): Likewise. | |
28738 | (ashr<mode>3): New. | |
28739 | (<shift_insn><mode>3): Likewise. | |
28740 | ||
28741 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28742 | ||
28743 | PR target/89021 | |
28744 | * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. | |
28745 | (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support. | |
28746 | ||
28747 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28748 | ||
28749 | PR target/89021 | |
28750 | * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow | |
28751 | TARGET_MMX_WITH_SSE. | |
28752 | (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add | |
28753 | SSE support. | |
28754 | ||
28755 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28756 | ||
28757 | PR target/89021 | |
28758 | * config/i386/mmx.md (mmx_mulv4hi3): Also allow | |
28759 | TARGET_MMX_WITH_SSE. | |
28760 | (mulv4hi3): New. | |
28761 | (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE | |
28762 | support. | |
28763 | ||
28764 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28765 | ||
28766 | PR target/89021 | |
28767 | * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI. | |
28768 | (plusminus:mmx_<plusminus_insn><mode>3): Check | |
28769 | TARGET_MMX_WITH_SSE. | |
28770 | (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise. | |
28771 | (<plusminus_insn><mode>3): New. | |
28772 | (*mmx_<plusminus_insn><mode>3): Add SSE emulation. | |
28773 | (*mmx_<plusminus_insn><mode>3): Likewise. | |
28774 | ||
28775 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28776 | ||
28777 | PR target/89021 | |
28778 | * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function. | |
28779 | * config/i386/i386-protos.h (ix86_split_mmx_punpck): New | |
28780 | prototype. | |
28781 | * config/i386/mmx.m (mmx_punpckhbw): Changed to | |
28782 | define_insn_and_split to support SSE emulation. | |
28783 | (mmx_punpcklbw): Likewise. | |
28784 | (mmx_punpckhwd): Likewise. | |
28785 | (mmx_punpcklwd): Likewise. | |
28786 | (mmx_punpckhdq): Likewise. | |
28787 | (mmx_punpckldq): Likewise. | |
28788 | ||
28789 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28790 | Uros Bizjak <ubizjak@gmail.com> | |
28791 | ||
28792 | PR target/89021 | |
28793 | * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx): | |
28794 | New function. | |
28795 | (ix86_split_mmx_pack): Likewise. | |
28796 | * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx): | |
28797 | New prototype. | |
28798 | (ix86_split_mmx_pack): Likewise. | |
28799 | * config/i386/i386.md (mmx_isa): New. | |
28800 | (enabled): Also check mmx_isa. | |
28801 | * config/i386/mmx.md (any_s_truncate): New code iterator. | |
28802 | (s_trunsuffix): New code attr. | |
28803 | (mmx_packsswb): Removed. | |
28804 | (mmx_packssdw): Likewise. | |
28805 | (mmx_packuswb): Likewise. | |
28806 | (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate | |
28807 | MMX packsswb/packuswb with SSE2. | |
28808 | (mmx_packssdw): Likewise. | |
28809 | * config/i386/predicates.md (register_mmxmem_operand): New. | |
28810 | ||
28811 | 2019-05-15 H.J. Lu <hongjiu.lu@intel.com> | |
28812 | ||
28813 | PR target/89021 | |
28814 | * config/i386/i386-c.c (ix86_target_macros_internal): Define | |
28815 | __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE. | |
28816 | * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for | |
28817 | TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE. | |
28818 | (ix86_vector_mode_supported_p): Likewise. | |
28819 | * config/i386/i386.h (TARGET_MMX_WITH_SSE): New. | |
28820 | ||
28821 | 2019-05-15 Martin Liska <mliska@suse.cz> | |
28822 | ||
28823 | PR middle-end/90478 | |
28824 | * tree-switch-conversion.c (jump_table_cluster::can_be_handled): | |
28825 | Check for overflow. | |
28826 | ||
28827 | 2019-05-15 Richard Biener <rguenther@suse.de> | |
28828 | ||
28829 | * tree-into-ssa.c (pass_build_ssa::execute): Run | |
28830 | update_address_taken before going into SSA. | |
28831 | ||
28832 | 2019-05-15 Richard Biener <rguenther@suse.de> | |
28833 | ||
28834 | * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF | |
28835 | as __BIT_FIELD_REF with type with -gimple. | |
28836 | ||
28837 | 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru> | |
28838 | ||
28839 | * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge | |
28840 | semantically equivalent branches (left over after prior refactorings). | |
28841 | ||
28842 | 2019-05-15 Richard Biener <rguenther@suse.de> | |
28843 | ||
28844 | PR tree-optimization/88828 | |
28845 | * tree-ssa-forwprop.c (simplify_vector_constructor): Fix | |
28846 | bogus check. | |
28847 | ||
28848 | 2019-05-14 Richard Biener <rguenther@suse.de> | |
28849 | ||
28850 | * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR | |
28851 | as __VIEW_CONVERT with -gimple. | |
28852 | ||
28853 | 2019-05-12 Iain Sandoe <iain@sandoe.co.uk> | |
28854 | ||
28855 | PR target/82920 | |
28856 | * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for | |
28857 | Darwin. | |
28858 | ||
28859 | 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org> | |
28860 | ||
28861 | * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following | |
28862 | define_split to become a define_insn_and_split. | |
28863 | ||
28864 | 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org> | |
28865 | ||
28866 | * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change | |
28867 | arguments. | |
28868 | * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments. | |
28869 | * config/rs6000/rs6000.md (epilogue_type): New define_enum. | |
28870 | (sibcall_epilogue): Adjust. | |
28871 | (epilogue): Adjust. | |
28872 | ||
28873 | 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
28874 | ||
28875 | * config.gcc: Move *-*-solaris2.10* from obsolete configurations | |
28876 | to unsupported ones. | |
28877 | Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*. | |
28878 | * config.host: Likewise. | |
28879 | * config/i386/sol2.h (ASM_COMMENT_START): Remove. | |
28880 | * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ && | |
28881 | __svr4__]: Remove "brand" fallback. | |
28882 | [!KSTAT_DATA_STRING]: Remove. | |
28883 | * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]* | |
28884 | to *-*-solaris2*. | |
28885 | (comdat_group): Likewise. | |
28886 | (set_have_as_tls): Likewise. | |
28887 | (gcc_cv_target_dl_iterate_phdr): Likewise. | |
28888 | (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround. | |
28889 | (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround. | |
28890 | * configure: Regenerate. | |
28891 | * doc/install.texi: Simplify Solaris target triplets. | |
28892 | (Specific, i?86-*-solaris2*): Remove Solaris 10 references. | |
28893 | (Specific, *-*-solaris2*): Document Solaris 10 removal. | |
28894 | Remove Solaris 10 references. | |
28895 | Remove obsolete Solaris bug reference. | |
28896 | (Specific, sparc-sun-solaris2.10): Remove. | |
28897 | ||
28898 | 2019-05-14 Uroš Bizjak <ubizjak@gmail.com> | |
28899 | ||
28900 | * config/i386/i386.md (any_div): New code iterator. | |
28901 | (paired_mod): New code attribute. | |
28902 | (sgnprefix): Handle DIV and UDIV RTXes. | |
28903 | (u): Ditto. | |
28904 | (<u>divmod<mode>4): Macroize expander from divmod<mode>4 | |
28905 | and udivmod<mode>4 patterns using any_div code iterator. | |
28906 | (divmod splitters): Macroize splitters using any_div code iterator. | |
28907 | (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition. | |
28908 | (*udivmodsi4_pow2_zext_2): Ditto. | |
28909 | (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext | |
28910 | and *udivmod<mode>4_noext patterns using any_div code iterator. | |
28911 | (*<u>divmod<mode>4_noext_zext_1): Macroize insn from | |
28912 | *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1 | |
28913 | patterns using any_div code iterator. | |
28914 | (*<u>divmod<mode>4_noext_zext_2): Macroize insn from | |
28915 | *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2 | |
28916 | patterns using any_div code iterator. | |
28917 | (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and | |
28918 | udivmodhiqi3 patterns using any_extend code iterator. | |
28919 | ||
28920 | 2019-05-14 Richard Biener <rguenther@suse.de> | |
28921 | H.J. Lu <hongjiu.lu@intel.com> | |
28922 | ||
28923 | PR tree-optimization/88828 | |
28924 | * tree-ssa-forwprop.c (simplify_vector_constructor): Handle | |
28925 | permuting in a single non-constant element not extracted | |
28926 | from a vector. | |
28927 | ||
28928 | 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com> | |
28929 | ||
28930 | * internal-fn.def (SIGNBIT): New. | |
28931 | * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand | |
28932 | defined. | |
28933 | (signbitv4sf2): Likewise. | |
28934 | ||
28935 | 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com> | |
28936 | ||
28937 | PR target/90357 | |
28938 | * config/mips/mips.c (mips_split_move): Skip forward SRC into | |
28939 | next insn when the SRC reg is dead. | |
28940 | ||
28941 | 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com> | |
28942 | ||
28943 | * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1. | |
28944 | (alloc_cand_and_find_basis): Ditto. | |
28945 | (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else. | |
28946 | (create_mul_imm_cand, create_add_ssa_cand): Ditto. | |
28947 | (create_add_imm_cand, slsr_process_cast): Ditto. | |
28948 | (slsr_process_copy, replace_mult_candidate): Ditto. | |
28949 | (replace_rhs_if_not_dup, replace_one_candidate): Ditto. | |
28950 | (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element. | |
28951 | (pass_strength_reduction::execute): Init the first NULL element. | |
28952 | ||
28953 | 2019-05-13 Nathan Sidwell <nathan@acm.org> | |
28954 | ||
28955 | * gcc.c (execute): Simplify cond-expr into if. Reformat comment. | |
28956 | (run_attempt): Reformat line break. | |
28957 | ||
28958 | 2019-05-13 David Edelsohn <dje.gcc@gmail.com> | |
28959 | ||
28960 | PR target/90418 | |
28961 | * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH | |
28962 | data registers in sibcall epilogues. | |
28963 | Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues. | |
28964 | ||
28965 | 2019-05-13 Uroš Bizjak <ubizjak@gmail.com> | |
28966 | ||
28967 | PR target/89221 | |
28968 | * configure.ac (--enable-frame-pointer): | |
28969 | Disable by default for cygwin and mingw. | |
28970 | * configure: Regenerate. | |
28971 | ||
28972 | 2019-05-13 Nathan Sidwell <nathan@acm.org> | |
28973 | ||
28974 | * dwarf2out.c (breakout_comdat_types): Move comment to correct | |
28975 | piece of code. | |
28976 | (const_ok_for_output_1): Balance parens around #if/#else/#endif | |
28977 | (gen_member_die): Move abstract origin check earlier. Only VARs | |
28978 | can be static_inline_p. Simplify splicing control flow. | |
28979 | ||
28980 | 2019-05-13 Richard Biener <rguenther@suse.de> | |
28981 | ||
28982 | * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle | |
28983 | VIEW_CONVERT_EXPR. | |
28984 | (vect_build_slp_tree_1): Likewise. | |
28985 | ||
28986 | 2019-05-13 Richard Biener <rguenther@suse.de> | |
28987 | ||
28988 | PR tree-optimization/90402 | |
28989 | * tree-if-conv.c (tree_if_conversion): Value number only | |
28990 | the loop body by making the latch an exit of the region | |
28991 | as well. | |
28992 | * tree-ssa-sccvn.c (process_bb): Add flag whether to skip | |
28993 | processing PHIs. | |
28994 | (do_rpo_vn): Deal with multiple edges into the entry block | |
28995 | that are not backedges inside the region by skipping PHIs | |
28996 | of the entry block. | |
28997 | ||
28998 | 2019-05-13 Richard Biener <rguenther@suse.de> | |
28999 | ||
29000 | PR tree-optimization/90316 | |
29001 | * tree-ssa-pre.c (insert_aux): Fold into ... | |
29002 | (insert): ... this function. Use a RPO walk to reduce the | |
29003 | number of required iterations. | |
29004 | ||
29005 | 2019-05-13 Martin Liska <mliska@suse.cz> | |
29006 | ||
29007 | PR tree-optimization/90416 | |
29008 | * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate | |
29009 | string instead of passing the second part as va_arg argument. | |
29010 | ||
29011 | 2019-05-13 Martin Liska <mliska@suse.cz> | |
29012 | ||
29013 | PR gcov-profile/90380 | |
29014 | * gcov.c (handle_cycle): Do not support zero cycle count, | |
29015 | it should not be possible. | |
29016 | (path_contains_zero_cycle_arc): New function. | |
29017 | (circuit): Ignore zero cycle arc counts. | |
29018 | ||
29019 | 2019-05-13 Martin Liska <mliska@suse.cz> | |
29020 | ||
29021 | PR gcov-profile/90380 | |
29022 | * gcov.c (enum loop_type): Remove the enum and | |
29023 | the operator. | |
29024 | (handle_cycle): Assert that we should not reach | |
29025 | a negative count. | |
29026 | (circuit): Use loop_found instead of a tri-state loop_type. | |
29027 | (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't | |
29028 | happen. | |
29029 | ||
29030 | 2019-05-12 Iain Sandoe <iain@sandoe.co.uk> | |
29031 | ||
29032 | PR target/82920 | |
29033 | * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New. | |
29034 | (ix86_output_indirect_branch_via_reg): Use output mechanism | |
29035 | accounting for __USER_LABEL_PREFIX__. | |
29036 | (ix86_output_indirect_branch_via_push): Likewise. | |
29037 | (ix86_output_function_return): Likewise. | |
29038 | (ix86_output_indirect_function_return): Likewise. | |
29039 | ||
29040 | 2019-05-12 Richard Sandiford <richard.sandiford@arm.com> | |
29041 | ||
29042 | * doc/md.texi: Document use of code attributes in rtx patterns. | |
29043 | * read-md.h (rtx_reader::rtx_alloc_for_name): New member function. | |
29044 | * read-rtl.c (find_code): Split out search loops into... | |
29045 | (maybe_find_code): ...this new function. | |
29046 | (check_code_iterator): Make the error message more informative. | |
29047 | (check_code_attribute): New function. | |
29048 | (rtx_reader::rtx_alloc_for_name): Likewise. | |
29049 | (rtx_reader::read_rtx_code): Use rtx_alloc_for_name. | |
29050 | * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete. | |
29051 | * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use | |
29052 | <max_opp> directly as an rtx code instead of via a match_operator. | |
29053 | * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise. | |
29054 | (<su>abd<mode>_3): Update accordingly. | |
29055 | ||
29056 | 2019-05-12 Iain Sandoe <iain@sandoe.co.uk> | |
29057 | ||
29058 | * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack | |
29059 | is given, print the state of the EH "save world" computation for | |
29060 | Darwin. | |
29061 | ||
29062 | 2019-05-11 Jakub Jelinek <jakub@redhat.com> | |
29063 | ||
29064 | PR c++/59813 | |
29065 | * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add | |
29066 | EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues. | |
29067 | ||
29068 | 2019-05-11 Uroš Bizjak <ubizjak@gmail.com> | |
29069 | ||
29070 | * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm): | |
29071 | Use pinsrd for TARGET_SSE4_1. | |
29072 | * config/i386/sse.md (movdi_to_sse): Ditto. | |
29073 | ||
29074 | 2019-05-10 Richard Biener <rguenther@suse.de> | |
29075 | ||
29076 | * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id. | |
29077 | (do_rpo_vn): Initialize next_value_id. | |
29078 | ||
29079 | 2019-05-10 Martin Liska <mliska@suse.cz> | |
29080 | ||
29081 | * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD): | |
29082 | Fix plural form. | |
29083 | ||
29084 | 2019-05-10 Jakub Jelinek <jakub@redhat.com> | |
29085 | ||
29086 | PR tree-optimization/90385 | |
29087 | * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME | |
29088 | arguments of the exit phis. | |
29089 | ||
29090 | PR c++/90383 | |
29091 | * tree-inline.h (struct copy_body_data): Add do_not_fold member. | |
29092 | * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if | |
29093 | id->do_not_fold. | |
29094 | (copy_tree_body_r): Likewise. | |
29095 | (copy_fn): Set id.do_not_fold to true. | |
29096 | ||
29097 | 2019-05-10 Martin Liska <mliska@suse.cz> | |
29098 | ||
29099 | * config/i386/i386-expand.c (ix86_expand_floorceildf_32): | |
29100 | Reapply changes from r269790. | |
29101 | ||
29102 | 2019-05-10 Martin Liska <mliska@suse.cz> | |
29103 | ||
29104 | PR middle-end/90340 | |
29105 | * doc/invoke.texi: New params. | |
29106 | * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New. | |
29107 | (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise. | |
29108 | * tree-switch-conversion.c (jump_table_cluster::can_be_handled): | |
29109 | Use it. | |
29110 | * tree-switch-conversion.h (struct jump_table_cluster): | |
29111 | Likewise. | |
29112 | ||
29113 | 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org> | |
29114 | ||
29115 | * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL. | |
29116 | ||
29117 | 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com> | |
29118 | ||
29119 | * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK. | |
29120 | ||
29121 | 2019-05-09 Alexander Monakov <amonakov@ispras.ru> | |
29122 | ||
29123 | PR rtl-optimization/88879 | |
29124 | * sel-sched.c (sel_target_adjust_priority): Remove assert. | |
29125 | ||
29126 | 2019-05-09 Richard Earnshaw <rearnsha@arm.com> | |
29127 | ||
29128 | PR target/90405 | |
29129 | * config/arm/arm.c (callee_saved_reg_p): Move before | |
29130 | thumb_find_work_register. | |
29131 | (thumb1_prologue_unused_call_clobbered_lo_regs): Move before | |
29132 | thumb_find_work_register. Only call df_get_live_out once. | |
29133 | (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise. | |
29134 | (thumb_find_work_register): Use | |
29135 | thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc | |
29136 | algorithms to locate a spare call clobbered reg. | |
29137 | ||
29138 | 2019-05-09 Martin Liska <mliska@suse.cz> | |
29139 | ||
29140 | * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR | |
29141 | and MAX_EXPR in GIMPLE FE format. | |
29142 | ||
29143 | 2019-05-09 Martin Liska <mliska@suse.cz> | |
29144 | ||
29145 | * tree-cfg.c (dump_function_to_file): Dump entry BB count. | |
29146 | * gimple-pretty-print.c (dump_gimple_bb_header): | |
29147 | Dump BB count. | |
29148 | (pp_cfg_jump): Dump edge probability. | |
29149 | * profile-count.c (profile_quality_as_string): Simplify | |
29150 | with a static array. | |
29151 | (parse_profile_quality): New function. | |
29152 | (profile_count::dump): Simplify with a static array. | |
29153 | (profile_count::from_gcov_type): Add new argument. | |
29154 | * profile-count.h (parse_profile_quality): Likewise. | |
29155 | * predict.h (set_hot_bb_threshold): New. | |
29156 | * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD): | |
29157 | New param. | |
29158 | * predict.c (get_hot_bb_threshold): Set from the new param. | |
29159 | (set_hot_bb_threshold): New. | |
29160 | ||
29161 | 2019-05-09 Richard Biener <rguenther@suse.de> | |
29162 | ||
29163 | PR tree-optimization/90395 | |
29164 | * tree-ssa-forwprop.c (pass_forwprop::execute): Do not | |
29165 | rewrite vector stores that throw internally. | |
29166 | ||
29167 | 2019-05-09 Thomas Schwinge <thomas@codesourcery.com> | |
29168 | ||
29169 | * cif-code.def (CHKP): Remove. | |
29170 | ||
29171 | PR target/89221 | |
29172 | * configure.ac (--enable-frame-pointer): Disable by default for | |
29173 | GNU systems. | |
29174 | * configure: Regenerate. | |
29175 | ||
29176 | 2019-05-09 Alan Modra <amodra@gmail.com> | |
29177 | ||
29178 | PR target/89271 | |
29179 | * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES), | |
29180 | (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class. | |
29181 | * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct | |
29182 | cost for general <-> vsx when direct moves are available. | |
29183 | Cost union classes at minimal cost for any reg in the class. | |
29184 | Correct calculation for moves between vsx, float, and altivec. | |
29185 | Don't return a low cost for moves between special regs. Don't | |
29186 | use hard coded register numbers. | |
29187 | (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define. | |
29188 | (rs6000_ira_change_pseudo_allocno_class): New function. | |
29189 | * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal), | |
29190 | (movdi_internal32, movdi_internal64): Remove '*' from vsx register | |
29191 | alternatives. | |
29192 | (movsi_internal1): Don't disparage vector alternatives. | |
29193 | (mov<mode>_internal): Likewise, excepting alternative that | |
29194 | will be split. | |
29195 | * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage | |
29196 | we <- b alternative. | |
29197 | ||
29198 | 2019-05-08 Jakub Jelinek <jakub@redhat.com> | |
29199 | ||
29200 | PR c++/59813 | |
29201 | PR tree-optimization/89060 | |
29202 | * tree-ssa-live.h (live_vars_map): New typedef. | |
29203 | (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare. | |
29204 | * tree-ssa-live.c: Include gimple-walk.h and cfganal.h. | |
29205 | (struct compute_live_vars_data): New type. | |
29206 | (compute_live_vars_visit, compute_live_vars_1, compute_live_vars, | |
29207 | live_vars_at_stmt, destroy_live_vars): New functions. | |
29208 | * tree-tailcall.c: Include tree-ssa-live.h. | |
29209 | (live_vars, live_vars_vec): New global variables. | |
29210 | (find_tail_calls): Perform variable life analysis before punting. | |
29211 | (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec. | |
29212 | * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest | |
29213 | member. | |
29214 | * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument. | |
29215 | Perform variable life analysis to select variables that really need | |
29216 | clobbers added. | |
29217 | (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here, | |
29218 | instead set id->eh_landing_pad_dest and assert it is the same. | |
29219 | (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL. | |
29220 | ||
29221 | 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com> | |
29222 | Richard Earnshaw <rearnsha@arm.com> | |
29223 | ||
29224 | PR target/88167 | |
29225 | * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New | |
29226 | function. | |
29227 | (thumb1_epilogue_unused_call_clobbered_lo_regs): New function. | |
29228 | (thumb1_compute_save_core_reg_mask): Don't force a spare work | |
29229 | register if both the epilogue and prologue can use call-clobbered | |
29230 | regs. | |
29231 | (thumb1_unexpanded_epilogue): Use | |
29232 | thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for | |
29233 | picking temporaries for restoring high regs to match that of the | |
29234 | prologue where possible. | |
29235 | (thumb1_expand_prologue): Add any usable call-clobbered low registers to | |
29236 | the list of work registers. Detect if the return address is still live | |
29237 | at the end of the prologue and avoid using it for a work register if so. | |
29238 | If the return address is not live, add LR to the list of pushable regs | |
29239 | after the first pass. | |
29240 | ||
29241 | 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com> | |
29242 | ||
29243 | PR tree-optimization/90078 | |
29244 | * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file. | |
29245 | (INFTY): Increase the value for infinite cost. | |
29246 | (struct comp_cost): Promote type of members to int64_t. | |
29247 | (infinite_cost): Don't set complexity in initialization. | |
29248 | (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation | |
29249 | overflows to infinite_cost. | |
29250 | (adjust_setup_cost): Promote type of parameter and cost computation | |
29251 | to int64_t. | |
29252 | (struct ainc_cost_data, struct iv_ca): Promote type of member to | |
29253 | int64_t. | |
29254 | (get_scaled_computation_cost_at, determine_iv_cost): Promote type of | |
29255 | cost computation to int64_t. | |
29256 | (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use | |
29257 | int64_t's format specifier in dump. | |
29258 | ||
29259 | 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com> | |
29260 | ||
29261 | PR tree-optimization/90240 | |
29262 | * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost | |
29263 | with respect to scaling factor pre-computed for each basic block. | |
29264 | (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost. | |
29265 | (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost. | |
29266 | (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New. | |
29267 | (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend | |
29268 | live range for array of loop's basic blocks. Cleanup aux field of | |
29269 | loop's basic blocks. | |
29270 | ||
29271 | 2019-05-08 Jakub Jelinek <jakub@redhat.com> | |
29272 | ||
29273 | PR tree-optimization/90356 | |
29274 | * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible. | |
29275 | ||
29276 | 2019-05-07 Wei Xiao <wei3.xiao@intel.com> | |
29277 | ||
29278 | * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET | |
29279 | OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New. | |
29280 | (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET. | |
29281 | (ix86_handle_option): Handle -mavx512bf16. | |
29282 | * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h | |
29283 | to extra_headers. | |
29284 | * config/i386/avx512bf16vlintrin.h: New. | |
29285 | * config/i386/avx512bf16intrin.h: New. | |
29286 | * config/i386/cpuid.h (bit_AVX512BF16): New. | |
29287 | * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16. | |
29288 | * config/i386/i386-builtin-types.def: Add new types. | |
29289 | * config/i386/i386-builtin.def: Add new builtins. | |
29290 | * config/i386/i386-c.c (ix86_target_macros_internal): Define | |
29291 | __AVX512BF16__. | |
29292 | * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16. | |
29293 | (ix86_option_override_internal): Handle BF16. | |
29294 | (ix86_valid_target_attribute_inner_p): Ditto. | |
29295 | * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto. | |
29296 | * config/i386/i386-builtin.c (enum processor_features): Add | |
29297 | F_AVX512BF16. | |
29298 | (static const _isa_names_table isa_names_table): Ditto. | |
29299 | * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New. | |
29300 | (PTA_AVX512BF16): Ditto. | |
29301 | * config/i386/i386.opt: Add -mavx512bf16. | |
29302 | * config/i386/immintrin.h: Include avx512bf16intrin.h | |
29303 | and avx512bf16vlintrin.h. | |
29304 | * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>, | |
29305 | avx512f_cvtneps2bf16_<mode><mask_name>, | |
29306 | avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns. | |
29307 | * config/i386/subst.md (mask_half): Add new subst. | |
29308 | * doc/invoke.texi: Document -mavx512bf16. | |
29309 | ||
29310 | 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org> | |
29311 | ||
29312 | * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr): | |
29313 | Delete declaration. | |
29314 | * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete. | |
29315 | (rs6000_debug_legitimize_reload_address): Delete. | |
29316 | (rs6000_legitimize_reload_address_ptr): Delete. | |
29317 | (rs6000_option_override_internal): Adjust. | |
29318 | (mem_operand_gpr): Adjust comment. | |
29319 | (legitimate_lo_sum_address_p): Ditto. | |
29320 | (rs6000_legitimize_reload_address): Delete. | |
29321 | (rs6000_debug_legitimize_reload_address): Delete. | |
29322 | * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete. | |
29323 | ||
29324 | 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
29325 | ||
29326 | PR target/89765 | |
29327 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
29328 | In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic | |
29329 | to compute vector element selector for both constant and variable | |
29330 | operands. | |
29331 | ||
29332 | 2019-05-07 Uroš Bizjak <ubizjak@gmail.com> | |
29333 | ||
29334 | * config/i386/i386.md (cvt_mnemonic): New mode attribute. | |
29335 | (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and | |
29336 | ashrdi3_cvt using SWI48 mode iterator. | |
29337 | ||
29338 | 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com> | |
29339 | ||
29340 | * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand. | |
29341 | (aarch64_<su>abd<mode>_3): Likewise. | |
29342 | (*aarch64_<su>abd<mode>_3): New define_insn. | |
29343 | (<sur>sad<vsi2qi>): New define_expand. | |
29344 | * config/aarch64/iterators.md: Added MAX_OPP attribute. | |
29345 | * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR. | |
29346 | (build_vect_cond_expr): Likewise. | |
29347 | ||
29348 | 2019-05-07 Uroš Bizjak <ubizjak@gmail.com> | |
29349 | ||
29350 | * cfgexpand.c (asm_clobber_reg_is_valid): Reject | |
29351 | clobbers outside of accessible_reg_set. | |
29352 | * config/i386/i386.c (ix86_conditional_register_usage): | |
29353 | Disable register sets by clearing corresponding bits in | |
29354 | accessible_reg_set. Do not set corresponding bits in fixed_regs, | |
29355 | call_used_regs and don't clear corresponding reg_names array members. | |
29356 | ||
29357 | 2019-05-07 Richard Biener <rguenther@suse.de> | |
29358 | ||
29359 | * tree-vect-stmts.c (vect_is_simple_cond): When vectype is | |
29360 | not specified still compute a comp_vectype for invariant | |
29361 | compares. | |
29362 | ||
29363 | 2019-05-07 Richard Biener <rguenther@suse.de> | |
29364 | ||
29365 | PR tree-optimization/90316 | |
29366 | * tree-ssa-pre.c (translate_vuse_through_block): When | |
29367 | same_valid is NULL do not bother to search for a virtual | |
29368 | PHI continuation. | |
29369 | (phi_translate_1): When operands changed we cannot keep | |
29370 | the same value-number so do not bother to ask whether | |
29371 | that's possible from translate_vuse_through_block. | |
29372 | ||
29373 | 2019-05-07 Martin Liska <mliska@suse.cz> | |
29374 | ||
29375 | * bitmap.c (bitmap_register): Come up with | |
29376 | alloc_descriptor_max_uid and assign it for | |
29377 | a new bitmap. | |
29378 | (register_overhead): Use get_descriptor as | |
29379 | a descriptor. | |
29380 | (release_overhead): New. | |
29381 | (bitmap_elem_to_freelist): Call it. | |
29382 | (bitmap_elt_clear_from): Likewise. | |
29383 | (bitmap_obstack_free): Likewise. | |
29384 | (bitmap_move): Sensitively release memory. | |
29385 | * bitmap.h (struct GTY): Add alloc_descriptor and padding. | |
29386 | (bitmap_initialize): Initialize alloc_descriptor to zero. | |
29387 | * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move. | |
29388 | ||
29389 | 2019-05-07 Richard Biener <rguenther@suse.de> | |
29390 | ||
29391 | * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever | |
29392 | we build a SLP node. Remove max_size and limiting. | |
29393 | (vect_analyze_slp_instance): Record and dump size of the SLP graph. | |
29394 | ||
29395 | 2019-05-07 Richard Biener <rguenther@suse.de> | |
29396 | ||
29397 | PR tree-optimization/90316 | |
29398 | * tree-ssa-alias.h (get_continuation_for_phi): Take walking | |
29399 | limit by reference. | |
29400 | (walk_non_aliased_vuses): Take walking limit argument. | |
29401 | * tree-ssa-alias.c (maybe_skip_until): Take limit and abort | |
29402 | walking if it is reached instead of just counting. | |
29403 | (get_continuation_for_phi): Likewise. | |
29404 | (walk_non_aliased_vuses): Likewise, instead of leaving counter | |
29405 | limiting to the callback. | |
29406 | * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust. | |
29407 | (vn_reference_lookup_3): Likewise. | |
29408 | (vn_reference_lookup_pieces): Likewise. | |
29409 | (vn_reference_lookup): Likewise. | |
29410 | * tree-ssa-pre.c (translate_vuse_through_block): Limit walking. | |
29411 | * tree-ssa-scopedtables.c (vuse_eq): Adjust. | |
29412 | (avail_exprs_stack::lookup_avail_expr): Likewise. | |
29413 | ||
29414 | 2019-05-07 Jan Hubicka <hubicka@ucw.cz> | |
29415 | ||
29416 | * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking | |
29417 | for comparaible types in the second direction even if first one | |
29418 | hits incomparable type. | |
29419 | ||
29420 | 2019-05-07 Richard Biener <rguenther@suse.de> | |
29421 | ||
29422 | PR lto/90369 | |
29423 | * lto-wrapper.c (debug_objcopy): Use the original filename | |
29424 | including archive offset for the filename used for -save-temps. | |
29425 | ||
29426 | 2019-05-07 Li Jia He <helijia@linux.ibm.com> | |
29427 | ||
29428 | * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter | |
29429 | detection. | |
29430 | ||
29431 | 2019-05-06 H.J. Lu <hongjiu.lu@intel.com> | |
29432 | Hongtao Liu <hongtao.liu@intel.com> | |
29433 | ||
29434 | PR target/89750 | |
29435 | PR target/86444 | |
29436 | * config/i386/i386-expand.c (ix86_expand_sse_comi_round): | |
29437 | Modified, original implementation isn't correct. | |
29438 | ||
29439 | 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org> | |
29440 | ||
29441 | * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO) | |
29442 | (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO) | |
29443 | (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO) | |
29444 | (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO) | |
29445 | (FRAME_POINTER_REGNUM): Change numbering. | |
29446 | * config/rs6000/rs6000.c (rs6000_reg_names): Adjust. | |
29447 | (alt_reg_names): Adjust. | |
29448 | (rs6000_conditional_register_usage): Don't mark hard register 64 as | |
29449 | fixed. | |
29450 | * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust. | |
29451 | (DWARF_FRAME_REGISTERS): Delete. | |
29452 | (DWARF2_FRAME_REG_OUT): Fix whitespace. | |
29453 | (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): | |
29454 | Adjust. | |
29455 | (REG_ALLOC_ORDER): Adjust. | |
29456 | (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust. | |
29457 | (REG_CLASS_CONTENTS): Adjust. | |
29458 | (RETURN_ADDR_RTX): Change comment. | |
29459 | (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM | |
29460 | instead of 67. | |
29461 | (REGISTER_NAMES): Adjust. | |
29462 | (ADDITIONAL_REGISTER_NAMES): Adjust. | |
29463 | * config/rs6000/darwin.h (REGISTER_NAMES): Adjust. | |
29464 | ||
29465 | 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org> | |
29466 | ||
29467 | * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO): | |
29468 | Delete. | |
29469 | * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust. | |
29470 | (DWARF_FRAME_REGISTERS): Adjust. | |
29471 | (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): | |
29472 | Adjust. | |
29473 | (REG_ALLOC_ORDER): Adjust. | |
29474 | (enum reg_class): Delete SPR_REGS. | |
29475 | (REG_CLASS_NAMES): Delete SPR_REGS. | |
29476 | (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs. | |
29477 | (REGISTER_NAMES): Adjust. | |
29478 | (ADDITIONAL_REGISTER_NAMES): Adjust. | |
29479 | * config/rs6000/darwin.h (REGISTER_NAMES): Adjust. | |
29480 | * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust. | |
29481 | * config/rs6000/predicates.md (htm_spr_reg_operand): Delete. | |
29482 | * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust. | |
29483 | (htm_spr_regno): Delete. | |
29484 | (htm_expand_builtin): Adjust: the HTM builtins now have one fewer | |
29485 | argument. | |
29486 | (rs6000_dbx_register_number): Adjust. | |
29487 | ||
29488 | 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org> | |
29489 | ||
29490 | * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete. | |
29491 | ||
29492 | 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org> | |
29493 | ||
29494 | * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle | |
29495 | FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ). | |
29496 | ||
29497 | 2019-05-06 Jakub Jelinek <jakub@redhat.com> | |
29498 | ||
29499 | PR tree-optimization/88709 | |
29500 | PR tree-optimization/90271 | |
29501 | * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter. | |
29502 | * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle | |
29503 | non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int | |
29504 | variable. | |
29505 | (imm_store_chain_info::coalesce_immediate_stores): Punt if the size | |
29506 | of the store merging group is larger than | |
29507 | PARAM_STORE_MERGING_MAX_SIZE parameter. | |
29508 | (split_group): Add bzero_first argument. If set, always emit first | |
29509 | the first store which must be = {} of the whole area and then for the | |
29510 | rest of the stores consider all zero bytes as paddings. | |
29511 | (imm_store_chain_info::output_merged_store): Check if first store | |
29512 | is = {} of the whole area and if yes, determine which setting of | |
29513 | bzero_first for split_group gives smaller number of stores. Adjust | |
29514 | split_group callers. | |
29515 | (lhs_valid_for_store_merging_p): Allow decls. | |
29516 | (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with | |
29517 | no elts. | |
29518 | (pass_store_merging::process_store): Likewise. | |
29519 | ||
29520 | 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
29521 | ||
29522 | PR target/89424 | |
29523 | * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add | |
29524 | handling of V1TImode. | |
29525 | ||
29526 | 2019-05-06 Uroš Bizjak <ubizjak@gmail.com> | |
29527 | ||
29528 | PR target/89221 | |
29529 | * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld | |
29530 | and enable_frame_pointer ... | |
29531 | * configure.ac: ... here. Update help strings for | |
29532 | --enable-frame-pointer. | |
29533 | * configure: Regenerate. | |
29534 | * config/i386/i386-options.c (ix86_option_override_internal): Remove | |
29535 | USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead. | |
29536 | * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove. | |
29537 | (USE_X86_64_FRAME_POINTER): Ditto. | |
29538 | ||
29539 | 2019-05-06 Martin Liska <mliska@suse.cz> | |
29540 | ||
29541 | * config.gcc: Append to target_gtfiles and fix indentation. | |
29542 | ||
29543 | 2019-05-06 Richard Biener <rguenther@suse.de> | |
29544 | ||
29545 | PR tree-optimization/90358 | |
29546 | * tree-vect-stmts.c (get_group_load_store_type): Properly | |
29547 | detect unused upper half of load. | |
29548 | (vectorizable_load): Likewise. | |
29549 | ||
29550 | 2019-05-06 Richard Biener <rguenther@suse.de> | |
29551 | ||
29552 | PR tree-optimization/88828 | |
29553 | * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from... | |
29554 | (simplify_vector_constructor): ...here. Handle constants in | |
29555 | the constructor. | |
29556 | ||
29557 | 2019-05-06 Richard Biener <rguenther@suse.de> | |
29558 | ||
29559 | PR tree-optimization/90328 | |
29560 | * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest. | |
29561 | * tree-data-ref.c (dr_may_alias_p): Check whether the clique | |
29562 | is valid in the loop nest before using it. | |
29563 | (initialize_data_dependence_relation): Adjust. | |
29564 | * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing | |
29565 | loop as loop-nest to dr_may_alias_p. | |
29566 | ||
29567 | 2019-05-06 Richard Biener <rguenther@suse.de> | |
29568 | ||
29569 | * dwarf2out.c (mem_loc_descriptor): Initialize int_mode. | |
29570 | ||
29571 | 2019-05-06 Richard Biener <rguenther@suse.de> | |
29572 | ||
29573 | PR tree-optimization/90316 | |
29574 | * tree-ssa-alias.c (maybe_skip_until): Pass in target BB, | |
29575 | compute target on demand. | |
29576 | (get_continuation_for_phi): Remove code walking stmts to | |
29577 | get to a target virtual operand which could end up being | |
29578 | quadratic. | |
29579 | ||
29580 | 2019-05-06 Martin Liska <mliska@suse.cz> | |
29581 | ||
29582 | PR sanitizer/90312 | |
29583 | * config/i386/i386-options.c (ix86_option_override_internal): Error only | |
29584 | when -mabi is selected to a non-default version. | |
29585 | ||
29586 | 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com> | |
29587 | Martin Liska <mliska@suse.cz> | |
29588 | ||
29589 | * Makefile.in: Add lto-dump.texi. | |
29590 | * cgraph.h: Add new functions get_visibility_string and | |
29591 | get_symtab_type_string. | |
29592 | * doc/gcc.texi: Include lto-dump section. | |
29593 | * doc/lto-dump.texi: New file. | |
29594 | * dumpfile.c (dump_switch_p_1): Use parse_dump_option. | |
29595 | (parse_dump_option): Factor out this function. | |
29596 | * dumpfile.h (enum dump_flag): Add new value TDF_ERROR. | |
29597 | (parse_dump_option): Export the function. | |
29598 | * symtab.c (symtab_node::get_visibility_string): New function. | |
29599 | (symtab_node::get_symtab_type_string): Likewise. | |
29600 | ||
29601 | 2019-05-06 Martin Liska <mliska@suse.cz> | |
29602 | ||
29603 | * config/i386/i386-builtins.c: New file. | |
29604 | * config/i386/i386-builtins.h: New file. | |
29605 | * config/i386/i386-expand.c: New file. | |
29606 | * config/i386/i386-expand.h: New file. | |
29607 | * config/i386/i386-features.c: New file. | |
29608 | * config/i386/i386-features.h: New file. | |
29609 | * config/i386/i386-options.c: New file. | |
29610 | * config/i386/i386-options.h: New file. | |
29611 | * config.gcc: Add new files into extra_objs and | |
29612 | target_gtfiles. | |
29613 | * config/i386/i386.c: Split content of the file | |
29614 | into newly introduced files. | |
29615 | * config/i386/i386.h: Declare common variables | |
29616 | and macros. | |
29617 | * config/i386/t-i386: Define dependencies for new files. | |
29618 | ||
29619 | 2019-05-03 Richard Earnshaw <rearnsha@arm.com> | |
29620 | ||
29621 | PR target/89400 | |
29622 | * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1. | |
29623 | Restrict 'all' variant to 32-bit configurations. | |
29624 | (unaligned_loadhiu): Likewise. | |
29625 | (unaligned_storehi): Likewise. | |
29626 | (unaligned_storesi): Likewise. | |
29627 | (unaligned_loadhis): Disable when compiling for thumb1. | |
29628 | ||
29629 | 2019-05-03 Marc Glisse <marc.glisse@inria.fr> | |
29630 | ||
29631 | PR tree-optimization/90269 | |
29632 | * tree-loop-distribution.c (find_seed_stmts_for_distribution): | |
29633 | Ignore clobbers. | |
29634 | ||
29635 | 2019-05-03 Martin Liska <mliska@suse.cz> | |
29636 | ||
29637 | * hash-map.h: Add is_empty function. | |
29638 | * hash-set.h: Likewise. | |
29639 | * hash-table.h: Likewise. | |
29640 | * dwarf2out.c (dwarf2out_finish): Use is_empty instead of | |
29641 | elements () == 0 (and similar usages). | |
29642 | * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise. | |
29643 | * gimplify.c (gimplify_bind_expr): Likewise. | |
29644 | (gimplify_switch_expr): Likewise. | |
29645 | * hash-map-tests.c (test_map_of_strings_to_int): Likewise. | |
29646 | * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise. | |
29647 | * postreload-gcse.c (dump_hash_table): Likewise. | |
29648 | (gcse_after_reload_main): Likewise. | |
29649 | * predict.c (combine_predictions_for_bb): Likewise. | |
29650 | * tree-parloops.c (reduction_phi): Likewise. | |
29651 | (separate_decls_in_region): Likewise. | |
29652 | (transform_to_exit_first_loop): Likewise. | |
29653 | (gen_parallel_loop): Likewise. | |
29654 | (gather_scalar_reductions): Likewise. | |
29655 | (try_create_reduction_list): Likewise. | |
29656 | * var-tracking.c (dump_vars): Likewise. | |
29657 | (emit_notes_for_changes): Likewise. | |
29658 | (vt_emit_notes): Likewise. | |
29659 | ||
29660 | 2019-05-03 Richard Biener <rguenther@suse.de> | |
29661 | ||
29662 | PR tree-optimization/90316 | |
29663 | * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries | |
29664 | before running VN. | |
29665 | ||
29666 | 2019-05-03 Richard Biener <rguenther@suse.de> | |
29667 | ||
29668 | * tree-vect-stmts.c (get_group_load_store_type): Avoid | |
29669 | peeling for gaps by loading only lower halves of vectors | |
29670 | if possible. | |
29671 | (vectorizable_load): Likewise. | |
29672 | ||
29673 | 2019-05-03 Richard Biener <rguenther@suse.de> | |
29674 | ||
29675 | PR middle-end/89518 | |
29676 | * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A. | |
29677 | ||
29678 | 2019-05-03 Richard Biener <rguenther@suse.de> | |
29679 | ||
29680 | PR middle-end/87314 | |
29681 | * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): | |
29682 | Handle STRING_CST vs DECL or STRING_CST. | |
29683 | ||
29684 | 2019-05-03 Richard Biener <rguenther@suse.de> | |
29685 | ||
29686 | PR tree-optimization/88963 | |
29687 | * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite | |
29688 | vector loads feeding only BIT_FIELD_REFs to component | |
29689 | loads. Rewrite stores fed by CONSTRUCTORs to component | |
29690 | stores. | |
29691 | ||
29692 | 2019-05-03 Jakub Jelinek <jakub@redhat.com> | |
29693 | ||
29694 | * opts.h (finish_options): Remove lang_mask argument. | |
29695 | (print_help, help_option_argument): Declare. | |
29696 | * opts.c (print_help): Remove forward declaration, no longer static. | |
29697 | (finish_options): Remove lang_mask argument, don't call print_help | |
29698 | here. | |
29699 | * opts-global.c (decode_options): Adjust finish_option caller, call | |
29700 | print_help here. | |
29701 | ||
29702 | PR tree-optimization/90303 | |
29703 | * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use | |
29704 | TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode. | |
29705 | ||
29706 | 2019-05-03 Richard Biener <rguenther@suse.de> | |
29707 | ||
29708 | PR tree-optimization/89698 | |
29709 | * gimple-fold.c (canonicalize_constructor_val): Early out | |
29710 | for constants, handle unfolded INTEGER_CSTs as they appear in | |
29711 | C++ virtual table ctors. | |
29712 | ||
29713 | 2019-05-03 Richard Biener <rguenther@suse.de> | |
29714 | ||
29715 | * passes.c (execute_function_todo): Remove dead code. | |
29716 | ||
29717 | 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org> | |
29718 | ||
29719 | * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use | |
29720 | the internal register number, for any "real" register. | |
29721 | ||
29722 | 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org> | |
29723 | ||
29724 | * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the | |
29725 | correct numbers for TFHAR, TFIAR, TEXASR. | |
29726 | ||
29727 | 2019-05-02 Richard Biener <rguenther@suse.de> | |
29728 | ||
29729 | PR tree-optimization/89653 | |
29730 | * tree-ssa-loop.c (pass_data_tree_loop_init): Execute | |
29731 | update-address-taken before the pass. | |
29732 | * passes.def (pass_tree_loop_init): Put comment before it. | |
29733 | ||
29734 | 2019-05-02 Richard Biener <rguenther@suse.de> | |
29735 | ||
29736 | PR tree-optimization/89509 | |
29737 | * tree-ssa-structalias.c (compute_dependence_clique): Look | |
29738 | at the first subvar when determining whether it is restrict. | |
29739 | ||
29740 | 2019-05-02 Richard Biener <rguenther@suse.de> | |
29741 | ||
29742 | PR tree-optimization/90273 | |
29743 | * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate | |
29744 | useless debug stmts. | |
29745 | ||
29746 | 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com> | |
29747 | ||
29748 | * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE | |
29749 | ACLE branch. | |
29750 | * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from | |
29751 | SVE ACLE branch. | |
29752 | * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a | |
29753 | VEC_COND_EXPR be inserted to emulate a conditional internal function. | |
29754 | (build_vect_cond_expr): Emit the VEC_COND_EXPR. | |
29755 | (vectorizable_reduction): Use the functions above to vectorize in a | |
29756 | fully masked loop codes that don't have a conditional internal | |
29757 | function. | |
29758 | ||
29759 | 2019-05-02 Martin Liska <mliska@suse.cz> | |
29760 | ||
29761 | * cgraphclones.c: Call valid_attribute_p with 1 for | |
29762 | target_clone. | |
29763 | * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as | |
29764 | it's for target attribute. | |
29765 | * config/i386/i386-protos.h (ix86_valid_target_attribute_tree): | |
29766 | Add new boolean argument. | |
29767 | * config/i386/i386.c (ix86_valid_target_attribute_inner_p): | |
29768 | Likewise. | |
29769 | (ix86_valid_target_attribute_tree): Pass target_clone_attr | |
29770 | to ix86_valid_target_attribute_inner_p. | |
29771 | (ix86_valid_target_attribute_p): Pass flags argument to | |
29772 | ix86_valid_target_attribute_inner_p. | |
29773 | (get_builtin_code_for_version): Use 0 as it's target attribute. | |
29774 | ||
29775 | 2019-05-02 Martin Liska <mliska@suse.cz> | |
29776 | ||
29777 | * gcc.c (process_command): Add dummy file only | |
29778 | if n_infiles == 0. | |
29779 | * opts-global.c (decode_options): Pass lang_mask. | |
29780 | * opts.c (print_help): New function. | |
29781 | (finish_options): Print --help if help_option_argument | |
29782 | is set. | |
29783 | (common_handle_option): Factor out content of OPT__help_ | |
29784 | into print_help. | |
29785 | * opts.h (finish_options): Add new argument. | |
29786 | ||
29787 | 2019-05-02 Martin Liska <mliska@suse.cz> | |
29788 | ||
29789 | PR target/88809 | |
29790 | * config/i386/i386.c (ix86_expand_strlen): Use strlen call. | |
29791 | With -minline-all-stringops use inline expansion using 4B loop. | |
29792 | * doc/invoke.texi: Document the change of | |
29793 | -minline-all-stringops. | |
29794 | ||
29795 | 2019-05-01 Jeff Law <law@redhat.com> | |
29796 | ||
29797 | PR tree-optimization/88797 | |
29798 | * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the | |
29799 | PHI feeds a conditional on the RHS of an assignment. | |
29800 | ||
29801 | 2019-04-30 Andrew Waterman <andrew@sifive.com> | |
29802 | Jim Wilson <jimw@sifive.com> | |
29803 | ||
29804 | * config/riscv/constraints.md (L): New. | |
29805 | * config/riscv/predicates.md (lui_operand): New. | |
29806 | (sfb_alu_operand): New. | |
29807 | * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare. | |
29808 | * config/riscv/riscv.c (riscv_expand_conditional_move): New. | |
29809 | * config/riscv/riscv.h (TARGET_SFB_ALU): New. | |
29810 | * config/riscv/risc.md (type): Add sfb_alu. | |
29811 | (branch<mode>): Renamed from branch_order<mode>. Change predicate for | |
29812 | operand 3 to reg_or_0_operand. In output string, change %3 to %z3. | |
29813 | (branch_zero<mode>): Delete. | |
29814 | (mov<mode>cc): New. | |
29815 | (mov<GPR:mode><X:mode>cc): Likewise. | |
29816 | * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses. | |
29817 | ||
29818 | 2019-04-30 Nathan Sidwell <nathan@acm.org> | |
29819 | ||
29820 | * tree.h (MARK_TS_EXP): New. | |
29821 | ||
29822 | 2019-04-30 Martin Liska <mliska@suse.cz> | |
29823 | ||
29824 | * opts.c (enable_warning_as_error): Provide hints | |
29825 | for unknown options. | |
29826 | ||
29827 | 2019-04-30 Martin Liska <mliska@suse.cz> | |
29828 | ||
29829 | PR debug/90288 | |
29830 | * doc/invoke.texi: Add missing dash for gas-locview-support | |
29831 | and gno-as-locview-support. | |
29832 | ||
29833 | 2019-04-30 Jakub Jelinek <jakub@redhat.com> | |
29834 | ||
29835 | PR target/89093 | |
29836 | * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip | |
29837 | whitespace at the start of target attribute string. | |
29838 | ||
29839 | 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
29840 | ||
29841 | PR target/86538 | |
29842 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): | |
29843 | Define __ARM_FEATURE_ATOMICS. | |
29844 | ||
29845 | 2019-04-30 Martin Liska <mliska@suse.cz> | |
29846 | ||
29847 | * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp | |
29848 | into built_in_function enum. Remove code for endp == 2 and | |
29849 | use BUILT_IN_* constants. | |
29850 | (gimple_fold_builtin): Call the function with fcode. | |
29851 | ||
29852 | 2019-04-30 Martin Liska <mliska@suse.cz> | |
29853 | ||
29854 | * config/i386/i386.c (ix86_builtin_reciprocal): Cast | |
29855 | DECL_FUNCTION_CODE into ix86_builtins enum before | |
29856 | the switch statement. | |
29857 | ||
29858 | 2019-04-30 Jakub Jelinek <jakub@redhat.com> | |
29859 | ||
29860 | PR tree-optimization/89475 | |
29861 | * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64} | |
29862 | calls. | |
29863 | ||
29864 | 2019-04-30 Martin Liska <mliska@suse.cz> | |
29865 | ||
29866 | PR translation/90274 | |
29867 | * opts.c (print_filtered_help): Wrap string in _(...). | |
29868 | ||
29869 | 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com> | |
29870 | ||
29871 | PR tree-optimization/90240 | |
29872 | Revert: | |
29873 | 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> | |
29874 | ||
29875 | PR tree-optimization/90078 | |
29876 | * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add | |
29877 | checks for infinite_cost overflow. | |
29878 | ||
29879 | 2019-04-29 Jeff Law <law@redhat.com> | |
29880 | ||
29881 | * passes.def: Move -Wrestrict pass after copy propagation. | |
29882 | ||
29883 | 2019-04-29 Maya Rashish <coypu@sdf.org> | |
29884 | ||
29885 | * config.gcc (default_gnu_indirect_function): Default to yes | |
29886 | for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*, | |
29887 | sparc*-*-netbsd*, x86_64-*-netbsd*. | |
29888 | ||
29889 | 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru> | |
29890 | ||
29891 | * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases | |
29892 | where cond2 is NE_EXPR. | |
29893 | (is_value_included_in): Update comment. | |
29894 | ||
29895 | 2019-04-29 Richard Biener <rguenther@suse.de> | |
29896 | ||
29897 | PR tree-optimization/90278 | |
29898 | * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean | |
29899 | EH on comparison simplification. | |
29900 | ||
29901 | 2019-04-29 Jason Merrill <jason@redhat.com> | |
29902 | ||
29903 | PR c++/82081 - tail call optimization breaks noexcept | |
29904 | * tree-tailcall.c (find_tail_calls): Don't turn a call from a | |
29905 | nothrow function to a might-throw function into a tail call. | |
29906 | ||
29907 | 2019-04-29 Richard Sandiford <richard.sandiford@arm.com> | |
29908 | ||
29909 | * tree-data-ref.h (data_dependence_relation::inner_loop): Delete. | |
29910 | (DDR_INNER_LOOP): Likewise. | |
29911 | * tree-data-ref.c (dump_data_dependence_relation): Update accordingly. | |
29912 | (initialize_data_dependence_relation): Likewise. | |
29913 | (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP. | |
29914 | ||
29915 | 2019-04-29 Jakub Jelinek <jakub@redhat.com> | |
29916 | ||
29917 | PR rtl-optimization/90257 | |
29918 | * cfgrtl.c (flow_active_insn_p): Return true for USE of a function | |
29919 | return value. | |
29920 | ||
29921 | Revert the revert: | |
29922 | 2019-04-21 H.J. Lu <hongjiu.lu@intel.com> | |
29923 | ||
29924 | PR target/90178 | |
29925 | Revert: | |
29926 | 2018-11-21 Uros Bizjak <ubizjak@gmail.com> | |
29927 | ||
29928 | Revert the revert: | |
29929 | 2013-10-26 Vladimir Makarov <vmakarov@redhat.com> | |
29930 | ||
29931 | Revert: | |
29932 | 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> | |
29933 | ||
29934 | * lra-spills.c (lra_final_code_change): Remove useless move insns. | |
29935 | ||
29936 | 2019-04-29 Richard Biener <rguenther@suse.de> | |
29937 | ||
29938 | * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER} | |
29939 | rhs issue a reset. | |
29940 | ||
29941 | 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org> | |
29942 | ||
29943 | * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h, | |
29944 | varasm.h, and netbsd-protos.h. | |
29945 | ||
29946 | 2019-04-27 Uroš Bizjak <ubizjak@gmail.com> | |
29947 | ||
29948 | PR target/89261 | |
29949 | * config/i386/i386-protos.h (ix86_data_alignment): Change | |
29950 | the second argument type to unsigned int. | |
29951 | * config/i386/i386.c (ix86_data_alignment): Change "align" | |
29952 | argument type to unsigned int. | |
29953 | ||
29954 | 2019-04-27 Martin Liska <mliska@suse.cz> | |
29955 | ||
29956 | PR middle-end/90258 | |
29957 | * opt-suggestions.c (option_proposer::build_option_suggestions): | |
29958 | When get_valid_option_values returns empty values, add the | |
29959 | misspelling candidate. | |
29960 | ||
29961 | 2019-04-26 Jim Wilson <jimw@sifive.com> | |
29962 | ||
29963 | * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode | |
29964 | parameter. | |
29965 | * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode. | |
29966 | Pass orig_mode to riscv_build_integer. | |
29967 | (riscv_split_integer): Pass mode to riscv_move_integer. | |
29968 | (riscv_legitimize_const_move): Likewise. | |
29969 | (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local | |
29970 | promoted_mode. Replace force_reg call with code to load constant into | |
29971 | promoted reg and then subreg it for the store. | |
29972 | * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to | |
29973 | riscv_move_integer. | |
29974 | ||
29975 | 2018-04-26 Eugene Sharygin <eush@ispras.ru> | |
29976 | ||
29977 | * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with | |
29978 | corrupt codes. | |
29979 | ||
29980 | 2019-04-26 Richard Sandiford <richard.sandiford@arm.com> | |
29981 | ||
29982 | * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add | |
29983 | commentary about the encoding of precision. | |
29984 | ||
29985 | 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org> | |
29986 | ||
29987 | * config/i386/freebsd64.h: Add bits for 32-bit multilib support. | |
29988 | * config/i386/t-freebsd64: New file. | |
29989 | * config.gcc: Add the t-freebsd64 for multilib support. | |
29990 | ||
29991 | 2019-04-25 Uroš Bizjak <ubizjak@gmail.com> | |
29992 | ||
29993 | * doc/extend.texi (vector_size): Add missing comma after @xref. | |
29994 | ||
29995 | 2019-04-25 Jakub Jelinek <jakub@redhat.com> | |
29996 | ||
29997 | * BASE-VER: Set to 10.0.0. | |
29998 | ||
29999 | 2019-04-25 Richard Biener <rguenther@suse.de> | |
30000 | ||
30001 | PR middle-end/89765 | |
30002 | * gimplify.c (gimplify_expr): Avoid turning a lvalue | |
30003 | VIEW_CONVERT_EXPR into one operating on an rvalue. | |
30004 | ||
30005 | 2019-04-25 H.J. Lu <hongjiu.lu@intel.com> | |
30006 | ||
30007 | PR target/89929 | |
30008 | * config/i386/i386.c (feature_priority): Moved to file scope. | |
30009 | (processor_features): Likewise. | |
30010 | (processor_model): Likewise. | |
30011 | (_arch_names_table): Likewise. | |
30012 | (arch_names_table): Likewise. | |
30013 | (_feature_list): Removed. | |
30014 | (feature_list): Likewise. | |
30015 | (_isa_names_table): Moved to file scope. Add priority. | |
30016 | (isa_names_table): Likewise. | |
30017 | (get_builtin_code_for_version): Replace feature_list with | |
30018 | isa_names_table. Update error message for P_ZERO priority. | |
30019 | ||
30020 | 2019-04-25 Richard Biener <rguenther@suse.de> | |
30021 | ||
30022 | * tree-pass.h (make_pass_phi_only_cprop): Remove. | |
30023 | * timevar.def (TV_TREE_PHI_CPROP): Likewise. | |
30024 | ||
30025 | 2019-04-24 Jeff Law <law@redhat.com> | |
30026 | ||
30027 | PR tree-optimization/90037 | |
30028 | * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c | |
30029 | * passes.def: Replace all instance of phi-only cprop with the | |
30030 | lattice propagator. Move propagation pass from after erroneous | |
30031 | path isolation to before erroneous path isolation. | |
30032 | * tree-ssa-phionlycprop.c: Remove. | |
30033 | ||
30034 | 2019-04-24 Richard Biener <rguenther@suse.de> | |
30035 | ||
30036 | PR middle-end/90213 | |
30037 | * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication | |
30038 | by size and BITS_PER_UNIT on poly-wide-ints. | |
30039 | ||
30040 | 2019-04-25 Richard Biener <rguenther@suse.de> | |
30041 | ||
30042 | PR middle-end/90194 | |
30043 | * match.pd: Add pattern to simplify view-conversion of an | |
30044 | empty constructor. | |
30045 | ||
30046 | 2019-04-24 Clement Chigot <clement.chigot@atos.net> | |
30047 | ||
30048 | * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable | |
30049 | OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags | |
30050 | for Go on 32 bit AIX. | |
30051 | * config/rs6000/aix72.h: Likewise. | |
30052 | ||
30053 | 2019-04-24 Jakub Jelinek <jakub@redhat.com> | |
30054 | ||
30055 | PR target/90193 | |
30056 | * rtl.c (classify_insn): Return JUMP_INSN for asm goto. | |
30057 | * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET. | |
30058 | ||
30059 | 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com> | |
30060 | ||
30061 | PR target/89952 | |
30062 | * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs | |
30063 | from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also | |
30064 | for restored hard frame pointer. | |
30065 | (s390_sched_dependencies_evaluation): Implement new target hook. | |
30066 | (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition. | |
30067 | ||
30068 | 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com> | |
30069 | ||
30070 | * config/arc/arc-options.def: Fix typos and spelling mistakes. | |
30071 | * config/arc/arc.c (arc_init): Cleanup warning message. | |
30072 | (arc_override_options): Likewise. | |
30073 | ||
30074 | 2019-04-24 Jakub Jelinek <jakub@redhat.com> | |
30075 | ||
30076 | PR target/90187 | |
30077 | * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into | |
30078 | a register if both if_true and if_false are MEMs. | |
30079 | ||
30080 | PR tree-optimization/90208 | |
30081 | * tree-cfg.c (remove_bb): Move forced labels from removed bbs | |
30082 | after labels of new_bb, not before them. | |
30083 | ||
30084 | PR tree-optimization/90211 | |
30085 | * tree-parloops.c (try_create_reduction_list): Ignore phi arguments | |
30086 | which are not SSA_NAMEs. | |
30087 | ||
30088 | 2018-04-23 Sudakshina Das <sudi.das@arm.com> | |
30089 | ||
30090 | * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for | |
30091 | AArch64. | |
30092 | (aarch64_file_end_indicate_exec_stack): Add gnu note section. | |
30093 | ||
30094 | 2019-04-23 Roman Zhuykov <zhroma@ispras.ru> | |
30095 | ||
30096 | PR rtl-optimization/87979 | |
30097 | * modulo-sched.c (sms_schedule): Start ii value "mii" should | |
30098 | not equal zero. | |
30099 | ||
30100 | 2019-04-23 Roman Zhuykov <zhroma@ispras.ru> | |
30101 | ||
30102 | PR rtl-optimization/84032 | |
30103 | * modulo-sched.c (ps_insn_find_column): Change condition so that | |
30104 | branch will always be the last insn in a row inside partial | |
30105 | schedule. | |
30106 | ||
30107 | 2019-04-23 Richard Biener <rguenther@suse.de> | |
30108 | ||
30109 | PR debug/90131 | |
30110 | * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add | |
30111 | dest_single_pred_p argument. | |
30112 | (remove_forwarder_block): Adjust. | |
30113 | (remove_forwarder_block_with_phi): Likewise. | |
30114 | ||
30115 | 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
30116 | Bernd Edlinger <bernd.edlinger@hotmail.de> | |
30117 | Jakub Jelinek <jakub@redhat.com> | |
30118 | ||
30119 | PR target/89093 | |
30120 | * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose | |
30121 | if used with general-regs-only. | |
30122 | (arm_conditional_register_usage): Don't add non-general regs if | |
30123 | general-regs-only. | |
30124 | (arm_valid_target_attribute_rec): Handle general-regs-only. | |
30125 | * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if | |
30126 | general-regs-only. | |
30127 | (TARGET_HARD_FLOAT_SUB): Define. | |
30128 | (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB. | |
30129 | (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY. | |
30130 | (TARGET_REALLY_IWMMXT2): Likewise. | |
30131 | * config/arm/arm.opt: Add -mgeneral-regs-only. | |
30132 | * doc/extend.texi: Document ARM general-regs-only target. | |
30133 | * doc/invoke.texi: Document ARM -mgeneral-regs-only. | |
30134 | ||
30135 | 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> | |
30136 | ||
30137 | PR tree-optimization/90078 | |
30138 | * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add | |
30139 | checks for infinite_cost overflow. | |
30140 | ||
30141 | 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com> | |
30142 | ||
30143 | PR tree-optimization/90021 | |
30144 | * tree-chrec.c (evolution_function_is_univariate_p): New parameter | |
30145 | and check univariate against it. | |
30146 | * tree-chrec.h (evolution_function_is_univariate_p): New parameter. | |
30147 | * tree-data-ref.c (add_other_self_distances): Pass new argument. | |
30148 | ||
30149 | 2019-04-21 H.J. Lu <hongjiu.lu@intel.com> | |
30150 | ||
30151 | PR target/90178 | |
30152 | Revert: | |
30153 | 2018-11-21 Uros Bizjak <ubizjak@gmail.com> | |
30154 | ||
30155 | Revert the revert: | |
30156 | 2013-10-26 Vladimir Makarov <vmakarov@redhat.com> | |
30157 | ||
30158 | Revert: | |
30159 | 2013-10-25 Vladimir Makarov <vmakarov@redhat.com> | |
30160 | ||
30161 | * lra-spills.c (lra_final_code_change): Remove useless move insns. | |
30162 | ||
30163 | 2019-04-21 Iain Sandoe <iain@sandoe.co.uk> | |
30164 | ||
30165 | * config/rs6000/rs6000.md (group_end_nop): Emit insn register | |
30166 | names using operand format, rather than hard-wired. | |
30167 | (speculation_barrier): Likewise. | |
30168 | ||
30169 | 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org> | |
30170 | ||
30171 | PR tree-optimization/88055 | |
30172 | * tree-call-cdce.c (comparison_code_if_no_nans): New function. | |
30173 | (gen_one_condition): Use it if !HONOR_NANS. | |
30174 | ||
30175 | 2019-04-19 Jakub Jelinek <jakub@redhat.com> | |
30176 | ||
30177 | PR middle-end/90139 | |
30178 | * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return | |
30179 | assign_temp instead of gen_reg_rtx. | |
30180 | ||
30181 | 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org> | |
30182 | ||
30183 | PR translation/90118 | |
30184 | * config/aarch64/aarch64.c (aarch64_override_options_internal): | |
30185 | Add missing space before %<. | |
30186 | ||
30187 | 2019-04-18 Peter Bergner <bergner@linux.ibm.com> | |
30188 | ||
30189 | PR rtl-optimization/87871 | |
30190 | * ira-lives.c (make_object_dead): Don't add conflicts to | |
30191 | TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts. | |
30192 | ||
30193 | 2019-04-18 Martin Sebor <msebor@redhat.com> | |
30194 | ||
30195 | PR middle-end/89797 | |
30196 | * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U. | |
30197 | * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid | |
30198 | assuming type size fits in SHWI. | |
30199 | ||
30200 | 2019-04-18 Jan Hubicka <hubicka@ucw.cz> | |
30201 | ||
30202 | PR ipa/85051 | |
30203 | * ipa-inline.c (flatten_function): New parameter UPDATE. | |
30204 | (ipa_inline, early_inliner): Use it. | |
30205 | ||
30206 | 2019-04-18 Richard Sandiford <richard.sandiford@arm.com> | |
30207 | ||
30208 | * fold-const.c (int_const_binop): Return early on failure. | |
30209 | ||
30210 | 2019-04-18 Richard Sandiford <richard.sandiford@arm.com> | |
30211 | ||
30212 | PR middle-end/85164 | |
30213 | * combine.c (force_int_to_mode): Cast the argument rather than | |
30214 | the result of known_alignment. | |
30215 | * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p. | |
30216 | ||
30217 | 2019-04-18 Richard Biener <rguenther@suse.de> | |
30218 | ||
30219 | PR debug/90131 | |
30220 | * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split | |
30221 | out from ... | |
30222 | (remove_forwarder_block): ... here. | |
30223 | (remove_forwarder_block_with_phi): Also move debug stmts here. | |
30224 | ||
30225 | 2019-04-18 Jakub Jelinek <jakub@redhat.com> | |
30226 | ||
30227 | PR translation/79183 | |
30228 | * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of | |
30229 | inform where appropriate. | |
30230 | ||
30231 | 2019-04-18 Richard Biener <rguenther@suse.de> | |
30232 | ||
30233 | * tree.c (get_qualified_type): Put found type variants at the | |
30234 | head of the variant list. | |
30235 | ||
30236 | 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org> | |
30237 | ||
30238 | * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo. | |
30239 | ||
30240 | 2019-04-17 Hongtao Liu <hongtao.liu@intel.com> | |
30241 | ||
30242 | PR target/90125 | |
30243 | * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd, | |
30244 | _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd, | |
30245 | _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd, | |
30246 | _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd, | |
30247 | _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3. | |
30248 | ||
30249 | 2019-04-17 Peter Bergner <bergner@linux.ibm.com> | |
30250 | ||
30251 | * ira-conflicts.c (print_allocno_conflicts): Always print something, | |
30252 | even for allocno's with no conflicts. | |
30253 | (print_conflicts): Print an extra newline. | |
30254 | ||
30255 | 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org> | |
30256 | ||
30257 | * auto-inc-dec.c (attempt_change): Set the alignment of the | |
30258 | temporary memory to that of the original. | |
30259 | ||
30260 | 2019-04-17 Joao Moreira <jmoreira@suse.de> | |
30261 | ||
30262 | * targhooks.c (default_print_patchable_function_entry): Emit | |
30263 | __patchable_function_entries section with writable flags to allow | |
30264 | relocation resolution. | |
30265 | ||
30266 | 2019-04-17 Jonny Grant <jg@jguk.org> | |
30267 | ||
30268 | * collect2.c (main): Change gcc.gnu.org URL to HTTPS. | |
30269 | ||
30270 | 2019-04-17 Jakub Jelinek <jakub@redhat.com> | |
30271 | ||
30272 | PR middle-end/90095 | |
30273 | * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P | |
30274 | on lowpart SUBREGs. | |
30275 | ||
30276 | 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com> | |
30277 | ||
30278 | * config/arc/arc.c (arc_init): Format diagnostic string. | |
30279 | (arc_override_options): Likewise. | |
30280 | (check_if_valid_regno_const): Likewise. | |
30281 | (arc_reorg): Likewise. | |
30282 | ||
30283 | 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org> | |
30284 | ||
30285 | PR target/17108 | |
30286 | * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern | |
30287 | name. | |
30288 | (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern | |
30289 | name. | |
30290 | * config/rs6000/rs6000.md (bits): Add entries for SF and DF. | |
30291 | (*movdi_update1): Use Pmode. | |
30292 | (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p. | |
30293 | (movdi_<mode>_update_stack): Rename to ... | |
30294 | (movdi_update_stack): ... this. Fix comment. Change condition. Don't | |
30295 | use Pmode. | |
30296 | (*movsi_update1): Use Pmode. | |
30297 | (*movsi_update2): Use Pmode. | |
30298 | (movsi_update): Rename to ... | |
30299 | (movsi_<mode>_update): ... this. Use Pmode. | |
30300 | (movsi_update_stack): Fix condition. | |
30301 | (*movhi_update1): Use Pmode. Fix argument to | |
30302 | avoiding_indexed_address_p. | |
30303 | (*movhi_update2): Ditto. | |
30304 | (*movhi_update3): Ditto. | |
30305 | (*movhi_update4): Ditto. | |
30306 | (*movqi_update1): Ditto. | |
30307 | (*movqi_update2): Ditto. | |
30308 | (*movqi_update3): Ditto. | |
30309 | (*movsf_update1, *movdf_update1): Merge, rename to... | |
30310 | (*mov<mode>_update1): This. Use Pmode. Fix argument to | |
30311 | avoiding_indexed_address_p. Add "size" attribute. | |
30312 | (*movsf_update2, *movdf_update2): Merge, rename to... | |
30313 | (*mov<mode>_update2): This. Ditto. | |
30314 | (*movsf_update3): Use Pmode. Fix argument to | |
30315 | avoiding_indexed_address_p. | |
30316 | (*movsf_update4): Ditto. | |
30317 | (allocate_stack): Simplify condition. Adjust pattern names. | |
30318 | ||
30319 | 2019-04-17 Jakub Jelinek <jakub@redhat.com> | |
30320 | ||
30321 | PR target/89093 | |
30322 | * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip | |
30323 | whitespace at the start of target attribute string. | |
30324 | ||
30325 | 2019-04-16 Pat Haugen <pthaugen@us.ibm.com> | |
30326 | ||
30327 | PR target/84369 | |
30328 | * config/rs6000/power9.md: Add store forwarding bypass. | |
30329 | ||
30330 | 2019-04-16 Alexandre Oliva <aoliva@redhat.com> | |
30331 | ||
30332 | PR debug/89528 | |
30333 | * valtrack.c (dead_debug_insert_temp): Reset debug references | |
30334 | to the return value of a call being removed. | |
30335 | ||
30336 | 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com> | |
30337 | ||
30338 | * config/arc/arc-protos.h (arc_register_move_cost): Remove. | |
30339 | * config/arc/arc.c (arc_register_move_cost): Re-purpose it to | |
30340 | implement target hook. | |
30341 | (arc_memory_move_cost): New function. | |
30342 | (TARGET_REGISTER_MOVE_COST): Define. | |
30343 | (TARGET_MEMORY_MOVE_COST): Likewise. | |
30344 | * config/arc/arc.h (REGISTER_MOVE_COST): Remove. | |
30345 | (MEMORY_MOVE_COST): Likewise. | |
30346 | ||
30347 | 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com> | |
30348 | ||
30349 | * config/arc/arc.md (sibcall_insn): Use Rcd constraint. | |
30350 | (sibcall_value_insn): Likewise. | |
30351 | * config/arc/constraints.md (Rs5): Remove. | |
30352 | ||
30353 | 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com> | |
30354 | ||
30355 | * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes | |
30356 | for last two fake registers. | |
30357 | (arc_conditional_register_usage): Make sure fake frame and arg | |
30358 | pointer regs are in general regs class. | |
30359 | (FRAME_POINTER_MASK): Remove. | |
30360 | (RETURN_ADDR_MASK): Remove. | |
30361 | (arc_must_save_register): Use hard frame regnum. | |
30362 | (frame_restore_reg): Use hard_frame_pointer_rtx. | |
30363 | (arc_save_callee_saves): Likewise. | |
30364 | (arc_restore_callee_saves): Likewise. | |
30365 | (arc_save_callee_enter): Likewise. | |
30366 | (arc_restore_callee_leave): Likewise. | |
30367 | (arc_save_callee_milli): Likewise. | |
30368 | (arc_eh_return_address_location): Likewise. | |
30369 | (arc_check_multi): Use hard frame regnum. | |
30370 | (arc_can_eliminate): Likewise. | |
30371 | * config/arc/arc.h (FIXED_REGISTERS): Make FP register available | |
30372 | for register allocator. | |
30373 | (REG_CLASS_CONTENTS): Update GENERAL_REGS. | |
30374 | (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM. | |
30375 | (FRAME_POINTER_REGNUM): Change it to a fake register. | |
30376 | (HARD_FRAME_POINTER_REGNUM): Defined. | |
30377 | (ARG_POINTER_REGNUM): Change it to a new fake register. | |
30378 | (ELIMINABLE_REGS): Update. | |
30379 | (REGISTER_NAMES): Update names. | |
30380 | * config/arc/arc.md (LP_START): Remove. | |
30381 | (LP_END): Likewise. | |
30382 | (shift_si3_loop): Update pattern. | |
30383 | ||
30384 | 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com> | |
30385 | ||
30386 | * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless | |
30387 | to avoid delay slot scheduling. | |
30388 | (arc_must_save_register): Don't save SP. | |
30389 | * config/arc/arc.md (stack_tie): Remove. | |
30390 | (UNSPEC_ARC_STKTIE): Likewise. | |
30391 | ||
30392 | 2019-04-16 Kito Cheng <kito.cheng@gmail.com> | |
30393 | Shiva Chen <shiva0217@gmail.com> | |
30394 | ||
30395 | * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong | |
30396 | code gen with large shift amount. | |
30397 | ||
30398 | 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com> | |
30399 | ||
30400 | * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle | |
30401 | subreg. | |
30402 | ||
30403 | 2019-04-16 Jakub Jelinek <jakub@redhat.com> | |
30404 | ||
30405 | PR target/90096 | |
30406 | * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only | |
30407 | print -m64/-mx32/-m32 if it is true. | |
30408 | (ix86_debug_options, ix86_function_specific_print): Pass true as | |
30409 | ADD_ABI_P to ix86_target_string. | |
30410 | (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as | |
30411 | ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case | |
30412 | or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32. | |
30413 | ||
30414 | PR rtl-optimization/90082 | |
30415 | * dce.c (can_delete_call): New function. | |
30416 | (deletable_insn_p, mark_insn): Use it. | |
30417 | ||
30418 | PR tree-optimization/90090 | |
30419 | * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can | |
30420 | throw internally. | |
30421 | (is_division_by_square): Likewise. Formatting fix. | |
30422 | ||
30423 | 2019-04-16 Richard Biener <rguenther@suse.de> | |
30424 | ||
30425 | PR tree-optimization/56049 | |
30426 | * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set | |
30427 | equality check if alias-set zero will prevail. | |
30428 | ||
30429 | 2019-04-15 Jeff Law <law@redhat.com> | |
30430 | ||
30431 | * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat | |
30432 | size and alignment as unsigned. | |
30433 | ||
30434 | 2019-04-15 Richard Biener <rguenther@suse.de> | |
30435 | ||
30436 | PR debug/90074 | |
30437 | * tree-loop-distribution.c (destroy_loop): Preserve correct | |
30438 | debug info. | |
30439 | ||
30440 | 2019-04-15 Richard Biener <rguenther@suse.de> | |
30441 | ||
30442 | PR tree-optimization/90071 | |
30443 | * tree-ssa-reassoc.c (init_range_entry): Do not pick up | |
30444 | abnormal operands from def stmts. | |
30445 | ||
30446 | 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org> | |
30447 | ||
30448 | PR rtl-optimization/89794 | |
30449 | * combine.c (count_auto_inc): New function. | |
30450 | (try_combine): Count how many auto_inc expressions there were in the | |
30451 | original instructions. Ensure we have the same number in the new | |
30452 | instructions. Remove the code that tried to ensure auto_inc side | |
30453 | effects on i1 and i0 are not lost. | |
30454 | ||
30455 | 2019-04-15 Richard Biener <rguenther@suse.de> | |
30456 | ||
30457 | PR ipa/88936 | |
30458 | * tree.h (auto_var_p): Declare. | |
30459 | * tree.c (auto_var_p): New function, split out from ... | |
30460 | (auto_var_in_fn_p): ... here. | |
30461 | * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid | |
30462 | member. | |
30463 | (new_var_info): Initialize it. | |
30464 | (set_uids_in_ptset): Also set the shadow variable uid if required. | |
30465 | (ipa_pta_execute): Postprocess points-to solutions assigning | |
30466 | shadow variable uids for locals that may reach their containing | |
30467 | function recursively. | |
30468 | * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not | |
30469 | assert but instead check whether the points-to solution is | |
30470 | a singleton. | |
30471 | ||
30472 | 2019-04-15 Martin Jambor <mjambor@suse.cz> | |
30473 | ||
30474 | PR ipa/pr89693 | |
30475 | * cgraph.c (clone_of_p): Loop over clone chain for each step in | |
30476 | the thunk chain. | |
30477 | ||
30478 | 2019-04-15 Monk Chiang <sh.chiang04@gmail.com> | |
30479 | ||
30480 | * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes. | |
30481 | ||
30482 | 2019-04-15 Monk Chiang <sh.chiang04@gmail.com> | |
30483 | Kito Cheng <kito.cheng@gmail.com> | |
30484 | Shiva Chen <shiva0217@gmail.com> | |
30485 | ||
30486 | * config/nds32/nds32-md-auxiliary.c | |
30487 | (nds32_legitimize_pic_address): Use new PIC pattern. | |
30488 | (nds32_legitimize_tls_address): Use new TLS pattern. | |
30489 | (nds32_output_symrel): New. | |
30490 | * config/nds32/nds32-protos.h (nds32_output_symrel): Declare. | |
30491 | (nds32_alloc_relax_group_id): Ditto. | |
30492 | * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New. | |
30493 | (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use | |
30494 | relax_group_id. | |
30495 | (nds32_group_tls_insn): Ditto. | |
30496 | (nds32_group_float_insns): Ditto. | |
30497 | * config/nds32/nds32.md (tls_le): New. | |
30498 | (sym_got): Ditto. | |
30499 | ||
30500 | 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com> | |
30501 | ||
30502 | * configure: Add nds32 target for dwarf2 debug_line checking. | |
30503 | * configure.ac: Regenerated. | |
30504 | ||
30505 | 2019-04-14 Jan Hubicka <hubicka@ucw.cz> | |
30506 | ||
30507 | PR lto/89358 | |
30508 | * ipa-devirt.c (skip_in_fields_list_p): New. | |
30509 | (odr_types_equivalent_p): Use it. | |
30510 | ||
30511 | 2019-04-13 Jakub Jelinek <jakub@redhat.com> | |
30512 | ||
30513 | PR target/89093 | |
30514 | * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp | |
30515 | instead of strncmp when checking for thumb and arm. Formatting fixes. | |
30516 | ||
30517 | 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org> | |
30518 | ||
30519 | * doc/install.texi: Document --with-target-system-zlib. | |
30520 | ||
30521 | 2019-04-12 Martin Sebor <msebor@redhat.com> | |
30522 | ||
30523 | PR c/88383 | |
30524 | PR c/89288 | |
30525 | PR c/89798 | |
30526 | PR c/89797 | |
30527 | * targhooks.c (default_vector_alignment): Avoid assuming | |
30528 | argument fits in SHWI. | |
30529 | * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in | |
30530 | a shift expression. | |
30531 | * doc/extend.texi (__builtin_has_attribute): Add a clarifying note. | |
30532 | ||
30533 | 2019-04-12 Jakub Jelinek <jakub@redhat.com> | |
30534 | ||
30535 | PR rtl-optimization/89965 | |
30536 | * dce.c: Include rtl-iter.h. | |
30537 | (struct check_argument_load_data): New type. | |
30538 | (check_argument_load): New function. | |
30539 | (find_call_stack_args): Check for loads from stack slots still tracked | |
30540 | in sp_bytes and punt if any is found. | |
30541 | ||
30542 | * config/mips/loongson-mmiintrin.h: Fix up #error message. | |
30543 | ||
30544 | 2019-04-12 Jan Hubicka <hubicka@ucw.cz> | |
30545 | ||
30546 | * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter. | |
30547 | * doc/invoke.texi (max-lto-streaming-paralellism): New --param. | |
30548 | ||
30549 | 2019-04-12 Martin Liska <mliska@suse.cz> | |
30550 | ||
30551 | PR middle-end/89970 | |
30552 | * multiple_target.c (create_dispatcher_calls): Wrap ifunc | |
30553 | in error message. | |
30554 | (separate_attrs): Handle multiple 'default's. | |
30555 | (expand_target_clones): Rework error handling code. | |
30556 | ||
30557 | 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
30558 | ||
30559 | PR target/87532 | |
30560 | * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner | |
30561 | mode of vector rather than mode of destination for move instruction. | |
30562 | * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var): | |
30563 | Use QI inner mode with V16QI vector mode. | |
30564 | ||
30565 | 2019-04-12 Jakub Jelinek <jakub@redhat.com> | |
30566 | ||
30567 | PR target/52726 | |
30568 | * config/tilepro/tilepro.c (tilepro_print_operand): Use just | |
30569 | "invalid %%t operand" in output_operand_lossage message. | |
30570 | ||
30571 | 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com> | |
30572 | ||
30573 | * config/s390/predicates.md (permute_pattern_operand): New | |
30574 | predicate. | |
30575 | * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE | |
30576 | operand for the permute pattern. | |
30577 | ("*vec_perm<mode>"): New insn definition. | |
30578 | ("bswap<mode>"): Generate the permute pattern operand in the | |
30579 | expander and perform the operand reloads for pre arch13 level | |
30580 | already. | |
30581 | ("*bswap<mode>_emu"): Rename to ... | |
30582 | ("*bswap<mode>"): ... this. And make the splitter vxe2 only. | |
30583 | * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"): | |
30584 | Add the USE operand for the permute pattern. | |
30585 | ("*vec_set_bswap_vec<mode>"): Likewise. | |
30586 | ||
30587 | 2019-04-12 Jakub Jelinek <jakub@redhat.com> | |
30588 | ||
30589 | PR c/89946 | |
30590 | * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p | |
30591 | and gcc_unreachable if it fails, just call tree_to_uhwi which | |
30592 | verifies that too. Test TREE_CHAIN instead of list_length > 1. | |
30593 | Start warning message with a lower-case letter. Formatting fixes. | |
30594 | ||
30595 | PR rtl-optimization/90026 | |
30596 | * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no | |
30597 | successors, look for BARRIERs inside of the whole BB_FOOTER chain | |
30598 | rather than just at the start of it. If e->src BB_FOOTER is not NULL | |
30599 | in cfglayout mode, use emit_barrier_after_bb. | |
30600 | ||
30601 | 2018-04-11 Steve Ellcey <sellcey@marvell.com> | |
30602 | ||
30603 | PR rtl-optimization/87763 | |
30604 | * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt): | |
30605 | New Instruction. | |
30606 | ||
30607 | 2019-04-11 Tom de Vries <tdevries@suse.de> | |
30608 | ||
30609 | * doc/extend.texi (@node Statement Exprs): Note variable shadowing at | |
30610 | max macro using statement expression. | |
30611 | ||
30612 | 2019-04-11 David Edelsohn <dje.gcc@gmail.com> | |
30613 | ||
30614 | * xcoffout.h (xcoff_private_rodata_section_name): Declare. | |
30615 | * xcoffout.c (xcoff_private_rodata_section_name): Define. | |
30616 | * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create | |
30617 | read_only_private_data_section using xcoff_private_rodata_section_name. | |
30618 | (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name. | |
30619 | ||
30620 | 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org> | |
30621 | ||
30622 | PR target/90016 | |
30623 | * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'. | |
30624 | ||
30625 | 2019-04-11 Jakub Jelinek <jakub@redhat.com> | |
30626 | ||
30627 | PR rtl-optimization/89965 | |
30628 | * dce.c (sp_based_mem_offset): New function. | |
30629 | (find_call_stack_args): Use sp_based_mem_offset. | |
30630 | ||
30631 | 2019-04-11 Jonathan Wakely <jwakely@redhat.com> | |
30632 | ||
30633 | * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs. | |
30634 | ||
30635 | 2019-04-11 Richard Biener <rguenther@suse.de> | |
30636 | ||
30637 | PR tree-optimization/90020 | |
30638 | * tree-ssa-sccvn.c (vn_reference_may_trap): New function. | |
30639 | * tree-ssa-sccvn.h (vn_reference_may_trap): Declare. | |
30640 | * tree-ssa-pre.c (compute_avail): Use it to not put | |
30641 | possibly trapping references after a call that might not | |
30642 | return into EXP_GEN. | |
30643 | * gcse.c (compute_hash_table_work): Do not elide | |
30644 | marking a block containing a call if the call might not | |
30645 | return. | |
30646 | ||
30647 | 2019-04-11 Richard Biener <rguenther@suse.de> | |
30648 | ||
30649 | PR tree-optimization/90018 | |
30650 | * tree-vect-data-refs.c (vect_preserves_scalar_order_p): | |
30651 | Test both SLP and interleaving variants. | |
30652 | ||
30653 | 2019-04-11 Robin Dapp <rdapp@linux.ibm.com> | |
30654 | ||
30655 | * config/s390/8561.md: New file. | |
30656 | * config/s390/driver-native.c (s390_host_detect_local_cpu): | |
30657 | Add arch13 cpu model. | |
30658 | * config/s390/s390-opts.h (enum processor_type): Likewise. | |
30659 | * config/s390/s390.c (s390_get_sched_attrmask): Add arch13. | |
30660 | (s390_get_unit_mask): Likewise. | |
30661 | (s390_is_fpd): Likewise. | |
30662 | (s390_is_fxd): Likewise. | |
30663 | * config/s390/s390.h (s390_tune_attr): Likewise. | |
30664 | * config/s390/s390.md: Include arch13 pipeline description. | |
30665 | * config/s390/s390.opt: Add arch13. | |
30666 | ||
30667 | 2018-04-10 Steve Ellcey <sellcey@marvell.com> | |
30668 | ||
30669 | PR rtl-optimization/87763 | |
30670 | * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p): | |
30671 | New prototype. | |
30672 | * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p): | |
30673 | New function. | |
30674 | * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift): | |
30675 | New instruction. | |
30676 | (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto. | |
30677 | (*aarch64_bfi<GPI:mode>4_noand): Ditto. | |
30678 | (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto. | |
30679 | (*aarch64_bfi<GPI:mode>4_noshift): Ditto. | |
30680 | ||
30681 | 2019-04-10 Jonathan Wakely <jwakely@redhat.com> | |
30682 | ||
30683 | * doc/invoke.texi (Optimize Options): Change "Nevertheless" to | |
30684 | "Although" in -fipa-icf documentation. | |
30685 | ||
30686 | * doc/invoke.texi (Debugging Options): Explicitly state the semantics | |
30687 | of using multiple -g options. | |
30688 | ||
30689 | 2019-04-10 Martin Liska <mliska@suse.cz> | |
30690 | ||
30691 | PR gcov-profile/89959 | |
30692 | * doc/gcov.texi: Make documentation of -x option | |
30693 | more precise. | |
30694 | ||
30695 | 2019-04-10 Richard Biener <rguenther@suse.de> | |
30696 | ||
30697 | * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt | |
30698 | member. | |
30699 | (DR_GROUP_SAME_DR_STMT): Remove. | |
30700 | * tree-vect-stmts.c (vectorizable_load): Remove unreachable code. | |
30701 | * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise, | |
30702 | replace with assert. | |
30703 | (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison. | |
30704 | (vect_record_grouped_load_vectors): Remove unreachable code. | |
30705 | ||
30706 | 2019-04-10 Richard Earnshaw <rearnsha@arm.com> | |
30707 | ||
30708 | PR target/90016 | |
30709 | * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and | |
30710 | obsolete reference to N. | |
30711 | ||
30712 | 2019-04-10 Jakub Jelinek <jakub@redhat.com> | |
30713 | ||
30714 | PR middle-end/90025 | |
30715 | * expr.c (store_expr): Set properly size on the MEM passed to | |
30716 | clear_storage. | |
30717 | ||
30718 | PR c++/90010 | |
30719 | * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr | |
30720 | with strlen in between hostsz-3 and hostsz-1 inclusive when no | |
30721 | translation is needed, and when translation is needed, only append | |
30722 | ... if the string length is hostsz or more bytes long. Avoid using | |
30723 | strncpy or strcat. | |
30724 | ||
30725 | 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com> | |
30726 | ||
30727 | PR target/90024 | |
30728 | * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter. | |
30729 | * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint | |
30730 | into three. | |
30731 | * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode | |
30732 | differences directly. | |
30733 | (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint. | |
30734 | ||
30735 | 2019-04-09 Jakub Jelinek <jakub@redhat.com> | |
30736 | ||
30737 | PR translation/90011 | |
30738 | * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces | |
30739 | from diagnostics. | |
30740 | * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p | |
30741 | diagnostics. | |
30742 | * config/riscv/freebsd.h (LINK_SPEC): Likewise. | |
30743 | * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise. | |
30744 | * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove | |
30745 | trailing space from -gsplit-dwarf diagnostics. | |
30746 | ||
30747 | PR tree-optimization/89998 | |
30748 | * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type | |
30749 | instead of integer_type_node if possible, don't add ranges if return | |
30750 | type is not compatible with int. | |
30751 | * gimple-fold.c (gimple_fold_builtin_sprintf, | |
30752 | gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded | |
30753 | integer_type_node. | |
30754 | ||
30755 | 2019-04-09 Martin Liska <mliska@suse.cz> | |
30756 | ||
30757 | * Makefile.in: Use GENERATOR_CFLAGS for all generators. | |
30758 | * doc/install.texi: Document the new config. | |
30759 | ||
30760 | 2019-04-09 Richard Sandiford <richard.sandiford@arm.com> | |
30761 | ||
30762 | * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always | |
30763 | use gimple_expr_type for load and store calls. Skip over the | |
30764 | condition argument in a conditional internal function. | |
30765 | Protect use of TREE_INT_CST_LOW. | |
30766 | ||
30767 | 2019-04-09 Jakub Jelinek <jakub@redhat.com> | |
30768 | ||
30769 | PR target/90015 | |
30770 | * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo. | |
30771 | (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove | |
30772 | trailing period from it too. | |
30773 | ||
30774 | 2019-04-08 wu yuan <wuyuan5@huawei.com> | |
30775 | ||
30776 | * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model. | |
30777 | * config/aarch64/aarch64.md: Add "tsv110.md". | |
30778 | * config/aarch64/tsv110.md: New file. | |
30779 | ||
30780 | 2019-04-08 Richard Biener <rguenther@suse.de> | |
30781 | ||
30782 | PR tree-optimization/90006 | |
30783 | * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle | |
30784 | calls like lrint. | |
30785 | ||
30786 | 2019-04-08 Andrea Corallo <andrea.corallo@arm.com> | |
30787 | ||
30788 | PR target/83033 | |
30789 | * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy | |
30790 | construction. | |
30791 | (fma_root_node): Likewise. | |
30792 | (func_fma_steering): Likewise. | |
30793 | ||
30794 | 2019-04-08 Jakub Jelinek <jakub@redhat.com> | |
30795 | ||
30796 | PR rtl-optimization/89865 | |
30797 | * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z. | |
30798 | ||
30799 | PR rtl-optimization/89865 | |
30800 | * config/i386/i386.md | |
30801 | (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand | |
30802 | numbers not to clash with the additional operands[4]. | |
30803 | (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s | |
30804 | with extra register copy in the middle. | |
30805 | ||
30806 | 2019-04-08 Martin Liska <mliska@suse.cz> | |
30807 | ||
30808 | PR gcov-profile/89961 | |
30809 | * doc/gcov.texi: Document data_file. | |
30810 | * gcov.c (generate_results): Add data_info into JSON output. | |
30811 | ||
30812 | 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com> | |
30813 | ||
30814 | PR tree-optimization/89725 | |
30815 | * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer | |
30816 | loop's chrec as invariant symbol. | |
30817 | * tree-chrec.h (chrec_contains_symbols): New parameter. | |
30818 | * tree-data-ref.c (analyze_miv_subscript): Pass new argument. | |
30819 | (build_classic_dist_vector_1, add_other_self_distances): Bypass access | |
30820 | function of loops not in DDR's loop_nest. | |
30821 | * tree-data-ref.h (index_in_loop_nest): Add unreachable check. | |
30822 | ||
30823 | 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com> | |
30824 | ||
30825 | PR target/89623 | |
30826 | * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of | |
30827 | Mask. | |
30828 | ||
30829 | 2019-04-07 Uroš Bizjak <ubizjak@gmail.com> | |
30830 | ||
30831 | PR target/89945 | |
30832 | * config/i386/i386.md (anddi_1 to andsi_1_zext splitter): | |
30833 | Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand. | |
30834 | ||
30835 | 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com> | |
30836 | ||
30837 | * sched-deps.c (sched_macro_fuse_insns): Check return value of | |
30838 | targetm.fixed_condition_code_regs. | |
30839 | ||
30840 | 2019-04-05 Richard Biener <rguenther@suse.de> | |
30841 | ||
30842 | PR debug/89892 | |
30843 | PR debug/89905 | |
30844 | * tree-cfgcleanup.c (remove_forwarder_block): Always move | |
30845 | debug bind stmts but reset them if they are not valid at the | |
30846 | destination. | |
30847 | ||
30848 | 2019-04-05 Martin Liska <mliska@suse.cz> | |
30849 | ||
30850 | PR translation/89936 | |
30851 | * collect-utils.c (collect_execute): Use %< and %>, or %qs in | |
30852 | order to wrap keywords or arguments. | |
30853 | * collect2.c (main): Likewise. | |
30854 | (scan_prog_file): Likewise. | |
30855 | (scan_libraries): Likewise. | |
30856 | * common/config/riscv/riscv-common.c | |
30857 | (riscv_subset_list::parsing_subset_version): Likewise. | |
30858 | (riscv_subset_list::parse_std_ext): Likewise. | |
30859 | * config/aarch64/aarch64.c (aarch64_override_options_internal): | |
30860 | Likewise. | |
30861 | * config/arm/arm.c (arm_option_override): Likewise. | |
30862 | * config/cris/cris.c (cris_print_operand): Likewise. | |
30863 | * config/darwin-c.c (darwin_pragma_options): Likewise. | |
30864 | (darwin_pragma_unused): Likewise. | |
30865 | (darwin_pragma_ms_struct): Likewise. | |
30866 | * config/ft32/ft32.c (ft32_print_operand): Likewise. | |
30867 | * config/i386/i386.c (print_reg): Likewise. | |
30868 | (ix86_print_operand): Likewise. | |
30869 | * config/i386/xm-djgpp.h: Likewise. | |
30870 | * config/iq2000/iq2000.c (iq2000_print_operand): Likewise. | |
30871 | * config/m32c/m32c.c (m32c_option_override): Likewise. | |
30872 | * config/msp430/msp430.c (msp430_option_override): Likewise. | |
30873 | * config/nds32/nds32.c (nds32_option_override): Likewise. | |
30874 | * config/nvptx/mkoffload.c (main): Likewise. | |
30875 | * config/rx/rx.c (rx_print_operand): Likewise. | |
30876 | (valid_psw_flag): Likewise. | |
30877 | * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise. | |
30878 | (vms_pragma_nomember_alignment): Likewise. | |
30879 | (vms_pragma_extern_model): Likewise. | |
30880 | * lto-wrapper.c (compile_offload_image): Likewise. | |
30881 | * omp-offload.c (oacc_parse_default_dims): Likewise. | |
30882 | * symtab.c (symtab_node::verify_base): Likewise. | |
30883 | * tlink.c (recompile_files): Likewise. | |
30884 | (start_tweaking): Likewise. | |
30885 | * tree-profile.c (parse_profile_filter): Likewise. | |
30886 | ||
30887 | 2019-04-05 Richard Sandiford <richard.sandiford@arm.com> | |
30888 | ||
30889 | PR tree-optimization/89956 | |
30890 | * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against | |
30891 | multiple negates of the same value. | |
30892 | ||
30893 | 2019-04-04 Martin Sebor <msebor@redhat.com> | |
30894 | ||
30895 | PR middle-end/89957 | |
30896 | PR middle-end/89911 | |
30897 | * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands | |
30898 | have the same precision since the function crashes otherwise. | |
30899 | * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call | |
30900 | has non-zero arguments. | |
30901 | ||
30902 | 2019-04-04 Martin Sebor <msebor@redhat.com> | |
30903 | ||
30904 | PR middle-end/89934 | |
30905 | * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail | |
30906 | out if the number of arguments is less than expected. | |
30907 | ||
30908 | 2019-04-04 Jeff Law <law@redhat.com> | |
30909 | ||
30910 | PR rtl-optimization/89399 | |
30911 | * ree.c (combine_set_extension): Use single_set rather than | |
30912 | digging into PATTERN for items on the candidate list. | |
30913 | (combine_reaching_defs): Likewise. | |
30914 | ||
30915 | 2019-04-04 Richard Sandiford <richard.sandiford@arm.com> | |
30916 | ||
30917 | PR rtl-optimization/46590 | |
30918 | * loop-invariant.c (find_defs): Move df_remove_problem and | |
30919 | df_process_deferred_rescans to move_invariants. | |
30920 | Move df_live_add_problem and df_live_set_all_dirty calls | |
30921 | to move_invariants. | |
30922 | (move_invariants): Likewise. | |
30923 | (move_loop_invariants): Likewise, making the df_live calls | |
30924 | conditional on -O. Remove the problem again if we added it | |
30925 | locally. | |
30926 | ||
30927 | 2019-04-03 qing zhao <qing.zhao@oracle.com> | |
30928 | ||
30929 | PR tree-optimization/89730 | |
30930 | * ipa-inline.c (can_inline_edge_p): Delete the checking for | |
30931 | -flive-patching=inline-only-static. | |
30932 | (can_inline_edge_by_limits_p): Add the checking for | |
30933 | -flive-patching=inline-only-static and grant always_inline | |
30934 | even when -flive-patching=inline-only-static is specified. | |
30935 | ||
30936 | 2019-04-03 Jeff Law <law@redhat.com> | |
30937 | ||
30938 | PR rtl-optimization/81025 | |
30939 | * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER. | |
30940 | ||
30941 | 2019-04-03 Richard Biener <rguenther@suse.de> | |
30942 | ||
30943 | PR tree-optimization/84101 | |
30944 | * tree-vect-stmts.c: Include explow.h for hard_function_value, | |
30945 | regs.h for hard_regno_nregs. | |
30946 | (cfun_returns): New helper. | |
30947 | (vect_model_store_cost): When vectorizing a store to a decl | |
30948 | we return and the function ABI returns in a multi-reg location | |
30949 | account for the possible spilling that will happen. | |
30950 | ||
30951 | 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com> | |
30952 | ||
30953 | * config/s390/s390.c (s390_legitimate_address_p): Reject long | |
30954 | displacement addresses for vector mode operands. | |
30955 | ||
30956 | 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com> | |
30957 | ||
30958 | * config/arc/arc.c (GMASK_LEN): Define. | |
30959 | (arc_restore_callee_saves): Restore first blink when | |
30960 | !optimize_size. | |
30961 | ||
30962 | 2019-04-03 Sudakshina Das <sudi.das@arm.com> | |
30963 | ||
30964 | * doc/extend.texi: Add deprecated comment on sign-return-address | |
30965 | function attribute and add mbranch-protection. | |
30966 | * doc/invoke.texi: Add bti to the options for mbranch-protection. | |
30967 | ||
30968 | 2019-04-03 Richard Biener <rguenther@suse.de> | |
30969 | ||
30970 | PR lto/89896 | |
30971 | * lto-wrapper.c (run_gcc): Avoid implicit rules making | |
30972 | the all target phony. | |
30973 | ||
30974 | 2019-04-02 Uroš Bizjak <ubizjak@gmail.com> | |
30975 | ||
30976 | PR target/89902 | |
30977 | PR target/89903 | |
30978 | * config/i386/i386.c (dimode_scalar_to_vector_candidate_p): | |
30979 | Return false for variable DImode shifts. | |
30980 | (dimode_scalar_chain::compute_convert_gain): Do not handle | |
30981 | register count operand in variable DImode shifts. | |
30982 | (dimode_scalar_chain::make_vector_copies): Remove support to copy | |
30983 | count argument of a variable shift instruction to a vector register. | |
30984 | (dimode_scalar_chain::convert_reg): Remove support to convert | |
30985 | count argument of a variable shift instruction. | |
30986 | ||
30987 | 2019-04-02 Andrey Belevantsev <abel@ispras.ru> | |
30988 | ||
30989 | PR rtl-optimization/84206 | |
30990 | * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when | |
30991 | iterating over loop headers. | |
30992 | ||
30993 | 2019-04-02 Andrey Belevantsev <abel@ispras.ru> | |
30994 | ||
30995 | PR rtl-optimization/85876 | |
30996 | * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn | |
30997 | beyond the original fence. | |
30998 | ||
30999 | 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com> | |
31000 | ||
31001 | * config.gcc: Mark spu* targets as deprecated/obsolete. | |
31002 | ||
31003 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31004 | ||
31005 | * config/s390/s390-builtin-types.def: New builtin function type | |
31006 | definitions. Remove unused types. | |
31007 | * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb) | |
31008 | (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions. | |
31009 | (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New | |
31010 | overloaded builtins. | |
31011 | (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb) | |
31012 | (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins. | |
31013 | * config/s390/vecintrin.h (vec_float): New builtin macro definition. | |
31014 | (vec_double, vec_signed, vec_unsigned): Define to use the new | |
31015 | overloaded builtins. | |
31016 | * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"): | |
31017 | Remove expanders. | |
31018 | ||
31019 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31020 | ||
31021 | * config/s390/s390-builtin-types.def: New builtin function type | |
31022 | definitions. | |
31023 | * config/s390/s390-builtins.def (s390_vec_search_string_cc) | |
31024 | (s390_vec_search_string_until_zero_cc): New overloaded builtins. | |
31025 | (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb) | |
31026 | (s390_vstrszh, s390_vstrszf): New low-level builtins. | |
31027 | * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New | |
31028 | constant definitions. | |
31029 | * config/s390/vecintrin.h (vec_search_string_cc) | |
31030 | (vec_search_string_until_zero_cc): New builtin name definitions. | |
31031 | * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New | |
31032 | expanders. | |
31033 | ("vec_vstrs<mode>"): New insn definition. | |
31034 | ||
31035 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31036 | ||
31037 | * config/s390/s390-builtin-types.def: Add new builtin function | |
31038 | types. | |
31039 | * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb): | |
31040 | New overloaded builtins. | |
31041 | (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and | |
31042 | s390_vsrd. | |
31043 | * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ... | |
31044 | (UNSPEC_VEC_SLDBYTE): ... this. | |
31045 | (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions. | |
31046 | * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name | |
31047 | definitions. | |
31048 | * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"): | |
31049 | Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE. | |
31050 | ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions. | |
31051 | ||
31052 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31053 | ||
31054 | ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"): | |
31055 | New insn definition. | |
31056 | * config/s390/vx-builtins.md (V_HW_HSD): Move to ... | |
31057 | * config/s390/vector.md (V_HW_HSD): ... here. | |
31058 | ||
31059 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31060 | ||
31061 | * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler. | |
31062 | * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>") | |
31063 | ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>") | |
31064 | ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"): | |
31065 | New insn definitions. | |
31066 | ||
31067 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31068 | ||
31069 | * config/s390/s390-builtin-types.def: Add new builtin function type. | |
31070 | * config/s390/s390-builtins.def: Add overloaded builtin | |
31071 | s390_vec_reve and low-level builtins for s390_vler and s390_vster. | |
31072 | * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition. | |
31073 | * config/s390/vecintrin.h (vec_reve): New builtin name definition. | |
31074 | * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator. | |
31075 | ("eltswap<mode>"): New expander. | |
31076 | ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New | |
31077 | insn definitions. | |
31078 | ||
31079 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31080 | ||
31081 | * config/s390/s390-builtin-types.def: Add new builtin function types. | |
31082 | * config/s390/s390-builtins.def: Add overloaded builtin | |
31083 | s390_vec_revb. Add low-level builtins for vlbr and vstbr | |
31084 | instructions. | |
31085 | * config/s390/vecintrin.h (vec_revb): New builtin name definition. | |
31086 | * config/s390/vector.md (VT_HW_HSDT): New mode iterator. | |
31087 | ("bswap<mode>"): New expander. | |
31088 | ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions. | |
31089 | ||
31090 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31091 | ||
31092 | * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition. | |
31093 | * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment | |
31094 | vector builtin version number in __VEC__. | |
31095 | ||
31096 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31097 | ||
31098 | * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode | |
31099 | iterators. | |
31100 | (SFSI): New mode attribute. | |
31101 | ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13") | |
31102 | ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and | |
31103 | rename to ... | |
31104 | ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13") | |
31105 | ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13") | |
31106 | ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these. | |
31107 | ("floatsi<mode>2"): Add wcefb instruction. | |
31108 | ||
31109 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31110 | ||
31111 | * config/s390/s390.md ("xde"): Extend mode attribute to vector types. | |
31112 | * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New | |
31113 | mode iterators. | |
31114 | ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2") | |
31115 | ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also | |
31116 | support 32 bit fp-int conversions. Rename to ... | |
31117 | ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2") | |
31118 | ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2") | |
31119 | ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2") | |
31120 | ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"): | |
31121 | ... to these. | |
31122 | ||
31123 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31124 | ||
31125 | * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for | |
31126 | if-then-else constructs if we can use the select instruction. | |
31127 | * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions. | |
31128 | ||
31129 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31130 | ||
31131 | * config/s390/s390.md ("*popcountdi_arch13_cc") | |
31132 | ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn | |
31133 | definition. | |
31134 | ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"): | |
31135 | Append _z196 to make it ... | |
31136 | ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196") | |
31137 | ("popcounthi2_z196"): ... this. | |
31138 | ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition. | |
31139 | ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders. | |
31140 | ||
31141 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31142 | ||
31143 | * config/s390/s390.c (s390_canonicalize_comparison): Convert | |
31144 | certain compares for arch13 in order to make use of the condition | |
31145 | code result produced by the new instructions. | |
31146 | (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk, | |
31147 | nxrk, and nxgrk instruction patterns. | |
31148 | * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name) | |
31149 | (inv_no): Add new code iterator together with some attributes. | |
31150 | ("*andc_split_<mode>"): Disable splitter for arch13. | |
31151 | ("*<ANDOR:bitops_name>c<GPR:mode>_cc") | |
31152 | ("*<ANDOR:bitops_name>c<GPR:mode>_cconly") | |
31153 | ("*<ANDOR:bitops_name>c<GPR:mode>") | |
31154 | ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc") | |
31155 | ("*n<ANDOR:inv_bitops_name><mode>_cconly") | |
31156 | ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc") | |
31157 | ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions. | |
31158 | ||
31159 | 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com> | |
31160 | ||
31161 | * common/config/s390/s390-common.c (processor_flags_table): New | |
31162 | entry for arch13. | |
31163 | * config.gcc: Support arch13 with the --with-arch= configure flag. | |
31164 | * config/s390/driver-native.c (s390_host_detect_local_cpu): | |
31165 | * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13. | |
31166 | * config/s390/s390.c (s390_get_sched_attrmask) | |
31167 | (s390_get_unit_mask): Add PROCESSOR_ARCH13. | |
31168 | * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13. | |
31169 | * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P) | |
31170 | (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13) | |
31171 | (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro | |
31172 | definitions. | |
31173 | * config/s390/s390.opt: Support arch13 as processor type in | |
31174 | command line options. | |
31175 | ||
31176 | 2019-04-02 Martin Liska <mliska@suse.cz> | |
31177 | ||
31178 | PR translation/89912 | |
31179 | * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP): | |
31180 | Fix param description of graphite-max-arrays-per-scop. | |
31181 | ||
31182 | 2019-04-02 Eric Botcazou <ebotcazou@adacore.com> | |
31183 | ||
31184 | * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro. | |
31185 | (ASAN_CC1_SPEC): Use it in 64-bit mode. | |
31186 | * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon. | |
31187 | ||
31188 | 2019-04-01 Andrey Belevantsev <abel@ispras.ru> | |
31189 | ||
31190 | PR rtl-optimization/85412 | |
31191 | * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before | |
31192 | sel_sched_region_1, not after. | |
31193 | ||
31194 | 2019-04-01 Andrey Belevantsev <abel@ispras.ru> | |
31195 | ||
31196 | PR rtl-optimization/86928 | |
31197 | * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke | |
31198 | compute_live if necessary. | |
31199 | (sel_redirect_edge_and_branch): Likewise. | |
31200 | ||
31201 | 2019-04-01 Vladimir Makarov <vmakarov@redhat.com> | |
31202 | ||
31203 | PR rtl-optimization/89865 | |
31204 | * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard | |
31205 | register if it is a part of small class. | |
31206 | ||
31207 | 2019-04-01 Andrey Belevantsev <abel@ispras.ru> | |
31208 | ||
31209 | PR rtl-optimization/87273 | |
31210 | * sel-sched-ir.c (merge_fences): Remove assert. | |
31211 | ||
31212 | 2019-04-01 Richard Biener <rguenther@suse.de> | |
31213 | ||
31214 | PR tree-optimization/46590 | |
31215 | * domwalk.h (dom_walker::dom_walker): Consolidate constructors. | |
31216 | (dom_walker::m_reachability): Add in place of... | |
31217 | (dom_walker::m_skip_unreachable_blocks): ...this. | |
31218 | * domwalk.c (dom_walker::dom_walker): Consoliate constructors. | |
31219 | Move complex initialization ... | |
31220 | (dom_walker::walk): Here. Especially compute m_bb_to_rpo | |
31221 | lazily and initialize edge flags on each invocation. | |
31222 | (dom_walker::bb_reachable): Use m_reachability. | |
31223 | ||
31224 | 2019-04-01 Martin Liska <mliska@suse.cz> | |
31225 | ||
31226 | PR driver/89861 | |
31227 | * opt-suggestions.c (option_proposer::build_option_suggestions): | |
31228 | Add variant without any argument in order to provide better | |
31229 | hints. | |
31230 | ||
31231 | 2019-04-01 Richard Biener <rguenther@suse.de> | |
31232 | ||
31233 | PR c/71598 | |
31234 | * gimple.c: Include langhooks.h. | |
31235 | (gimple_get_alias_set): Treat enumeral types as the underlying | |
31236 | integer type. | |
31237 | ||
31238 | 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org> | |
31239 | Eric Botcazou <ebotcazou@adacore.com> | |
31240 | ||
31241 | PR rtl-optimization/89862 | |
31242 | * rtl.h (word_register_operation_p): Exclude CONST_INT from operations | |
31243 | that operates on the full registers for WORD_REGISTER_OPERATIONS | |
31244 | architectures. | |
31245 | ||
31246 | 2019-03-29 Jim Wilson <jimw@sifive.com> | |
31247 | ||
31248 | * common/config/riscv/riscv-common.c (riscv_parse_arch_string): | |
31249 | Clear MASK_RVC and then set if C subset supported. | |
31250 | ||
31251 | 2019-03-29 Jakub Jelinek <jakub@redhat.com> | |
31252 | ||
31253 | PR c/89872 | |
31254 | * gimplify.c (gimplify_compound_literal_expr): Don't optimize a | |
31255 | non-addressable complit into its initializer if it is volatile. | |
31256 | ||
31257 | 2019-03-29 Roman Zhuykov <zhroma@ispras.ru> | |
31258 | ||
31259 | * opts-common.c (integral_argument): Set errno properly in one case. | |
31260 | ||
31261 | 2019-03-29 Martin Liska <mliska@suse.cz> | |
31262 | ||
31263 | * doc/invoke.texi: Remove -Wchkp from documentation. | |
31264 | ||
31265 | 2019-03-29 Martin Liska <mliska@suse.cz> | |
31266 | ||
31267 | * dbgcnt.c (print_limit_reach): New function. | |
31268 | (dbg_cnt): Use it. | |
31269 | ||
31270 | 2019-03-29 Martin Liska <mliska@suse.cz> | |
31271 | ||
31272 | * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style. | |
31273 | (dbg_cnt_process_opt): Parse first tokens aas | |
31274 | dbg_cnt_process_single_pair is also using strtok. | |
31275 | ||
31276 | 2019-03-29 Jakub Jelinek <jakub@redhat.com> | |
31277 | ||
31278 | PR rtl-optimization/87485 | |
31279 | * function.c (expand_function_end): Move stack_protect_epilogue | |
31280 | before loading of return value into hard register(s). | |
31281 | ||
31282 | 2019-03-28 Jakub Jelinek <jakub@redhat.com> | |
31283 | ||
31284 | PR middle-end/89621 | |
31285 | * tree-inline.h (struct copy_body_data): Add | |
31286 | dont_remap_vla_if_no_change flag. | |
31287 | * tree-inline.c (remap_type_3, remap_type_2): New functions. | |
31288 | (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change | |
31289 | and remap_type_2 returns false. | |
31290 | * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change. | |
31291 | Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx | |
31292 | only from where it is copied to nested contexts. | |
31293 | ||
31294 | 2019-03-28 Uroš Bizjak <ubizjak@gmail.com> | |
31295 | ||
31296 | PR target/89865 | |
31297 | * config/i386/i386.md (RMW operation with LEA peephole): | |
31298 | Use LEAMODE mode attribute instead of SWI mode iterator for | |
31299 | LEA pattern. | |
31300 | ||
31301 | 2019-03-28 Uroš Bizjak <ubizjak@gmail.com> | |
31302 | ||
31303 | PR target/89848 | |
31304 | * config/i386/i386.c (dimode_scalar_chain::make_vector_copies): | |
31305 | Also process XEXP (src, 0) of a shift insn. | |
31306 | ||
31307 | 2019-03-28 David Malcolm <dmalcolm@redhat.com> | |
31308 | ||
31309 | PR middle-end/89725 | |
31310 | * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json): | |
31311 | Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl. | |
31312 | ||
31313 | 2019-03-28 Jakub Jelinek <jakub@redhat.com> | |
31314 | ||
31315 | * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P | |
31316 | test. | |
31317 | (cprop_hardreg_bb, cprop_hardreg_debug): New functions. | |
31318 | (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing | |
31319 | immediately after first one with df_analyze in between, but rather | |
31320 | process all bbs, queueing ones that need second pass in a worklist, | |
31321 | df_analyze, process queued debug insn changes and if second pass is | |
31322 | needed, process bbs from worklist, df_analyze, process queued debug | |
31323 | insns again. | |
31324 | ||
31325 | * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P | |
31326 | or CALL_P instead of INSN_P && !DEBUG_INSN_P. | |
31327 | (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P. | |
31328 | ||
31329 | 2019-03-28 Jonathan Wakely <jwakely@redhat.com> | |
31330 | ||
31331 | PR c/79022 | |
31332 | * gengtype.h (create_nested_ptr_option): Fix parameter names to match | |
31333 | definition. | |
31334 | ||
31335 | 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl> | |
31336 | ||
31337 | PR target/85667 | |
31338 | * config/i386/i386.c (ix86_function_value_1): Call the newly added | |
31339 | function for 32-bit MS_ABI. | |
31340 | (function_value_ms_32): New function. | |
31341 | ||
31342 | 2019-03-27 Andrew Stubbs <ams@codesourcery.com> | |
31343 | ||
31344 | * config/gcn/gcn.md (CC_SAVE_REG): New constant. | |
31345 | (movdi): Call gen_movdi_symbol_save_scc. | |
31346 | (gen_movdi_symbol_save_scc): New insn and split. | |
31347 | ||
31348 | 2019-03-27 Peter Bergner <bergner@linux.ibm.com> | |
31349 | ||
31350 | PR rtl-optimization/89313 | |
31351 | * function.c (matching_constraint_num): New static function. | |
31352 | (match_asm_constraints_1): Use it. Fixup white space and comment. | |
31353 | Don't replace inputs with non-matching constraints which conflict | |
31354 | with early clobber outputs. | |
31355 | ||
31356 | 2019-03-27 Jeff Law <law@redhat.com> | |
31357 | ||
31358 | PR rtl-optimization/87761 | |
31359 | PR rtl-optimization/89826 | |
31360 | * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test | |
31361 | slightly later. | |
31362 | (pass_cprop_hardreg::execute): Call df_analyze after adding the | |
31363 | note problem to get REG_DEAD/REG_UNUSED notes updated. | |
31364 | ||
31365 | 2019-03-27 Richard Biener <rguenther@suse.de> | |
31366 | ||
31367 | PR tree-optimization/89463 | |
31368 | * tree-ssa-dce.c (remove_dead_stmt): Take output vector to | |
31369 | queue edges to remove. | |
31370 | (eliminate_unnecessary_stmts): Remove dead PHIs alongside | |
31371 | dead stmts. Delay edge removal until PHIs are removed to | |
31372 | make debug-stmt creation not confused by seemingly degenerate | |
31373 | PHIs. | |
31374 | ||
31375 | 2019-03-27 Alan Modra <amodra@gmail.com> | |
31376 | ||
31377 | * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS | |
31378 | throughout file. | |
31379 | * config/rs6000/darwin.h: Likewise. | |
31380 | * config/rs6000/rs6000.c: Likewise. | |
31381 | ||
31382 | 2019-03-27 Alan Modra <amodra@gmail.com> | |
31383 | ||
31384 | * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always | |
31385 | assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting. | |
31386 | ||
31387 | 2019-03-26 Andrew Waterman <andrew@sifive.com> | |
31388 | Jim Wilson <jimw@sifive.com> | |
31389 | ||
31390 | * config/riscv/generic.md (generic_alu, generic_load, generic_store) | |
31391 | (generic_xfer, generic_branch, generic_imul, generic_idivsi) | |
31392 | (generic_idivdi, generic_fmul_single, generic_fmul_double) | |
31393 | (generic_fdiv, generic_fsqrt): Add check for generic tune. | |
31394 | (generic_alu): Add auipc to type list. | |
31395 | * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New. | |
31396 | (riscv_microarchitecture): Declare. | |
31397 | * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare. | |
31398 | * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture | |
31399 | field. | |
31400 | (riscv_microarchitecture): New. | |
31401 | (sifive_7_tune_info): New. | |
31402 | (riscv_cpu_info_table): Add microarchitecture value for rocket and | |
31403 | size. Add sifive-3-series, sifive-5-series, and sifive-7-series | |
31404 | entries. | |
31405 | (riscv_store_data_bypass_p): New. | |
31406 | (riscv_option_override): Set riscv_microarchitecture from | |
31407 | cpu->microarchitecture. | |
31408 | * config/riscv/riscv.md: Include sifive-7.md. | |
31409 | (type): Add auipc. | |
31410 | (tune): New. | |
31411 | (auipc<mode>): Change type to auipc. | |
31412 | (restore_stack_nonlocal): New. | |
31413 | * config/riscv/sifive-7.md: New. | |
31414 | * doc/invoke.texi (RISC-V Options): Update mtune docs. | |
31415 | ||
31416 | 2019-03-26 Uroš Bizjak <ubizjak@gmail.com> | |
31417 | ||
31418 | PR target/89827 | |
31419 | * config/i386/i386.c (dimode_scalar_chain::convert_reg): | |
31420 | Also process XEXP (src, 0) of a shift insn. | |
31421 | ||
31422 | 2019-03-26 Richard Biener <rguenther@suse.de> | |
31423 | ||
31424 | * tree-inline.c (remap_gimple_stmt): Cache gimple_block. | |
31425 | (copy_debug_stmt): Likewise. | |
31426 | (expand_call_inline): Likewise. | |
31427 | (copy_bb): Avoid redundant lookup & set of gimple_block. | |
31428 | * gimple-low.c (lower_gimple_return): Likewise. | |
31429 | (lower_builtin_setjmp): Likewise. | |
31430 | ||
31431 | 2019-03-26 Jakub Jelinek <jakub@redhat.com> | |
31432 | ||
31433 | * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS | |
31434 | is constant 0, turn into static const data member initialized to false. | |
31435 | (hash_table::hash_table): Only initialize m_gather_mem_stats #if | |
31436 | GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param. | |
31437 | ||
31438 | 2019-03-26 Jason Merrill <jason@redhat.com> | |
31439 | Jakub Jelinek <jakub@redhat.com> | |
31440 | ||
31441 | * mem-stats.h (mem_alloc_description::unregister_descriptor): New | |
31442 | method. | |
31443 | (mem_alloc_description::release_object_overhead): Fix comment typos. | |
31444 | * hash-table.h (hash_table::~hash_table): Call | |
31445 | release_instance_overhead only if m_entries is non-NULL, otherwise | |
31446 | call unregister_descriptor. | |
31447 | ||
31448 | 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com> | |
31449 | ||
31450 | PR tree-optimization/81740 | |
31451 | * tree-vect-data-refs.c (vect_analyze_data_ref_dependence): | |
31452 | In case of outer loop vectorization, check for backward dependence | |
31453 | at the inner loop if outer loop dependence is reversed. | |
31454 | ||
31455 | 2019-03-26 Alan Modra <amodra@gmail.com> | |
31456 | ||
31457 | * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct | |
31458 | rs6000_vector_mem init. Correct wI and wJ comment. | |
31459 | ||
31460 | 2019-03-25 Alexander Monakov <amonakov@ispras.ru> | |
31461 | ||
31462 | PR rtl-optimization/88347 | |
31463 | PR rtl-optimization/88423 | |
31464 | * sched-deps.c (sched_analyze_insn): Take into account that for | |
31465 | tablejumps the barrier appears after a label and a jump_table_data. | |
31466 | ||
31467 | 2019-03-25 Martin Sebor <msebor@redhat.com> | |
31468 | ||
31469 | PR c/89812 | |
31470 | * c-common.c (check_user_alignment): Rename local. Correct maximum | |
31471 | alignment in diagnostic. Avoid assuming argument fits in SHWI, | |
31472 | convert it to UHWI when it fits. | |
31473 | ||
31474 | 2019-03-25 Johan Karlsson <johan.karlsson@enea.com> | |
31475 | ||
31476 | PR debug/86964 | |
31477 | * dwarf2out.c (premark_used_variables): New function. | |
31478 | (prune_unused_types_walk): Do not mark not premarked external | |
31479 | variables. | |
31480 | (prune_unused_types): Call premark_used_variables. | |
31481 | ||
31482 | 2019-03-25 Vladimir Makarov <vmakarov@redhat.com> | |
31483 | ||
31484 | PR rtl-optimization/89676 | |
31485 | * lra-constraints.c (curr_insn_transform): Do match reload for | |
31486 | early clobbers when the match was successful only for different | |
31487 | registers. | |
31488 | ||
31489 | 2019-03-25 Martin Sebor <msebor@redhat.com> | |
31490 | ||
31491 | * doc/extend.texi (Common Type Attributes): Document vector_size. | |
31492 | (Common Variable Attributes): Mention size constraint. Correct | |
31493 | quoting and typos. | |
31494 | (Vector Extensions): Use @dfn when defining bas type. Clarify | |
31495 | base type and size constraints. | |
31496 | ||
31497 | 2019-03-25 Richard Biener <rguenther@suse.de> | |
31498 | ||
31499 | PR tree-optimization/89789 | |
31500 | * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice | |
31501 | changes from non-undefined back to undefined. | |
31502 | ||
31503 | 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de> | |
31504 | ||
31505 | * dwarf2out.c (comp_dir_string): cached_wd could be set to both a | |
31506 | heap string and a gc string, but since this variable is unknown to | |
31507 | ggc the gc string might get reused and corrupted. Fixed by always | |
31508 | using a heap string. | |
31509 | ||
31510 | 2019-03-25 Richard Biener <rguenther@suse.de> | |
31511 | ||
31512 | PR tree-optimization/89779 | |
31513 | * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return | |
31514 | to remove IV defs, delay actual removal. | |
31515 | (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset. | |
31516 | (tree_ssa_iv_optimize): Remove eliminated IV defs at the | |
31517 | very end, properly also reset loop control IV information. | |
31518 | ||
31519 | 2019-03-25 Richard Biener <rguenther@suse.de> | |
31520 | ||
31521 | PR tree-optimization/89802 | |
31522 | * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly | |
31523 | move EH data to folded stmt. | |
31524 | ||
31525 | 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com> | |
31526 | ||
31527 | * config/s390/s390-builtin-types.def: Remove few unused types and | |
31528 | fix sort order for others. | |
31529 | ||
31530 | 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com> | |
31531 | ||
31532 | * config/s390/s390-c.c (s390_fn_types_compatible): Print the | |
31533 | expected and found types with -mdebug during builtin matching. | |
31534 | ||
31535 | 2019-03-25 Richard Biener <rguenther@suse.de> | |
31536 | ||
31537 | PR middle-end/89790 | |
31538 | * fold-const.c (operand_equal_p): Revert last change with | |
31539 | updated comment. | |
31540 | ||
31541 | 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org> | |
31542 | ||
31543 | * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL | |
31544 | notes for the result of the __tls_get_addr calls. | |
31545 | * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New. | |
31546 | ||
31547 | 2019-03-24 Jeff Law <law@redhat.com> | |
31548 | ||
31549 | * config/bfin/bfin.md (movpdi): Fix length for alternative 1. | |
31550 | ||
31551 | PR rtl-optimization/87761 | |
31552 | * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET, | |
31553 | not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan | |
31554 | as needed. | |
31555 | (pass_cprop_hardreg::execute): Add df note problem and defer insn | |
31556 | rescans. Reprocess blocks as needed, calling df_analyze before | |
31557 | reprocessing. Always call df_analyze before fixing up debug bind | |
31558 | insns. | |
31559 | ||
31560 | 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org> | |
31561 | ||
31562 | * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit | |
31563 | big endian. | |
31564 | ||
31565 | 2019-03-22 Andrew Pinski <apinski@marvell.com> | |
31566 | ||
31567 | * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type | |
31568 | attrribute for uxtw. | |
31569 | ||
31570 | 2019-03-26 Jeff Law <law@redhat.com> | |
31571 | ||
31572 | PR rtl-optimization/87761 | |
31573 | * config/mips/mips-protos.h (mips_split_move): Add new argument. | |
31574 | (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move. | |
31575 | (mips_split_move): Accept new INSN argument. Try to forward SRC | |
31576 | into the next instruction. | |
31577 | (mips_split_move_insn): Pass INSN through to mips_split_move. | |
31578 | ||
31579 | 2019-03-22 Vladimir Makarov <vmakarov@redhat.com> | |
31580 | ||
31581 | PR rtl-optimization/89676 | |
31582 | * lra-constraints.c (curr_insn_transform): Do match reload for | |
31583 | early clobbers even if the match was successful. | |
31584 | ||
31585 | 2019-03-22 Jakub Jelinek <jakub@redhat.com> | |
31586 | ||
31587 | PR c++/87481 | |
31588 | * doc/invoke.texi (-fconstexpr-ops-limit=): Document. | |
31589 | ||
31590 | 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com> | |
31591 | ||
31592 | * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo. | |
31593 | ||
31594 | 2019-03-22 Jakub Jelinek <jakub@redhat.com> | |
31595 | ||
31596 | * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>, | |
31597 | <avx512>_fmsub_<mode>_mask3<round_name>, | |
31598 | <avx512>_fnmadd_<mode>_mask3<round_name>, | |
31599 | <avx512>_fnmsub_<mode>_mask3<round_name>, | |
31600 | avx512f_vmfmadd_<mode>_mask3<round_name>, | |
31601 | avx512f_vmfmsub_<mode>_mask3<round_name>, | |
31602 | *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate> | |
31603 | instead of register_operand and %v instead of v for match_operand 1. | |
31604 | (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ... | |
31605 | (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use | |
31606 | <round_nimm_predicate> instead of register_operand and %v instead of v | |
31607 | for match_operand 1. | |
31608 | ||
31609 | * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>, | |
31610 | <avx512>_fmadd_<mode>_mask3<round_name>, | |
31611 | <avx512>_fmsub_<mode>_mask<round_name>, | |
31612 | <avx512>_fmsub_<mode>_mask3<round_name>, | |
31613 | <avx512>_fnmadd_<mode>_mask<round_name>, | |
31614 | <avx512>_fnmadd_<mode>_mask3<round_name>, | |
31615 | <avx512>_fnmsub_<mode>_mask<round_name>, | |
31616 | <avx512>_fnmsub_<mode>_mask3<round_name>, | |
31617 | <avx512>_fmaddsub_<mode>_mask<round_name>, | |
31618 | <avx512>_fmaddsub_<mode>_mask3<round_name>, | |
31619 | <avx512>_fmsubadd_<mode>_mask<round_name>, | |
31620 | <avx512>_fmsubadd_<mode>_mask3<round_name>): Use | |
31621 | <round_nimm_predicate> instead of nonimmediate_operand. | |
31622 | (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>, | |
31623 | fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>): | |
31624 | Use register_operand instead of <round_nimm_predicate> for the | |
31625 | operand that needs to match output. | |
31626 | (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>, | |
31627 | *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>): | |
31628 | Likewise. Formatting fixes. | |
31629 | ||
31630 | PR target/89784 | |
31631 | * config/i386/i386.c (enum ix86_builtins): Remove | |
31632 | IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3. | |
31633 | * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask, | |
31634 | __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz, | |
31635 | __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask, | |
31636 | __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz, | |
31637 | __builtin_ia32_vfmsubss3_mask3): New builtins. | |
31638 | * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>, | |
31639 | avx512f_vmfmadd_<mode>_mask3<round_name>, | |
31640 | avx512f_vmfmadd_<mode>_maskz_1<round_name>, | |
31641 | *avx512f_vmfmsub_<mode>_mask<round_name>, | |
31642 | avx512f_vmfmsub_<mode>_mask3<round_name>, | |
31643 | *avx512f_vmfmasub_<mode>_maskz_1<round_name>, | |
31644 | *avx512f_vmfnmadd_<mode>_mask<round_name>, | |
31645 | *avx512f_vmfnmadd_<mode>_mask3<round_name>, | |
31646 | *avx512f_vmfnmadd_<mode>_maskz_1<round_name>, | |
31647 | *avx512f_vmfnmsub_<mode>_mask<round_name>, | |
31648 | avx512f_vmfnmsub_<mode>_mask3<round_name>, | |
31649 | *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns. | |
31650 | (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand. | |
31651 | * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss, | |
31652 | _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd, | |
31653 | _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss, | |
31654 | _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd, | |
31655 | _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss, | |
31656 | _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd, | |
31657 | _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss, | |
31658 | _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd, | |
31659 | _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss, | |
31660 | _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss, | |
31661 | _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss, | |
31662 | _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss, | |
31663 | _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss, | |
31664 | _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss, | |
31665 | _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss, | |
31666 | _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss, | |
31667 | _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss, | |
31668 | _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss, | |
31669 | _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss, | |
31670 | _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics. | |
31671 | ||
31672 | 2019-03-21 Martin Sebor <msebor@redhat.com> | |
31673 | ||
31674 | PR tree-optimization/89350 | |
31675 | * builtins.c (compute_objsize): Also ignore offsets whose upper | |
31676 | bound is negative. | |
31677 | * gimple-ssa-warn-restrict.c (builtin_memref): Add new member. | |
31678 | (builtin_memref::builtin_memref): Initialize new member. | |
31679 | Allow EXPR to be null. | |
31680 | (builtin_memref::extend_offset_range): Replace local with a member. | |
31681 | Avoid assuming pointer offsets are unsigned. | |
31682 | (builtin_memref::set_base_and_offset): Determine base object | |
31683 | before computing offset range. | |
31684 | (builtin_access::builtin_access): Handle memset. | |
31685 | (builtin_access::generic_overlap): Replace local with a member. | |
31686 | (builtin_access::strcat_overlap): Same. | |
31687 | (builtin_access::overlap): Same. | |
31688 | (maybe_diag_overlap): Same. | |
31689 | (maybe_diag_access_bounds): Same. | |
31690 | (wrestrict_dom_walker::check_call): Handle memset. | |
31691 | (check_bounds_or_overlap): Same. | |
31692 | ||
31693 | 2019-03-21 Jan Hubicka <hubicka@ucw.cz> | |
31694 | Jakub Jelinek <jakub@redhat.com> | |
31695 | ||
31696 | PR lto/89692 | |
31697 | * tree.c (fld_type_variant, fld_incomplete_type_of, | |
31698 | fld_process_array_type): Call fld->pset.add and don't call | |
31699 | add_tree_to_fld_list if it returns true. | |
31700 | (free_lang_data_in_type): Similarly with self-recursive call. Purge | |
31701 | non-marked types from TYPE_NEXT_VARIANT list. | |
31702 | (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t). | |
31703 | ||
31704 | 2019-03-21 Jakub Jelinek <jakub@redhat.com> | |
31705 | ||
31706 | * hash-table.h (hash_table): Add Lazy template parameter defaulted | |
31707 | to false, if true, don't alloc_entries during construction, but defer | |
31708 | it to the first method that needs m_entries allocated. | |
31709 | (hash_table::hash_table, hash_table::~hash_table, | |
31710 | hash_table::alloc_entries, hash_table::find_empty_slot_for_expand, | |
31711 | hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow, | |
31712 | hash_table::clear_slot, hash_table::traverse_noresize, | |
31713 | hash_table::traverse, hash_table::iterator::slide): Adjust all methods. | |
31714 | * hash-set.h (hash_set): Add Lazy template parameter defaulted to | |
31715 | false. | |
31716 | (hash_set::contains): If Lazy is true, use find_slot_with_hash with | |
31717 | NO_INSERT instead of find_with_hash. | |
31718 | (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter, | |
31719 | hash_set::m_table): Add Lazy to template params of hash_table. | |
31720 | (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param. | |
31721 | * attribs.c (test_attribute_exclusions): Likewise. | |
31722 | * hash-set-tests.c (test_set_of_strings): Add iterator tests for | |
31723 | hash_set. Add tests for hash_set with Lazy = true. | |
31724 | ||
31725 | 2019-03-21 Richard Biener <rguenther@suse.de> | |
31726 | ||
31727 | PR tree-optimization/89779 | |
31728 | * tree.c (tree_nop_conversion): Consolidate and fix defensive | |
31729 | checks with respect to released SSA names now having error_mark_node | |
31730 | type. | |
31731 | * fold-const.c (operand_equal_p): Likewise. | |
31732 | ||
31733 | 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com> | |
31734 | ||
31735 | PR target/89775 | |
31736 | * config/s390/s390.c (global_not_special_regno_p): Move to make it | |
31737 | available to ... | |
31738 | (s390_optimize_register_info): Use global_not_special_regno_p to | |
31739 | check for global regs. | |
31740 | ||
31741 | 2019-03-20 Jakub Jelinek <jakub@redhat.com> | |
31742 | ||
31743 | PR target/89752 | |
31744 | * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't | |
31745 | update this_alternative nor this_alternative_set. | |
31746 | ||
31747 | 2019-03-19 Jim Wilson <jimw@sifive.com> | |
31748 | ||
31749 | PR target/89411 | |
31750 | * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals | |
31751 | align, size, offset. Use them to handle a BLKmode reference. Update | |
31752 | comment. | |
31753 | (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p. | |
31754 | ||
31755 | 2019-03-19 Jakub Jelinek <jakub@redhat.com> | |
31756 | ||
31757 | PR rtl-optimization/89768 | |
31758 | * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode | |
31759 | instead of GEN_INT. | |
31760 | (unroll_loop_runtime_iterations): Likewise. | |
31761 | ||
31762 | 2019-03-19 Martin Sebor <msebor@redhat.com> | |
31763 | ||
31764 | PR tree-optimization/89644 | |
31765 | * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p | |
31766 | rather than endptr as an indicator of nul-termination. | |
31767 | ||
31768 | PR tree-optimization/89644 | |
31769 | * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated | |
31770 | arrays in determining sequence sizes in strncpy and stpncpy. | |
31771 | ||
31772 | 2019-03-19 Martin Liska <mliska@suse.cz> | |
31773 | ||
31774 | PR middle-end/89737 | |
31775 | * predict.c (combine_predictions_for_bb): Empty likely_edges and | |
31776 | unlikely_edges if there's an edge that belongs to both these sets. | |
31777 | ||
31778 | 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org> | |
31779 | ||
31780 | PR target/89746 | |
31781 | * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a | |
31782 | non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned, | |
31783 | go via a stack temporary. | |
31784 | ||
31785 | 2019-03-19 Jakub Jelinek <jakub@redhat.com> | |
31786 | ||
31787 | PR target/89378 | |
31788 | * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart | |
31789 | instead of gen_rtx_SUBREG. | |
31790 | * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise. | |
31791 | ||
31792 | 2019-03-19 Richard Biener <rguenther@suse.de> | |
31793 | ||
31794 | PR debug/88389 | |
31795 | * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO. | |
31796 | ||
31797 | 2019-03-19 Jan Hubicka <hubicka@ucw.cz> | |
31798 | ||
31799 | PR lto/87809 | |
31800 | PR lto/89335 | |
31801 | * tree.c (free_lang_data_in_decl): Do not free context of C++ | |
31802 | destrutors. | |
31803 | ||
31804 | 2019-03-19 Jakub Jelinek <jakub@redhat.com> | |
31805 | ||
31806 | PR target/89506 | |
31807 | * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use | |
31808 | subs for the first alternative except when operands[3] is 1. | |
31809 | ||
31810 | PR target/89752 | |
31811 | * gimplify.c (gimplify_asm_expr): For output argument with | |
31812 | TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise | |
31813 | diagnose error. | |
31814 | ||
31815 | 2019-03-19 Eric Botcazou <ebotcazou@adacore.com> | |
31816 | ||
31817 | PR rtl-optimization/89753 | |
31818 | * loop-unroll.c (decide_unroll_constant_iterations): Make guard for | |
31819 | explicit unrolling factor even more robust. | |
31820 | ||
31821 | 2019-03-19 Jakub Jelinek <jakub@redhat.com> | |
31822 | ||
31823 | PR target/89726 | |
31824 | * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil | |
31825 | compensation use x2 += 1 instead of x2 -= -1 and when honoring | |
31826 | signed zeros, do another copysign after the compensation. | |
31827 | ||
31828 | 2019-03-18 Martin Sebor <msebor@redhat.com> | |
31829 | ||
31830 | PR tree-optimization/89720 | |
31831 | * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min | |
31832 | more conservatively, the same as anti-range. | |
31833 | ||
31834 | 2019-03-18 Richard Biener <rguenther@suse.de> | |
31835 | ||
31836 | PR middle-end/88945 | |
31837 | * tree-ssanames.c (release_ssa_name_fn): For released SSA names | |
31838 | use a TREE_TYPE of error_mark_node to avoid ICEs when dumping | |
31839 | basic-blocks that are removed. Remove restoring SSA_NAME_VAR. | |
31840 | * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking. | |
31841 | ||
31842 | 2019-03-18 Andrew Stubbs <ams@codesourcery.com> | |
31843 | ||
31844 | * config/gcn/gcn-run.c (struct output): Make next_output unsigned. | |
31845 | Extend queue to 1024 entries. | |
31846 | Add "consumed" field. | |
31847 | (gomp_print_output): Remove print_index parameter. | |
31848 | Add final parameter. | |
31849 | Change limit to unsigned. | |
31850 | Use consumed field to implement circular buffer. | |
31851 | Detect interrupted print in final pass. | |
31852 | Flush output at the end. | |
31853 | (run): Update gomp_print_output usage. | |
31854 | (main): Initialize kernargs->output_data.consumed. | |
31855 | ||
31856 | 2019-03-18 Richard Sandiford <richard.sandiford@arm.com> | |
31857 | ||
31858 | * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the | |
31859 | calculation of the minimum number of scalar iterations for | |
31860 | fully-predicated loops. | |
31861 | ||
31862 | 2019-03-18 Martin Jambor <mjambor@suse.cz> | |
31863 | ||
31864 | PR tree-optimization/89546 | |
31865 | * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if | |
31866 | any propagation to its children took place. | |
31867 | ||
31868 | 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com> | |
31869 | ||
31870 | PR target/89627 | |
31871 | * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset | |
31872 | parameter, and make use of it. | |
31873 | (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single. | |
31874 | ||
31875 | 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com> | |
31876 | ||
31877 | * config/arc/arc.opt (mcode-density-frame): Get the inital value | |
31878 | from TARGET_CODE_DENSITY_FRAME_DEFAULT. | |
31879 | * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. | |
31880 | * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define. | |
31881 | * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to | |
31882 | match what the ops is doing. | |
31883 | (push_multi_fp_blink): Likewise. | |
31884 | * config/arc/arc.c (arc_override_options): Enable enter/leave when | |
31885 | compiling for size and elf target. | |
31886 | (arc_save_callee_enter): Adjust note to match what enter/leave | |
31887 | operation does. | |
31888 | ||
31889 | 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com> | |
31890 | ||
31891 | * config/arc/arc.md (tst_movb): Fix constraint. | |
31892 | ||
31893 | 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com> | |
31894 | ||
31895 | * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define. | |
31896 | ||
31897 | 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com> | |
31898 | ||
31899 | * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare. | |
31900 | * config/arc/arc.c (arc_conditional_register_usage): Remove all | |
31901 | reg_alloc_order references. | |
31902 | (size_alloc_order): Define. | |
31903 | (arc_adjust_reg_alloc_order): New function. | |
31904 | * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register | |
31905 | order. | |
31906 | (ADJUST_REG_ALLOC_ORDER): Define. | |
31907 | (HONOR_REG_ALLOC_ORDER): Likewise. | |
31908 | ||
31909 | 2019-03-18 Richard Biener <rguenther@suse.de> | |
31910 | ||
31911 | PR target/87561 | |
31912 | * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided | |
31913 | loads and stores a bit more. | |
31914 | ||
31915 | 2019-03-18 Richard Biener <rguenther@suse.de> | |
31916 | ||
31917 | PR target/87561 | |
31918 | * config/i386/i386.c (ix86_add_stmt_cost): Apply strided | |
31919 | load pessimization to stores as well. | |
31920 | ||
31921 | 2019-03-18 Andrey Belevantsev <abel@ispras.ru> | |
31922 | ||
31923 | PR middle-end/86979 | |
31924 | * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible | |
31925 | successor, use NULL as its av set. | |
31926 | ||
31927 | 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org> | |
31928 | ||
31929 | PR rtl-optimization/89721 | |
31930 | * lra-constraints (invariant_p): Return false if side_effects_p holds. | |
31931 | ||
31932 | 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
31933 | ||
31934 | PR target/87532 | |
31935 | * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): | |
31936 | When handling vec_extract, use modular arithmetic to allow | |
31937 | constant selectors greater than vector length. | |
31938 | * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow | |
31939 | V1TImode vectors to have constant selector values greater than 0. | |
31940 | Use modular arithmetic to compute vector index. | |
31941 | (rs6000_split_vec_extract_var): Use modular arithmetic to compute | |
31942 | index for in-memory vectors. Correct code generation for | |
31943 | in-register vectors. | |
31944 | (altivec_expand_vec_ext_builtin): Use modular arithmetic to | |
31945 | compute index. | |
31946 | ||
31947 | 2019-03-15 Alexandre Oliva <aoliva@redhat.com> | |
31948 | ||
31949 | PR c++/88534 | |
31950 | PR c++/88537 | |
31951 | * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of | |
31952 | VAR_DECL args. | |
31953 | ||
31954 | 2019-03-15 Jakub Jelinek <jakub@redhat.com> | |
31955 | ||
31956 | PR c++/89709 | |
31957 | * tree.c (inchash::add_expr): Strip any location wrappers. | |
31958 | * fold-const.c (operand_equal_p): Move stripping of location wrapper | |
31959 | after hash verification. | |
31960 | ||
31961 | PR debug/89704 | |
31962 | * dwarf2out.c (add_const_value_attribute): Return false for MINUS, | |
31963 | SIGN_EXTEND and ZERO_EXTEND. | |
31964 | ||
31965 | 2019-03-14 Jason Merrill <jason@redhat.com> | |
31966 | Jakub Jelinek <jakub@redhat.com> | |
31967 | ||
31968 | * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather | |
31969 | than if is_empty (*slot). | |
31970 | * hash-set-tests.c (test_set_of_strings): Add tests for addition of | |
31971 | existing elt and for elt removal. | |
31972 | * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal | |
31973 | of already removed elt. | |
31974 | ||
31975 | 2019-03-15 H.J. Lu <hongjiu.lu@intel.com> | |
31976 | ||
31977 | PR target/89650 | |
31978 | * config/i386/i386.c (remove_partial_avx_dependency): Handle | |
31979 | REG_EH_REGION note. | |
31980 | ||
31981 | 2019-03-14 Martin Liska <mliska@suse.cz> | |
31982 | ||
31983 | PR other/89712 | |
31984 | * doc/invoke.texi: Remove -fdump-class-hierarchy option. | |
31985 | ||
31986 | 2019-03-14 Richard Biener <rguenther@suse.de> | |
31987 | ||
31988 | PR target/89711 | |
31989 | * config/i386/i386.c (make_resolver_func): Properly set | |
31990 | DECL_CONTEXT on the RESULT_DECL. | |
31991 | * config/rs6000/rs6000.c (make_resolver_func): Likewise. | |
31992 | ||
31993 | 2019-03-14 Richard Biener <rguenther@suse.de> | |
31994 | ||
31995 | * gimple-pretty-print.c: Include cfgloop.h. | |
31996 | (dump_gimple_phi): Adjust. | |
31997 | (dump_gimple_bb_header): Dump loop header for GIMPLE. | |
31998 | (pp_cfg_jump): Adjust. | |
31999 | (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well. | |
32000 | * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call. | |
32001 | (lower_phi_internal_fn): Remove. | |
32002 | (verify_gimple_call): Remove IFN_PHI special-casing. | |
32003 | (dump_function_to_file): Dump IL state. | |
32004 | * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes | |
32005 | done to deal with PHI nodes being present in non-SSA state. | |
32006 | ||
32007 | 2019-03-14 Jakub Jelinek <jakub@redhat.com> | |
32008 | ||
32009 | PR ipa/89684 | |
32010 | * multiple_target.c (create_dispatcher_calls): Change | |
32011 | references_to_redirect from vector of ipa_ref * to vector of ipa_ref. | |
32012 | In the node->iterate_referring loop, push *ref rather than ref, call | |
32013 | ref->remove_reference () and always pass 0 to iterate_referring. | |
32014 | ||
32015 | PR rtl-optimization/89679 | |
32016 | * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it | |
32017 | would contain a paradoxical SUBREG. | |
32018 | ||
32019 | 2019-03-14 Richard Biener <rguenther@suse.de> | |
32020 | ||
32021 | PR tree-optimization/89710 | |
32022 | * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use | |
32023 | safe_dyn_cast. | |
32024 | ||
32025 | 2019-03-14 Martin Liska <mliska@suse.cz> | |
32026 | ||
32027 | * coverage.c (coverage_begin_function): Stream also | |
32028 | end_column. | |
32029 | * doc/gcov.texi: Document 2 new fields in JSON file. Improve | |
32030 | documentation about function declaration location. | |
32031 | * gcov-dump.c (tag_function): Print whole range | |
32032 | of function declaration. | |
32033 | * gcov.c (struct function_info): Add end_column field. | |
32034 | (function_info::function_info): Initialize it. | |
32035 | (output_json_intermediate_file): Output {start,end}_column | |
32036 | fields. | |
32037 | (read_graph_file): Read end_column. | |
32038 | ||
32039 | 2019-03-14 Richard Biener <rguenther@suse.de> | |
32040 | ||
32041 | PR middle-end/89698 | |
32042 | * fold-const.c (operand_equal_p): For INDIRECT_REF check | |
32043 | that the access types are similar. | |
32044 | ||
32045 | 2019-03-14 Jakub Jelinek <jakub@redhat.com> | |
32046 | ||
32047 | PR tree-optimization/89703 | |
32048 | * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types | |
32049 | aren't compatible also with builtin_decl_explicit. Check pure | |
32050 | or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}} | |
32051 | and BUILT_IN_STPNCPY{,_CHK}. | |
32052 | ||
32053 | 2019-03-14 H.J. Lu <hongjiu.lu@intel.com> | |
32054 | ||
32055 | PR target/89523 | |
32056 | * config/i386/i386.c (ix86_print_operand): Handle 'M' to add | |
32057 | addr32 prefix to VSIB address for X32. | |
32058 | * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend | |
32059 | "%M2" to opcode. | |
32060 | (*avx512pf_gatherpf<mode>df_mask): Likewise. | |
32061 | (*avx512pf_scatterpf<mode>sf_mask): Likewise. | |
32062 | (*avx512pf_scatterpf<mode>df_mask): Likewise. | |
32063 | (*avx2_gathersi<mode>): Prepend "%M3" to opcode. | |
32064 | (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode. | |
32065 | (*avx2_gatherdi<mode>): Prepend "%M3" to opcode. | |
32066 | (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode. | |
32067 | (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode. | |
32068 | (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.` | |
32069 | (*avx512f_gathersi<mode>): Prepend "%M4" to opcode. | |
32070 | (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode. | |
32071 | (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode. | |
32072 | (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode. | |
32073 | (*avx512f_scattersi<mode>): Prepend "%M0" to opcode. | |
32074 | (*avx512f_scatterdi<mode>): Likewise. | |
32075 | ||
32076 | 2019-03-13 Vladimir Makarov <vmakarov@redhat.com> | |
32077 | ||
32078 | PR target/85860 | |
32079 | * lra-constraints.c (inherit_in_ebb): Update | |
32080 | potential_reload_hard_regs along with live_hard_regs. | |
32081 | ||
32082 | 2019-03-13 Jakub Jelinek <jakub@redhat.com> | |
32083 | ||
32084 | PR debug/89498 | |
32085 | * dwarf2out.c (size_of_die): For dw_val_class_view_list always use | |
32086 | DWARF_OFFSET_SIZE. | |
32087 | (value_format): For dw_val_class_view_list never use DW_FORM_loclistx. | |
32088 | ||
32089 | 2019-03-13 Martin Sebor <msebor@redhat.com> | |
32090 | ||
32091 | PR tree-optimization/89662 | |
32092 | * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type | |
32093 | has a size. | |
32094 | ||
32095 | 2019-03-13 Richard Biener <rguenther@suse.de> | |
32096 | ||
32097 | PR middle-end/89677 | |
32098 | * tree-scalar-evolution.c (simplify_peeled_chrec): Do not | |
32099 | throw FP expressions at tree-affine. | |
32100 | ||
32101 | 2019-03-14 Richard Biener <rguenther@suse.de> | |
32102 | ||
32103 | * tree-pretty-print.c (dump_generic_node): For -gimple properly | |
32104 | dump negative integer constants using _Literal (type) -num. | |
32105 | ||
32106 | 2019-03-13 Jakub Jelinek <jakub@redhat.com> | |
32107 | ||
32108 | * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove | |
32109 | nonlocal_value member. | |
32110 | ||
32111 | PR middle-end/88588 | |
32112 | * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args. | |
32113 | (ipa_simd_modify_function_body): Handle PHIs. | |
32114 | ||
32115 | 2019-03-12 Robin Dapp <rdapp@linux.ibm.com> | |
32116 | ||
32117 | * config/s390/s390.c (s390_option_override_internal): Use more | |
32118 | aggressive inlining parameters. | |
32119 | ||
32120 | 2019-03-12 Robin Dapp <rdapp@linux.ibm.com> | |
32121 | ||
32122 | * config/s390/3906.md: New file. | |
32123 | * config/s390/s390.c (MAX_SCHED_UNITS): Increase. | |
32124 | (LONGRUNNING_THRESHOLD): Remove. | |
32125 | (MAX_SCHED_MIX_SCORE): Decrease. | |
32126 | (MAX_SCHED_MIX_DISTANCE): Decrease. | |
32127 | (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely. | |
32128 | (struct s390_sched_state): New struct to hold scheduling state. | |
32129 | (S390_SCHED_STATE_NORMAL): Remove. | |
32130 | (S390_SCHED_STATE_CRACKED): Remove. | |
32131 | (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add. | |
32132 | (s390_get_sched_attrmask): Use new attribute. | |
32133 | (s390_get_unit_mask): Use new units. | |
32134 | (s390_is_fpd): New function. | |
32135 | (s390_is_fxd): New function. | |
32136 | (s390_is_longrunning): New function. | |
32137 | (s390_sched_score): Use new functions. | |
32138 | (s390_sched_reorder): Likewise. | |
32139 | (s390_sched_variable_issue): Rework and use new functions. | |
32140 | (s390_sched_init): Use new functions. | |
32141 | * config/s390/s390.h (s390_tune_attr): Add z14. | |
32142 | * config/s390/s390.md: Add z14. | |
32143 | ||
32144 | 2019-03-12 Robin Dapp <rdapp@linux.ibm.com> | |
32145 | ||
32146 | * config/s390/2964.md: Update pipeline description. | |
32147 | * config/s390/s390.c (MAX_SCHED_UNITS): Increase. | |
32148 | (LONGRUNNING_THRESHOLD): Remove. | |
32149 | (LATENCY_FACTOR): Remove. | |
32150 | (s390_get_unit_mask): Add unit. | |
32151 | (s390_sched_score): Use fxd/fpd. | |
32152 | (s390_sched_variable_issue): Use fxd/fpd. | |
32153 | ||
32154 | 2019-03-12 Martin Liska <mliska@suse.cz> | |
32155 | ||
32156 | * config/i386/i386.c: Reword an error message. | |
32157 | ||
32158 | 2019-03-12 Martin Jambor <mjambor@suse.cz> | |
32159 | ||
32160 | * cgraph.c (cgraph_node::dump): Dump more info for former thunks, | |
32161 | terminate with newline. | |
32162 | ||
32163 | 2019-03-12 Jakub Jelinek <jakub@redhat.com> | |
32164 | ||
32165 | PR target/52726 | |
32166 | * config/s390/s390.md (tabort): Use %wd instead of | |
32167 | HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital | |
32168 | letters and periods. | |
32169 | * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in | |
32170 | output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace | |
32171 | 's with %< and %>. | |
32172 | ||
32173 | PR middle-end/89663 | |
32174 | * builtins.c (expand_builtin_int_roundingfn, | |
32175 | expand_builtin_int_roundingfn_2): Return NULL_RTX instead of | |
32176 | gcc_unreachable if validate_arglist fails. | |
32177 | ||
32178 | 2019-03-12 Richard Biener <rguenther@suse.de> | |
32179 | ||
32180 | PR tree-optimization/89664 | |
32181 | * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly | |
32182 | free the occurance tree after the early out. | |
32183 | ||
32184 | 2019-03-11 Jakub Jelinek <jakub@redhat.com> | |
32185 | ||
32186 | PR middle-end/89655 | |
32187 | PR bootstrap/89656 | |
32188 | * vr-values.c (vr_values::update_value_range): If | |
32189 | old_vr->varying_p (), don't update it, make new_vr also VARYING | |
32190 | and return false. | |
32191 | ||
32192 | 2019-03-11 Martin Liska <mliska@suse.cz> | |
32193 | ||
32194 | * config/aarch64/aarch64.c (aarch64_override_options_internal): | |
32195 | Fix double string quoting. | |
32196 | ||
32197 | 2019-03-11 Martin Liska <mliska@suse.cz> | |
32198 | ||
32199 | * collect-utils.c (collect_wait): Wrap apostrophes | |
32200 | in gcc internal format with %'. | |
32201 | * collect2.c (main): Likewise. | |
32202 | (scan_prog_file): Likewise. | |
32203 | (scan_libraries): Likewise. | |
32204 | * config/i386/i386.c (ix86_expand_call): Likewise. | |
32205 | (ix86_handle_interrupt_attribute): Likewise. | |
32206 | * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise. | |
32207 | * config/nds32/nds32.c (nds32_insert_attributes): Likewise. | |
32208 | * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise. | |
32209 | * lto-wrapper.c (find_crtoffloadtable): Likewise. | |
32210 | * symtab.c (symtab_node::verify_base): Likewise. | |
32211 | * tree-cfg.c (verify_gimple_label): Likewise. | |
32212 | * tree.c (verify_type_variant): Likewise. | |
32213 | ||
32214 | 2019-03-11 Martin Liska <mliska@suse.cz> | |
32215 | ||
32216 | * builtins.c (expand_builtin_thread_pointer): Wrap an option name | |
32217 | in a string format message and fix GNU coding style. | |
32218 | (expand_builtin_set_thread_pointer): Likewise. | |
32219 | * common/config/aarch64/aarch64-common.c | |
32220 | (aarch64_rewrite_selected_cpu): Likewise. | |
32221 | * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise. | |
32222 | * common/config/arc/arc-common.c (arc_handle_option): Likewise. | |
32223 | * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise. | |
32224 | * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise. | |
32225 | * common/config/i386/i386-common.c (ix86_handle_option): Likewise. | |
32226 | * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise. | |
32227 | * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise. | |
32228 | * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise. | |
32229 | * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise. | |
32230 | * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option): | |
32231 | Likewise. | |
32232 | * common/config/riscv/riscv-common.c | |
32233 | (riscv_subset_list::parsing_subset_version): Likewise. | |
32234 | (riscv_subset_list::parse_std_ext): Likewise. | |
32235 | (riscv_subset_list::parse_sv_or_non_std_ext): Likewise. | |
32236 | (riscv_subset_list::parse): Likewise. | |
32237 | * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise. | |
32238 | * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise. | |
32239 | (aarch64_override_options_internal): Likewise. | |
32240 | (aarch64_validate_mcpu): Likewise. | |
32241 | (aarch64_validate_march): Likewise. | |
32242 | (aarch64_validate_mtune): Likewise. | |
32243 | (aarch64_override_options): Likewise. | |
32244 | * config/alpha/alpha.c (alpha_option_override): Likewise. | |
32245 | * config/arc/arc.c (arc_init): Likewise. | |
32246 | (parse_mrgf_banked_regs_option): Likewise. | |
32247 | (arc_override_options): Likewise. | |
32248 | (arc_expand_builtin_aligned): Likewise. | |
32249 | * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise. | |
32250 | (arm_expand_builtin): Likewise. | |
32251 | * config/arm/arm.c (arm_option_check_internal): Likewise. | |
32252 | (arm_configure_build_target): Likewise. | |
32253 | (arm_option_override): Likewise. | |
32254 | (arm_options_perform_arch_sanity_checks): Likewise. | |
32255 | (arm_handle_cmse_nonsecure_entry): Likewise. | |
32256 | (arm_handle_cmse_nonsecure_call): Likewise. | |
32257 | (arm_tls_referenced_p): Likewise. | |
32258 | (thumb1_expand_prologue): Likewise. | |
32259 | * config/avr/avr.c (avr_option_override): Likewise. | |
32260 | * config/bfin/bfin.c (bfin_option_override): Likewise. | |
32261 | * config/c6x/c6x.c (c6x_option_override): Likewise. | |
32262 | * config/cr16/cr16.c (cr16_override_options): Likewise. | |
32263 | * config/cris/cris.c (cris_option_override): Likewise. | |
32264 | * config/csky/csky.c (csky_handle_isr_attribute): Likewise. | |
32265 | * config/darwin-c.c (macosx_version_as_macro): Likewise. | |
32266 | * config/darwin.c (darwin_override_options): Likewise. | |
32267 | * config/frv/frv.c (frv_expand_builtin): Likewise. | |
32268 | * config/h8300/h8300.c (h8300_option_override): Likewise. | |
32269 | * config/i386/i386.c (parse_mtune_ctrl_str): Likewise. | |
32270 | (ix86_option_override_internal): Likewise. | |
32271 | (warn_once_call_ms2sysv_xlogues): Likewise. | |
32272 | (ix86_expand_prologue): Likewise. | |
32273 | (split_stack_prologue_scratch_regno): Likewise. | |
32274 | (ix86_warn_parameter_passing_abi): Likewise. | |
32275 | * config/ia64/ia64.c (fix_range): Likewise. | |
32276 | * config/m68k/m68k.c (m68k_option_override): Likewise. | |
32277 | * config/microblaze/microblaze.c (microblaze_option_override): Likewise. | |
32278 | * config/mips/mips.c (mips_emit_probe_stack_range): Likewise. | |
32279 | (mips_set_compression_mode): Likewise. | |
32280 | * config/mmix/mmix.c (mmix_option_override): Likewise. | |
32281 | * config/mn10300/mn10300.c (mn10300_option_override): Likewise. | |
32282 | * config/msp430/msp430.c (msp430_option_override): Likewise. | |
32283 | * config/nds32/nds32.c (nds32_option_override): Likewise. | |
32284 | * config/nios2/nios2.c (nios2_custom_check_insns): Likewise. | |
32285 | (nios2_option_override): Likewise. | |
32286 | (nios2_expand_custom_builtin): Likewise. | |
32287 | * config/nvptx/mkoffload.c (main): Likewise. | |
32288 | * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise. | |
32289 | * config/pa/pa.c (fix_range): Likewise. | |
32290 | (pa_option_override): Likewise. | |
32291 | * config/riscv/riscv.c (riscv_parse_cpu): Likewise. | |
32292 | (riscv_option_override): Likewise. | |
32293 | * config/rl78/rl78.c (rl78_option_override): Likewise. | |
32294 | * config/rs6000/aix61.h: Likewise. | |
32295 | * config/rs6000/aix71.h: Likewise. | |
32296 | * config/rs6000/aix72.h: Likewise. | |
32297 | * config/rs6000/driver-rs6000.c (elf_platform): Likewise. | |
32298 | * config/rs6000/freebsd64.h: Likewise. | |
32299 | * config/rs6000/linux64.h: Likewise. | |
32300 | * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise. | |
32301 | (rs6000_expand_zeroop_builtin): Likewise. | |
32302 | (rs6000_expand_mtfsb_builtin): Likewise. | |
32303 | (rs6000_expand_set_fpscr_rn_builtin): Likewise. | |
32304 | (rs6000_expand_set_fpscr_drn_builtin): Likewise. | |
32305 | (rs6000_invalid_builtin): Likewise. | |
32306 | (rs6000_expand_split_stack_prologue): Likewise. | |
32307 | * config/rs6000/rtems.h: Likewise. | |
32308 | * config/rx/rx.c (valid_psw_flag): Likewise. | |
32309 | (rx_expand_builtin): Likewise. | |
32310 | * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise. | |
32311 | * config/s390/s390.c (s390_expand_builtin): Likewise. | |
32312 | (s390_function_profiler): Likewise. | |
32313 | (s390_option_override_internal): Likewise. | |
32314 | (s390_option_override): Likewise. | |
32315 | * config/sh/sh.c (sh_option_override): Likewise. | |
32316 | (sh_builtin_saveregs): Likewise. | |
32317 | (sh_fix_range): Likewise. | |
32318 | * config/sh/vxworks.h: Likewise. | |
32319 | * config/sparc/sparc.c (sparc_option_override): Likewise. | |
32320 | * config/spu/spu.c (spu_option_override): Likewise. | |
32321 | (fix_range): Likewise. | |
32322 | * config/visium/visium.c (visium_option_override): Likewise. | |
32323 | (visium_handle_interrupt_attr): Likewise. | |
32324 | * config/xtensa/xtensa.c (xtensa_option_override): Likewise. | |
32325 | * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise. | |
32326 | (dbg_cnt_process_opt): Likewise. | |
32327 | * dwarf2out.c (output_dwarf_version): Likewise. | |
32328 | * except.c (expand_eh_return): Likewise. | |
32329 | * gcc.c (defined): Likewise. | |
32330 | (driver_handle_option): Likewise. | |
32331 | (process_command): Likewise. | |
32332 | (compare_files): Likewise. | |
32333 | (driver::prepare_infiles): Likewise. | |
32334 | (driver::do_spec_on_infiles): Likewise. | |
32335 | (driver::maybe_run_linker): Likewise. | |
32336 | * omp-offload.c (oacc_parse_default_dims): Likewise. | |
32337 | * opts-global.c (handle_common_deferred_options): Likewise. | |
32338 | * opts.c (parse_sanitizer_options): Likewise. | |
32339 | (common_handle_option): Likewise. | |
32340 | (enable_warning_as_error): Likewise. | |
32341 | * passes.c (enable_disable_pass): Likewise. | |
32342 | * plugin.c (parse_plugin_arg_opt): Likewise. | |
32343 | (default_plugin_dir_name): Likewise. | |
32344 | * targhooks.c (default_expand_builtin_saveregs): Likewise. | |
32345 | (default_pch_valid_p): Likewise. | |
32346 | * toplev.c (init_asm_output): Likewise. | |
32347 | (process_options): Likewise. | |
32348 | (toplev::run_self_tests): Likewise. | |
32349 | * tree-cfg.c (verify_gimple_call): Likewise. | |
32350 | * tree-inline.c (inline_forbidden_p_stmt): Likewise. | |
32351 | (tree_inlinable_function_p): Likewise. | |
32352 | * var-tracking.c (vt_find_locations): Likewise. | |
32353 | ||
32354 | 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com> | |
32355 | ||
32356 | * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not | |
32357 | only on the else branch. | |
32358 | ||
32359 | 2019-03-11 Martin Liska <mliska@suse.cz> | |
32360 | ||
32361 | * gcov.c (output_intermediate_json_line): Print function | |
32362 | name of each line. | |
32363 | (output_json_intermediate_file): Add new argument. | |
32364 | * doc/gcov.texi: Document the change. | |
32365 | ||
32366 | 2019-03-11 Eric Botcazou <ebotcazou@adacore.com> | |
32367 | ||
32368 | PR rtl-optimization/89588 | |
32369 | * loop-unroll.c (decide_unroll_constant_iterations): Make guard for | |
32370 | explicit unrolling factor more robust. | |
32371 | ||
32372 | 2019-03-11 Richard Biener <rguenther@suse.de> | |
32373 | ||
32374 | PR tree-optimization/89649 | |
32375 | * tree-vectorizer.h (vect_loop_versioning): Adjust prototype. | |
32376 | * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize | |
32377 | on the prolog and epilog loops. | |
32378 | (vect_loop_versioning): Return copy of loop. | |
32379 | * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize | |
32380 | on the non-vectorized version of the loop. | |
32381 | ||
32382 | 2019-03-10 Uroš Bizjak <ubizjak@gmail.com> | |
32383 | ||
32384 | PR target/68924 | |
32385 | * config/i386/sse.md (*vec_extractv2di_0_sse): | |
32386 | Add (=r,x) alternative and corresponding splitter. | |
32387 | ||
32388 | 2019-03-10 Martin Jambor <mjambor@suse.cz> | |
32389 | ||
32390 | PR tree-optimization/85762 | |
32391 | PR tree-optimization/87008 | |
32392 | PR tree-optimization/85459 | |
32393 | * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool | |
32394 | it points to if there is a type changing MEM_REF. Adjust all callers. | |
32395 | (build_accesses_from_assign): Disable total scalarization if | |
32396 | contains_vce_or_bfcref_p returns true through the new parameter, for | |
32397 | both rhs and lhs. | |
32398 | ||
32399 | 2019-03-09 Jakub Jelinek <jakub@redhat.com> | |
32400 | ||
32401 | PR c/88568 | |
32402 | * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for | |
32403 | dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT. | |
32404 | ||
32405 | PR target/79645 | |
32406 | * common.opt (fdiagnostics-show-labels, | |
32407 | fdiagnostics-show-line-numbers, fdiagnostics-format=, | |
32408 | fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support, | |
32409 | gas-locview-support, ginline-points, ginternal-reset-location-views): | |
32410 | Terminate description text with a dot. | |
32411 | * config/microblaze/microblaze.opt (mxl-prefetch): Likewise. | |
32412 | * config/mcore/mcore.opt (m210, m340): Likewise. | |
32413 | * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove, | |
32414 | mnops=): Start description text with a capital letter. | |
32415 | * config/arc/arc.opt (msize-level=): Likewise. | |
32416 | * config/sh/sh.opt (minline-ic_invalidate): Likewise. | |
32417 | * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib, | |
32418 | mnewlib): Likewise. | |
32419 | * config/ft32/ft32.opt (msim): Likewise. | |
32420 | (mft32b, mcompress): Likewise. Terminate description text with a dot. | |
32421 | (mnodiv, mnopm): Terminate description text with a dot. | |
32422 | * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with | |
32423 | a colon. | |
32424 | * config/i386/i386.opt (prefer_vector_width, instrument_return): | |
32425 | Likewise. | |
32426 | * config/rx/rx.opt (nofpu): Remove trailing spaces from description | |
32427 | text. | |
32428 | ||
32429 | PR rtl-optimization/89634 | |
32430 | * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1 | |
32431 | are modified in BB_END (e->src) instruction. | |
32432 | ||
32433 | 2019-03-08 David Malcolm <dmalcolm@redhat.com> | |
32434 | ||
32435 | PR target/79926 | |
32436 | * config/i386/i386.c (ix86_set_current_function): Make "sorry" | |
32437 | messages more amenable to translation, and improve wording. | |
32438 | ||
32439 | 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com> | |
32440 | ||
32441 | * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild | |
32442 | ud- and du-chains between phases. | |
32443 | ||
32444 | 2019-03-08 Richard Sandiford <richard.sandiford@arm.com> | |
32445 | ||
32446 | PR debug/89631 | |
32447 | * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT | |
32448 | instead of POLY_INT_CST. | |
32449 | ||
32450 | 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
32451 | ||
32452 | * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE | |
32453 | requirement. | |
32454 | ||
32455 | 2019-03-08 Uroš Bizjak <ubizjak@gmail.com> | |
32456 | ||
32457 | PR target/68924 | |
32458 | PR target/78782 | |
32459 | PR target/87558 | |
32460 | * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic. | |
32461 | (_mm_storeu_si64): Ditto. | |
32462 | ||
32463 | 2019-03-08 Martin Liska <mliska@suse.cz> | |
32464 | ||
32465 | PR target/86952 | |
32466 | * config/i386/i386.c (ix86_option_override_internal): Disable | |
32467 | jump tables when retpolines are used. | |
32468 | ||
32469 | 2019-03-08 Jan Hubicka <hubicka@ucw.cz> | |
32470 | ||
32471 | PR go/63560 | |
32472 | * ipa-split.c (execute_split_functions): Do not split | |
32473 | 'noinline' or 'section' function. | |
32474 | ||
32475 | 2019-03-08 Jakub Jelinek <jakub@redhat.com> | |
32476 | ||
32477 | PR target/79846 | |
32478 | * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of | |
32479 | HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of | |
32480 | HOST_WIDE_INT_PRINT_DEC. Formatting fixes. | |
32481 | ||
32482 | PR ipa/80000 | |
32483 | * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces | |
32484 | from diagnostics. Formatting fixes. | |
32485 | ||
32486 | PR target/85665 | |
32487 | * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in | |
32488 | warn_odr diagnostics. | |
32489 | ||
32490 | PR other/80058 | |
32491 | * lra-constraints.c (process_alt_operands): Avoid one space before | |
32492 | " at the end of line and another after " on another line in a string | |
32493 | literal. | |
32494 | * attribs.c (handle_dll_attribute): Likewise. | |
32495 | * config/avr/avr-devices.c (avr_texinfo): Likewise. | |
32496 | ||
32497 | * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap | |
32498 | warning_at or inform messages in G_() if there is no ?:. | |
32499 | ||
32500 | PR tree-optimization/89550 | |
32501 | * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at | |
32502 | returned true. Formatting fixes. | |
32503 | (expand_builtin_strnlen): Formatting fixes. | |
32504 | * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING | |
32505 | if warning_at returned true. | |
32506 | * tree-cfg.c (pass_warn_function_return::execute): Likewise. | |
32507 | ||
32508 | 2019-03-08 Richard Biener <rguenther@suse.de> | |
32509 | ||
32510 | PR middle-end/89578 | |
32511 | * cfgloop.h (struct loop): Add owned_clique field. | |
32512 | * cfgloopmanip.c (copy_loop_info): Copy it. | |
32513 | * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique | |
32514 | cliques. | |
32515 | * tree-inline.c (copy_loops): Remap owned_clique. | |
32516 | * lto-streamer-in.c (input_cfg): Stream owned_clique. | |
32517 | * lto-streamer-out.c (output_cfg): Likewise. | |
32518 | ||
32519 | 2019-03-08 Jakub Jelinek <jakub@redhat.com> | |
32520 | ||
32521 | PR target/80190 | |
32522 | * config/darwin.c: Include intl.h. | |
32523 | (darwin_build_constant_cfstring): Improve i18n of diagnostics by not | |
32524 | composing the message out of two separate parts. | |
32525 | ||
32526 | 2019-03-07 Jakub Jelinek <jakub@redhat.com> | |
32527 | ||
32528 | PR target/80003 | |
32529 | * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics | |
32530 | doesn't start with a capital letter and doesn't end with a dot. | |
32531 | (ix86_function_arg_boundary): Make sure diagnostics doesn't start | |
32532 | with a capital letter. | |
32533 | (ix86_mangle_function_version_assembler_name): Likewise. | |
32534 | (ix86_generate_version_dispatcher_body): Likewise. | |
32535 | (fold_builtin_cpu): Likewise. | |
32536 | (get_builtin_code_for_version): Likewise. Remove extraneous space. | |
32537 | (ix86_handle_interrupt_attribute): Make the diagnostics easier for | |
32538 | translators, wrap full type name in %qs. | |
32539 | ||
32540 | PR translation/79999 | |
32541 | * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about | |
32542 | depend clause with source (or sink) modifier. | |
32543 | * omp-expand.c (expand_omp_ordered_sink): Likewise. | |
32544 | ||
32545 | PR target/89602 | |
32546 | * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask, | |
32547 | *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns. | |
32548 | (avx512f_load<mode>_mask): New define_expand. | |
32549 | * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask, | |
32550 | __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask, | |
32551 | __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask, | |
32552 | __builtin_ia32_movess_mask): New builtins. | |
32553 | * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss, | |
32554 | _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss, | |
32555 | _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd, | |
32556 | _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics. | |
32557 | ||
32558 | 2019-03-07 Martin Jambor <mjambor@suse.cz> | |
32559 | ||
32560 | PR lto/87525 | |
32561 | * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit | |
32562 | for extern inline functions. | |
32563 | ||
32564 | 2019-03-07 Martin Jambor <mjambor@suse.cz> | |
32565 | ||
32566 | PR ipa/88235 | |
32567 | * cgraph.h (cgraph_node): New inline method former_thunk_p. | |
32568 | * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk. | |
32569 | (clone_of_p): Treat expanded thunks like thunks, be optimistic if they | |
32570 | have multiple callees. At the end check if declarations match as | |
32571 | opposed to cgraph_nodes. | |
32572 | ||
32573 | 2019-03-07 Martin Liska <mliska@suse.cz> | |
32574 | ||
32575 | * cgraph.c (cgraph_node::verify_node): Verify with a neighbour | |
32576 | which is equivalent to searching for this in clones chain. | |
32577 | * symtab.c (symtab_node::verify_base): Similarly compare ASM | |
32578 | names with a neighbour and special case first node in a chain. | |
32579 | ||
32580 | 2019-01-25 Jason Merrill <jason@redhat.com> | |
32581 | ||
32582 | PR c++/80916 - spurious "static but not defined" warning. | |
32583 | * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false | |
32584 | for an internal symbol with DECL_EXTERNAL. | |
32585 | ||
32586 | 2019-04-07 Richard Biener <rguenther@suse.de> | |
32587 | ||
32588 | PR middle-end/89618 | |
32589 | * cfgloopmanip.c (copy_loop_info): Copy forgotten fields. | |
32590 | * tree-inline.c (copy_loops): Simplify. | |
32591 | ||
32592 | 2019-03-07 Martin Liska <mliska@suse.cz> | |
32593 | ||
32594 | * dwarf2out.c (add_AT_vms_delta): Revert function removal. | |
32595 | ||
32596 | 2019-03-07 Richard Biener <rguenther@suse.de> | |
32597 | ||
32598 | PR tree-optimization/89595 | |
32599 | * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take | |
32600 | stmt iterator as reference, take boolean output parameter to | |
32601 | indicate whether the stmt was removed and thus the iterator | |
32602 | already advanced. | |
32603 | (dom_opt_dom_walker::before_dom_children): Re-iterate over | |
32604 | stmts created by folding. | |
32605 | ||
32606 | 2019-03-07 Jakub Jelinek <jakub@redhat.com> | |
32607 | ||
32608 | PR c++/89585 | |
32609 | * doc/extend.texi (Basic Asm): Document qualifiers are not allowed | |
32610 | at toplevel. | |
32611 | ||
32612 | 2019-03-06 Peter Bergner <bergner@linux.ibm.com> | |
32613 | ||
32614 | PR rtl-optimization/88845 | |
32615 | * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during | |
32616 | LRA. | |
32617 | * lra.c (remove_scratches_1): New function. | |
32618 | (remove_scratches): Use it. | |
32619 | (lra_emit_move): Likewise. | |
32620 | ||
32621 | 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com> | |
32622 | ||
32623 | * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on | |
32624 | unaligned_access variable. | |
32625 | * config/arc/arc.c (arc_override_options): Set unaligned access | |
32626 | default on for HS CPUs. | |
32627 | * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic. | |
32628 | ||
32629 | 2019-03-06 Martin Liska <mliska@suse.cz> | |
32630 | ||
32631 | PR gcov-profile/89577 | |
32632 | * doc/gcov.texi: Prefer to use --coverage. | |
32633 | * doc/sourcebuild.texi: Likewise. | |
32634 | ||
32635 | 2019-03-02 Jason Merrill <jason@redhat.com> | |
32636 | ||
32637 | PR c++/86485 - -Wmaybe-unused with empty class ?: | |
32638 | * gimplify.c (gimplify_cond_expr): Use INIT_EXPR. | |
32639 | ||
32640 | 2019-03-05 Jakub Jelinek <jakub@redhat.com> | |
32641 | ||
32642 | PR target/89587 | |
32643 | * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only | |
32644 | if_multiarch. | |
32645 | ||
32646 | PR middle-end/89590 | |
32647 | * builtins.c (maybe_emit_free_warning): Punt if free doesn't have | |
32648 | exactly one argument. | |
32649 | ||
32650 | 2019-03-05 Jakub Jelinek <jakub@redhat.com> | |
32651 | Richard Sandiford <richard.sandiford@arm.com> | |
32652 | ||
32653 | PR tree-optimization/89570 | |
32654 | * match.pd (vec_cond into cond_op simplification): Don't use | |
32655 | get_conditional_internal_fn, use as_internal_fn (cond_op). | |
32656 | ||
32657 | 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com> | |
32658 | ||
32659 | PR target/89222 | |
32660 | * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem | |
32661 | to decide when to split off a non-zero offset from a symbol. | |
32662 | * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets | |
32663 | in function symbols. | |
32664 | ||
32665 | 2019-03-05 Richard Biener <rguenther@suse.de> | |
32666 | ||
32667 | PR tree-optimization/89594 | |
32668 | * tree-if-conv.c (pass_if_conversion::execute): Handle | |
32669 | case where .LOOP_VECTORIZED_FUNCTION was removed. | |
32670 | ||
32671 | 2019-03-05 Jakub Jelinek <jakub@redhat.com> | |
32672 | ||
32673 | PR bootstrap/89560 | |
32674 | * fold-const.c (fold_checksum_tree): Don't use fixed size buffer, | |
32675 | instead alloca it only when needed with the needed size. | |
32676 | ||
32677 | PR tree-optimization/89570 | |
32678 | * match.pd (vec_cond into cond_op simplification): Guard with | |
32679 | vectorized_internal_fn_supported_p test and #if GIMPLE. | |
32680 | ||
32681 | PR tree-optimization/89566 | |
32682 | * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call): | |
32683 | Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed. | |
32684 | Punt if get_user_idx_format succeeds, but idx_format argument is | |
32685 | not provided or doesn't have pointer type, or if idx_args is above | |
32686 | number of provided arguments. | |
32687 | ||
32688 | 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com> | |
32689 | ||
32690 | PR tree-optimization/89437 | |
32691 | * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications. | |
32692 | ||
32693 | 2019-03-04 Richard Biener <rguenther@suse.de> | |
32694 | ||
32695 | PR middle-end/89572 | |
32696 | * tree-scalar-evolution.c: (get_loop_exit_condition): Use | |
32697 | safe_dyn_cast. | |
32698 | ||
32699 | 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com> | |
32700 | ||
32701 | PR tree-optimization/89487 | |
32702 | * tree-loop-distribution.c (has_nonaddressable_dataref_p): New. | |
32703 | (create_rdg_vertices): Compute has_nonaddressable_dataref_p. | |
32704 | (distribute_loop): Don't do runtime alias check if there is non- | |
32705 | addressable data reference. | |
32706 | * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL | |
32707 | is a register variable. | |
32708 | ||
32709 | 2019-03-02 Jakub Jelinek <jakub@redhat.com> | |
32710 | ||
32711 | PR target/89506 | |
32712 | * config/arm/arm.md (cmpsi2_addneg): Use | |
32713 | trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...). | |
32714 | If operands[2] is 0 or INT_MIN, force use of subs. | |
32715 | (*compare_scc splitter): Use gen_int_mode. | |
32716 | (*negscc): Likewise. | |
32717 | * config/arm/thumb2.md (*thumb2_negscc): Likewise. | |
32718 | ||
32719 | 2019-03-01 Kito Cheng <kito.cheng@gmail.com> | |
32720 | Monk Chiang <sh.chiang04@gmail.com> | |
32721 | ||
32722 | * common/config/riscv/riscv-common.c: Include sstream. | |
32723 | (riscv_subset_list::to_string): New. | |
32724 | (riscv_arch_str): Likewise. | |
32725 | * config.gcc (riscv*-*-*): Handle --with-riscv-attribute= | |
32726 | * config.in: Regen. | |
32727 | * config/riscv/riscv-protos.h (riscv_arch_str): New. | |
32728 | * config/riscv/riscv.c (INCLUDE_STRING): Defined. | |
32729 | (riscv_emit_attribute): New. | |
32730 | (riscv_file_start): Emit attribute if needed. | |
32731 | (riscv_option_override): Init riscv_emit_attribute_p. | |
32732 | * config/riscv/riscv.opt (mriscv-attribute): New option. | |
32733 | * configure.ac (riscv*-*-*): Check binutils is supporting ELF | |
32734 | * configure: Regen. | |
32735 | * doc/install.texi: Document --with-riscv-attribute. | |
32736 | * doc/invoke.texi: Document -mriscv-attribute. | |
32737 | ||
32738 | * common/config/riscv/riscv-common.c: | |
32739 | Include config/riscv/riscv-protos.h. | |
32740 | (INCLUDE_STRING): Defined. | |
32741 | (RISCV_DONT_CARE_VERSION): Defined. | |
32742 | (riscv_subset_t): Declare. | |
32743 | (riscv_subset_t::riscv_subset_t): New. | |
32744 | (riscv_subset_list): Declare. | |
32745 | (riscv_subset_list::riscv_subset_list): New. | |
32746 | (riscv_subset_list::~riscv_subset_list): Likewise. | |
32747 | (riscv_subset_list::parsing_subset_version): Likewise. | |
32748 | (riscv_subset_list::parse_std_ext): Likewise. | |
32749 | (riscv_subset_list::parse_sv_or_non_std_ext): Likewise. | |
32750 | (riscv_subset_list::add): Likewise. | |
32751 | (riscv_subset_list::lookup): Likewise. | |
32752 | (riscv_subset_list::xlen): Likewise. | |
32753 | (riscv_subset_list::parse): Likewise. | |
32754 | (riscv_supported_std_ext): Likewise. | |
32755 | (current_subset_list): Likewise. | |
32756 | (riscv_parse_arch_string): Using riscv_subset_list::parse to | |
32757 | parse. | |
32758 | ||
32759 | 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org> | |
32760 | ||
32761 | * config/rs6000/rs6000.c (rs6000_option_override_internal): If | |
32762 | rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index. | |
32763 | * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option. | |
32764 | ||
32765 | 2019-03-01 Alexander Monakov <amonakov@ispras.ru> | |
32766 | ||
32767 | PR rtl-optimization/85899 | |
32768 | * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for | |
32769 | fallthru edges leading to the exit block. | |
32770 | ||
32771 | 2019-03-01 Tamar Christina <tamar.christina@arm.com> | |
32772 | ||
32773 | PR target/89517 | |
32774 | * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16, | |
32775 | rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line. | |
32776 | ||
32777 | 2019-03-01 Richard Sandiford <richard.sandiford@arm.com> | |
32778 | ||
32779 | PR tree-optimization/89535 | |
32780 | * tree-vect-stmts.c (vectorizable_call): Record the vector types | |
32781 | for each operand. Calculate the fallback choice for mask operands | |
32782 | and pass it to vect_get_vec_def_for_operand. | |
32783 | ||
32784 | 2019-03-01 Richard Biener <rguenther@suse.de> | |
32785 | ||
32786 | PR middle-end/89541 | |
32787 | * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may | |
32788 | get virtual operands. | |
32789 | (get_expr_operands): Handle CONST_DECL like other decls. | |
32790 | ||
32791 | 2019-03-01 Jakub Jelinek <jakub@redhat.com> | |
32792 | ||
32793 | PR middle-end/89503 | |
32794 | * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit | |
32795 | on DECL_P and EXPR_P. | |
32796 | ||
32797 | 2019-03-01 Richard Biener <rguenther@suse.de> | |
32798 | ||
32799 | PR middle-end/89497 | |
32800 | * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags | |
32801 | argument, defaulted to zero. | |
32802 | * passes.c (execute_function_todo): Pass down SSA update flags | |
32803 | to cleanup_tree_cfg. | |
32804 | * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h. | |
32805 | (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA | |
32806 | form if requested. | |
32807 | (cleanup_tree_cfg): Get and pass down SSA update flags. | |
32808 | ||
32809 | 2019-03-01 Jakub Jelinek <jakub@redhat.com> | |
32810 | ||
32811 | PR bootstrap/89539 | |
32812 | * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to | |
32813 | early_lto_debug argument. | |
32814 | ||
32815 | 2019-02-28 Eric Botcazou <ebotcazou@adacore.com> | |
32816 | ||
32817 | PR tree-optimization/89536 | |
32818 | * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test | |
32819 | only whether bit #0 of the value is 0 instead of the entire value. | |
32820 | ||
32821 | 2019-02-28 Marek Polacek <polacek@redhat.com> | |
32822 | ||
32823 | PR c++/87068 - missing diagnostic with fallthrough statement. | |
32824 | * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found | |
32825 | at the end of a seq, save its location to walk_stmt_info. | |
32826 | (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of | |
32827 | a switch. | |
32828 | ||
32829 | 2019-02-28 Jan Hubicka <hubicka@ucw.cz> | |
32830 | ||
32831 | PR lto/88585 | |
32832 | * tree.c (find_atomic_core_type): Move ahead in file. | |
32833 | (check_base_type): Correctly compare alignments of atomic types. | |
32834 | ||
32835 | 2019-02-28 H.J. Lu <hongjiu.lu@intel.com> | |
32836 | ||
32837 | PR target/89455 | |
32838 | * config/i386/i386.c (get_builtin_code_for_version): Identify | |
32839 | Westmere from PCLMUL, instead of AES. | |
32840 | ||
32841 | 2019-02-28 Jakub Jelinek <jakub@redhat.com> | |
32842 | ||
32843 | PR target/89434 | |
32844 | * config/arm/arm.md (*subsi3_carryin_compare_const): Use | |
32845 | trunc_int_for_mode (-INTVAL (...), SImode), just instead of | |
32846 | -UINTVAL (...). | |
32847 | ||
32848 | 2019-02-28 Tamar Christina <tamar.christina@arm.com> | |
32849 | ||
32850 | PR target/88530 | |
32851 | * config/aarch64/aarch64-option-extensions.def: Document it. | |
32852 | * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature | |
32853 | if empty hwcaps. | |
32854 | ||
32855 | 2019-02-28 Jakub Jelinek <jakub@redhat.com> | |
32856 | ||
32857 | PR c/89520 | |
32858 | * convert.c (convert_to_real_1, convert_to_integer_1): Punt for | |
32859 | builtins if they don't have a single scalar floating point argument. | |
32860 | Formatting fixes. | |
32861 | ||
32862 | 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
32863 | ||
32864 | PR rtl-optimization/89490 | |
32865 | * varasm.c (get_block_for_section): Bail out for mergeable sections. | |
32866 | (default_use_anchors_for_symbol_p, output_object_block): Assert the | |
32867 | block section is not mergeable. | |
32868 | ||
32869 | 2019-02-27 Jakub Jelinek <jakub@redhat.com> | |
32870 | ||
32871 | PR target/70341 | |
32872 | * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename | |
32873 | old define_insn to ... | |
32874 | (*arm_casesi_internal): ... this. Add mode to LABEL_REFs. | |
32875 | * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand. | |
32876 | Rename old define_insn to ... | |
32877 | (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs. | |
32878 | (thumb2_casesi_internal_pic): New define_expand. Rename old | |
32879 | define_insn to ... | |
32880 | (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs. | |
32881 | * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch | |
32882 | MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it. | |
32883 | ||
32884 | 2019-02-27 Richard Biener <rguenther@suse.de> | |
32885 | ||
32886 | PR debug/88878 | |
32887 | * dwarf2out.c (use_debug_types): Disable when in_lto_p. | |
32888 | ||
32889 | 2019-02-27 Richard Biener <rguenther@suse.de> | |
32890 | ||
32891 | * passes.c (should_skip_pass_p): Do not skip cgraph-edge | |
32892 | building. | |
32893 | ||
32894 | 2019-02-27 Richard Biener <rguenther@suse.de> | |
32895 | ||
32896 | PR debug/88878 | |
32897 | * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug | |
32898 | parameter, prefix section name with .gnu.debuglto_ if true. | |
32899 | (dwarf2out_finish): Pass false to output_comdat_type_unit. | |
32900 | (dwarf2out_early_finish): Pass true to output_comdat_type_unit. | |
32901 | ||
32902 | 2019-02-27 Richard Biener <rguenther@suse.de> | |
32903 | ||
32904 | PR debug/89514 | |
32905 | * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p | |
32906 | rather than on use_debug_types, doing what output_die does. | |
32907 | (value_format): Likewise. | |
32908 | ||
32909 | 2019-02-27 Martin Jambor <mjambor@suse.cz> | |
32910 | Martin Sebor <msebor@redhat.com> | |
32911 | ||
32912 | * doc/invoke.texi (Warning Options): Reword description of | |
32913 | -Wno-absolute-value. | |
32914 | ||
32915 | 2019-02-27 Jakub Jelinek <jakub@redhat.com> | |
32916 | ||
32917 | PR tree-optimization/89280 | |
32918 | * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p, | |
32919 | builtin_setjmp_setup_bb): New functions. | |
32920 | (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges. | |
32921 | When visiting __builtin_setjmp_setup block, queue in special | |
32922 | setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding | |
32923 | __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks | |
32924 | from visited after the loop if they don't have any visited successor | |
32925 | blocks. | |
32926 | ||
32927 | 2018-02-26 Steve Ellcey <sellcey@marvell.com> | |
32928 | ||
32929 | * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name): | |
32930 | New function. | |
32931 | (TARGET_GET_MULTILIB_ABI_NAME): New macro. | |
32932 | ||
32933 | 2019-02-26 Jakub Jelinek <jakub@redhat.com> | |
32934 | ||
32935 | PR c++/89507 | |
32936 | * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs | |
32937 | with types other than sizetype/ssizetype. | |
32938 | ||
32939 | 2019-02-26 Eric Botcazou <ebotcazou@adacore.com> | |
32940 | ||
32941 | * config/sparc/sparc-opts.h (enum processor_type): Rename to... | |
32942 | (enum sparc_processor_type): ...this. | |
32943 | (enum sparc_code_model_type): New enumeration type. | |
32944 | (enum sparc_memory_model_type): Tweak comments. | |
32945 | * config/sparc/sparc.opt (mcpu): Adjust to above renaming. | |
32946 | (mtune): Likewise. | |
32947 | (mcmodel): Use sparc_code_model enumeration and variable. | |
32948 | (sparc_code_model): New enumeration. | |
32949 | (mdebug): Add Undocumented marker. | |
32950 | * config/sparc/sparc.h (enum cmodel): Delete. | |
32951 | (sparc_cmodel): Likewise. | |
32952 | (TARGET_CM_MEDLOW): Adjust to above renaming. | |
32953 | (TARGET_CM_MEDMID): Likewise. | |
32954 | (TARGET_CM_MEDANY): Likewise. | |
32955 | (TARGET_CM_EMBMEDANY): Likewise. | |
32956 | * config/sparc/sparc.c (sparc_cmodel): Delete. | |
32957 | (sparc_option_override): Remove string/value mapping support for the | |
32958 | code model. Move code and memory model support to after the handling | |
32959 | of target flags. Do private machine setup last. | |
32960 | (sparc_emit_set_symbolic_const64): Use sparc_code_model. | |
32961 | (sparc_legitimize_reload_address): Likewise. | |
32962 | (sparc_output_mi_thunk): Likewise. | |
32963 | * config/sparc/sparc.md (cpu): Adjust comment to above renaming. | |
32964 | ||
32965 | 2019-02-26 Jakub Jelinek <jakub@redhat.com> | |
32966 | ||
32967 | PR tree-optimization/89500 | |
32968 | * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment. | |
32969 | (handle_builtin_strlen): Remove noncst_bound variable. Always | |
32970 | optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to | |
32971 | cst if the first cst bytes starting at x are known to be non-zero, | |
32972 | even if the string is not zero terminated. Don't try to modify | |
32973 | *si for strnlen. Update strlen_to_stridx only for strlen or if | |
32974 | we can prove strnlen returns the same value as strlen would. | |
32975 | ||
32976 | 2019-02-26 Martin Liska <mliska@suse.cz> | |
32977 | ||
32978 | * alloc-pool.h (struct pool_usage): Remove extra | |
32979 | print_dash_line. | |
32980 | * bitmap.h (struct bitmap_usage): Likewise. | |
32981 | * ggc-common.c (struct ggc_usage): Likewise. | |
32982 | * mem-stats.h (struct mem_usage): Likewise. | |
32983 | (mem_alloc_description::dump): Print dash lines | |
32984 | here and repeat header at the end of a table report. | |
32985 | It's then more readable. | |
32986 | * tree-phinodes.c (phinodes_print_statistics): Make | |
32987 | horizontal alignment. | |
32988 | * tree-ssanames.c (ssanames_print_statistics): Likewise. | |
32989 | * vec.c (struct vec_usage): Remove extra print_dash_line. | |
32990 | * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT. | |
32991 | ||
32992 | 2019-02-26 Uroš Bizjak <ubizjak@gmail.com> | |
32993 | ||
32994 | * doc/extend.texi (__builtin_object_size): | |
32995 | Use @pxref instead of @xref inside parenthesis. | |
32996 | (__builtin_has_attribute): Add missing comma after @xref. | |
32997 | (__builtin_object_size): Ditto. | |
32998 | * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i]. | |
32999 | ||
33000 | 2019-02-26 Jeff Law <law@redhat.com> | |
33001 | ||
33002 | PR rtl-optimization/87761 | |
33003 | * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to | |
33004 | detect obviously dead insns and delete them. | |
33005 | ||
33006 | 2019-02-26 Richard Biener <rguenther@suse.de> | |
33007 | ||
33008 | PR tree-optimization/89505 | |
33009 | * tree-ssa-structalias.c (compute_dependence_clique): Make sure | |
33010 | to handle restrict pointed-to vars with multiple subvars | |
33011 | correctly. | |
33012 | ||
33013 | 2019-02-26 Richard Biener <rguenther@suse.de> | |
33014 | ||
33015 | PR tree-optimization/89489 | |
33016 | * tree-parloops.c (create_loop_fn): Copy over last_clique. | |
33017 | ||
33018 | 2019-02-26 Eric Botcazou <ebotcazou@adacore.com> | |
33019 | ||
33020 | * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix | |
33021 | and move around comment. | |
33022 | <BIT_AND_EXPR>: Likewise. | |
33023 | <BIT_NOT_EXPR>: Add specific handling for boolean types. | |
33024 | ||
33025 | 2019-02-26 Jakub Jelinek <jakub@redhat.com> | |
33026 | ||
33027 | PR target/89474 | |
33028 | * config/i386/i386.c (remove_partial_avx_dependency): Call | |
33029 | df_analyze etc. before creation of the v4sf_const0 pseudo, rather than | |
33030 | after changing possibly many instructions to use that pseudo. Fix up | |
33031 | insertion of v4sf_const0 setter at the start of bb. | |
33032 | ||
33033 | 2019-02-25 Sandra Loosemore <sandra@codesourcery.com> | |
33034 | ||
33035 | PR c/80409 | |
33036 | * doc/extend.texi (Variadic Pointer Args): New section. | |
33037 | ||
33038 | 2019-02-25 Sandra Loosemore <sandra@codesourcery.com> | |
33039 | Martin Sebor <msebor@gmail.com> | |
33040 | ||
33041 | * common.opt (Wattribute-alias): Likewise. | |
33042 | * doc/invoke.texi (Option Summary): List general form of | |
33043 | -Wattribute-alias=. List positive form of -Wmissing-attributes. | |
33044 | (-Wmissing-attributes): Invert entry, rewrite and correct default. | |
33045 | Add cross-references. | |
33046 | (-Wattribute-alias): Rewrite and correct default. Mention | |
33047 | considered attributes (same as for -Wmissing-attributes). | |
33048 | ||
33049 | 2019-02-25 Paul A. Clarke <pc@us.ibm.com> | |
33050 | ||
33051 | * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian. | |
33052 | (_mm_cvtpd_ps): Likewise. | |
33053 | (_mm_cvttpd_epi32): Likewise. | |
33054 | ||
33055 | PR target/89338 | |
33056 | * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch. | |
33057 | (_mm_cvt_ss2si): Fix type mismatch and 32-bit. | |
33058 | ||
33059 | PR target/89339 | |
33060 | * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit. | |
33061 | ||
33062 | 2019-02-25 Tamar Christina <tamar.christina@arm.com> | |
33063 | ||
33064 | PR target/88530 | |
33065 | * common/config/aarch64/aarch64-common.c | |
33066 | (struct aarch64_option_extension): Add is_synthetic. | |
33067 | (all_extensions): Use it. | |
33068 | (TARGET_OPTION_INIT_STRUCT): Define hook. | |
33069 | (struct gcc_targetm_common): Moved to end. | |
33070 | (all_extensions_by_on): New. | |
33071 | (opt_ext_cmp, typedef opt_ext): New. | |
33072 | (aarch64_option_init_struct): New. | |
33073 | (aarch64_contains_opt): New. | |
33074 | (aarch64_get_extension_string_for_isa_flags): Output smallest set. | |
33075 | * config/aarch64/aarch64-option-extensions.def | |
33076 | (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto. | |
33077 | (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3, | |
33078 | sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres): | |
33079 | Set is_synthetic to false. | |
33080 | (crypto): Set is_synthetic to true. | |
33081 | * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add | |
33082 | SYNTHETIC. | |
33083 | ||
33084 | 2019-02-25 Tamar Christina <tamar.christina@arm.com> | |
33085 | ||
33086 | * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, | |
33087 | vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32, | |
33088 | vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32, | |
33089 | vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32, | |
33090 | vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32, | |
33091 | vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32, | |
33092 | vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32, | |
33093 | vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32): | |
33094 | Rename ... | |
33095 | (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16, | |
33096 | vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16, | |
33097 | vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16, | |
33098 | vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16, | |
33099 | vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16, | |
33100 | vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16, | |
33101 | vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16, | |
33102 | vfmlsl_laneq_high_f16): ... To this. | |
33103 | * config/arm/neon.md: Update comments. | |
33104 | ||
33105 | 2019-02-25 Tamar Christina <tamar.christina@arm.com> | |
33106 | ||
33107 | * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32, | |
33108 | vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32, | |
33109 | vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32, | |
33110 | vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32, | |
33111 | vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32, | |
33112 | vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32, | |
33113 | vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32, | |
33114 | vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32): | |
33115 | Rename ... | |
33116 | (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16, | |
33117 | vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16, | |
33118 | vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16, | |
33119 | vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16, | |
33120 | vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16, | |
33121 | vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16, | |
33122 | vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16, | |
33123 | vfmlslq_laneq_high_f16): ... To this. | |
33124 | ||
33125 | 2019-02-25 Alexander Monakov <amonakov@ispras.ru> | |
33126 | ||
33127 | PR rtl-optimization/86096 | |
33128 | * df-scan.c (df_mw_compare): Do not check mw_reg fields when | |
33129 | comparing mw_order values. | |
33130 | ||
33131 | 2019-02-25 Jakub Jelinek <jakub@redhat.com> | |
33132 | ||
33133 | PR target/89434 | |
33134 | * config/arm/arm.md (*subsi3_carryin_const): Use | |
33135 | arm_neg_immediate_operand predicate instead of | |
33136 | arm_not_immediate_operand, "L" constraint instead of "K" and | |
33137 | print it using %n2 instead of %B2. | |
33138 | (*subsi3_carryin_const0): New define_insn. | |
33139 | (*subsi3_carryin_compare_const): Use const_int_I_operand predicate | |
33140 | instead of arm_not_operand and "I" constraint instead of "K" and | |
33141 | print it using %n3 instead of %B2. Instead of using match_dup 2 add | |
33142 | another match_operand and in the condition check that it is negation | |
33143 | of operands[2]. | |
33144 | (*subsi3_carryin_compare_const0): New define_ins. | |
33145 | (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of | |
33146 | *subsi3_carryin_const. | |
33147 | (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const, | |
33148 | split into *subsi3_carryin_compare_const0 if the highpart is zero. | |
33149 | ||
33150 | PR target/89438 | |
33151 | * config/arm.vfp.md (*negdf2_vfp): Use | |
33152 | gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000). | |
33153 | * config/arm/neon.md (neon_copysignf<mode>): Likewise. | |
33154 | ||
33155 | 2019-02-24 Jakub Jelinek <jakub@redhat.com> | |
33156 | ||
33157 | PR rtl-optimization/89445 | |
33158 | * simplify-rtx.c (simplify_ternary_operation): Don't use | |
33159 | simplify_merge_mask on operands that may trap. | |
33160 | * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of | |
33161 | SCALAR_FLOAT_MODE_P checks. For integral division by zero, if | |
33162 | second operand is CONST_VECTOR, check if any element could be zero. | |
33163 | Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless | |
33164 | their operands can trap. | |
33165 | ||
33166 | 2019-02-23 Martin Sebor <msebor@redhat.com> | |
33167 | ||
33168 | * gimple-ssa-sprintf.c (target_strtol): Rename... | |
33169 | (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX. | |
33170 | (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to | |
33171 | check for range error. | |
33172 | ||
33173 | 2019-02-23 H.J. Lu <hongjiu.lu@intel.com> | |
33174 | ||
33175 | PR driver/69471 | |
33176 | * opts-common.c (prune_options): Also prune joined switches | |
33177 | with Negative and RejectNegative. | |
33178 | * config/i386/i386.opt (march=): Add Negative(march=). | |
33179 | (mtune=): Add Negative(mtune=). | |
33180 | * doc/options.texi: Document Negative used together with Joined | |
33181 | and RejectNegative. | |
33182 | ||
33183 | 2019-02-22 Martin Sebor <msebor@redhat.com> | |
33184 | ||
33185 | * doc/extend.texi (Other Builtins): Add | |
33186 | __builtin_is_constant_evaluated. | |
33187 | ||
33188 | 2019-02-22 Richard Biener <rguenther@suse.de> | |
33189 | ||
33190 | PR tree-optimization/87609 | |
33191 | * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques. | |
33192 | ||
33193 | 2019-02-22 Jeff Law <law@redhat.com> | |
33194 | ||
33195 | PR rtl-optimization/87761 | |
33196 | * config/mips/mips.md: Add new combiner pattern to recognize | |
33197 | a bitfield extraction using (ashiftrt (truncate (ashift (...)))). | |
33198 | ||
33199 | 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com> | |
33200 | ||
33201 | PR target/89324 | |
33202 | * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on | |
33203 | destination register in peepholes generating patterns for ADDS/SUBS. | |
33204 | (add<mode>3_compare0, | |
33205 | *addsi3_compare0_uxtw, add<mode>3_compareC, | |
33206 | add<mode>3_compareV_imm, add<mode>3_compareV, | |
33207 | *adds_<optab><ALLX:mode>_<GPI:mode>, | |
33208 | *subs_<optab><ALLX:mode>_<GPI:mode>, | |
33209 | *adds_<optab><ALLX:mode>_shift_<GPI:mode>, | |
33210 | *subs_<optab><ALLX:mode>_shift_<GPI:mode>, | |
33211 | *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2, | |
33212 | *sub<mode>3_compare0, *subsi3_compare0_uxtw, | |
33213 | sub<mode>3_compare1): Allow stack pointer for source register. | |
33214 | * config/aarch64/predicates.md (aarch64_general_reg): New predicate. | |
33215 | ||
33216 | 2019-02-22 Martin Sebor <msebor@redhat.com> | |
33217 | ||
33218 | PR tree-optimization/88993 | |
33219 | PR tree-optimization/88853 | |
33220 | * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func): | |
33221 | New helper. | |
33222 | (sprintf_dom_walker::call_info::is_string_func): New helper. | |
33223 | (format_directive): Only issue "may exceed" 4095/INT_MAX warnings | |
33224 | for formatted string functions. | |
33225 | (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment. | |
33226 | ||
33227 | 2019-02-22 Martin Sebor <msebor@redhat.com> | |
33228 | ||
33229 | PR c/89425 | |
33230 | * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in | |
33231 | unreachable subexpressions. | |
33232 | ||
33233 | 2019-02-22 H.J. Lu <hongjiu.lu@intel.com> | |
33234 | Hongtao Liu <hongtao.liu@intel.com> | |
33235 | Sunil K Pandey <sunil.k.pandey@intel.com> | |
33236 | ||
33237 | PR target/87007 | |
33238 | * config/i386/i386-passes.def: Add | |
33239 | pass_remove_partial_avx_dependency. | |
33240 | * config/i386/i386-protos.h | |
33241 | (make_pass_remove_partial_avx_dependency): New. | |
33242 | * config/i386/i386.c (make_pass_remove_partial_avx_dependency): | |
33243 | New function. | |
33244 | (pass_data_remove_partial_avx_dependency): New. | |
33245 | (pass_remove_partial_avx_dependency): Likewise. | |
33246 | (make_pass_remove_partial_avx_dependency): Likewise. | |
33247 | * config/i386/i386.md (avx_partial_xmm_update): New attribute. | |
33248 | (*extendsfdf2): Add avx_partial_xmm_update. | |
33249 | (truncdfsf2): Likewise. | |
33250 | (*float<SWI48:mode><MODEF:mode>2): Likewise. | |
33251 | (SF/DF conversion splitters): Disabled for TARGET_AVX. | |
33252 | ||
33253 | 2019-02-22 Aldy Hernandez <aldyh@redhat.com> | |
33254 | ||
33255 | PR middle-end/85598 | |
33256 | * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop | |
33257 | analysis for pass. | |
33258 | ||
33259 | 2019-02-22 Thiago Macieira <thiago.macieira@intel.com> | |
33260 | ||
33261 | PR target/89444 | |
33262 | * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES. | |
33263 | (PTA_SKYLAKE): Add PTA_AES. | |
33264 | (PTA_GOLDMONT): Likewise. | |
33265 | ||
33266 | 2019-02-22 Sudakshina Das <sudi.das@arm.com> | |
33267 | ||
33268 | * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti | |
33269 | instruction if enabled. | |
33270 | (aarch64_override_options): Remove reference to return address key. | |
33271 | ||
33272 | 2019-02-22 Richard Biener <rguenther@suse.de> | |
33273 | ||
33274 | PR tree-optimization/89440 | |
33275 | * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove | |
33276 | not necessary assert. | |
33277 | ||
33278 | 2019-02-22 Thomas Schwinge <thomas@codesourcery.com> | |
33279 | ||
33280 | PR fortran/72741 | |
33281 | * omp-general.c (oacc_replace_fn_attrib): Mostly split out into... | |
33282 | (oacc_replace_fn_attrib_attr): ... this new function. | |
33283 | * omp-general.h (oacc_replace_fn_attrib_attr): New prototype. | |
33284 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround. | |
33285 | ||
33286 | 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33287 | ||
33288 | * config/arm/arm-cpus.in (ares): Rename to... | |
33289 | (neoverse-n1): ... This. Add ares as alias. | |
33290 | * config/arm/arm-tables.opt: Regenerate. | |
33291 | * config/arm/arm-tune.md: Likewise. | |
33292 | * doc/invoke.txt (ARM Options): Document neoverse-n1. | |
33293 | ||
33294 | 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33295 | ||
33296 | * config/aarch64/aarch64-cores.def (neoverse-e1): Define. | |
33297 | * config/aarch64/aarch64-tune.md: Regenerate. | |
33298 | * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option. | |
33299 | ||
33300 | 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
33301 | ||
33302 | * config/aarch64/aarch64.c (ares_tunings): Rename to... | |
33303 | (neoversen1_tunings): ... This. | |
33304 | * config/aarch64/aarch64-cores.def (ares): Change tuning to the above. | |
33305 | (neoverse-n1): New CPU. | |
33306 | * config/aarch64/aarch64-tune.md: Regenerate. | |
33307 | * doc/invoke.txt (AArch64 Options): Document neoverse-n1. | |
33308 | ||
33309 | 2019-02-22 Richard Biener <rguenther@suse.de> | |
33310 | ||
33311 | PR middle-end/87609 | |
33312 | * cfghooks.h (dependence_hash): New typedef. | |
33313 | (struct copy_bb_data): New type. | |
33314 | (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument. | |
33315 | (duplicate_block): Likewise. | |
33316 | * cfghooks.c (duplicate_block): Pass down copy_bb_data. | |
33317 | (copy_bbs): Create and pass down copy_bb_data. | |
33318 | * cfgrtl.c (cfg_layout_duplicate_bb): Adjust. | |
33319 | (rtl_duplicate_bb): Likewise. | |
33320 | * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL | |
33321 | remap dependence info. | |
33322 | ||
33323 | 2019-02-22 Richard Biener <rguenther@suse.de> | |
33324 | ||
33325 | PR tree-optimization/87609 | |
33326 | * tree-core.h (tree_base): Document special clique values. | |
33327 | * tree-inline.c (remap_dependence_clique): Do not use the | |
33328 | special clique value of one. | |
33329 | (maybe_set_dependence_info): Use clique one. | |
33330 | (clear_dependence_clique): New callback. | |
33331 | (compute_dependence_clique): Clear clique one from all refs | |
33332 | before assigning it (again). | |
33333 | ||
33334 | 2019-02-21 Martin Sebor <msebor@redhat.com> | |
33335 | ||
33336 | * doc/extend.texi (__clear_cache): Correct signature. | |
33337 | ||
33338 | 2019-02-21 Ian Lance Taylor <iant@golang.org> | |
33339 | ||
33340 | PR go/89170 | |
33341 | * varasm.c (decode_addr_const): Call lookup_constant_def rather | |
33342 | than output_constant_def. | |
33343 | (add_constant_to_table): New static function. | |
33344 | (output_constant_def): Call add_constant_to_table. | |
33345 | (tree_output_constant_def): Likewise. | |
33346 | ||
33347 | 2019-02-21 Jakub Jelinek <jakub@redhat.com> | |
33348 | ||
33349 | PR c++/89285 | |
33350 | * builtins.c (fold_builtin_arith_overflow): If first two args are | |
33351 | INTEGER_CSTs, set intres and ovfres to constants rather than calls | |
33352 | to ifn. | |
33353 | ||
33354 | 2019-02-21 H.J. Lu <hongjiu.lu@intel.com> | |
33355 | ||
33356 | PR target/87412 | |
33357 | * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an | |
33358 | error for -mindirect-branch/-mfunction-return with incompatible | |
33359 | -fcf-protection. | |
33360 | ||
33361 | 2019-02-21 Jakub Jelinek <jakub@redhat.com> | |
33362 | ||
33363 | PR bootstrap/88714 | |
33364 | * constraints.md (q): Remove. | |
33365 | * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint | |
33366 | instead of q. | |
33367 | ||
33368 | 2019-02-21 Martin Jambor <mjambor@suse.cz> | |
33369 | ||
33370 | PR hsa/89302 | |
33371 | * omp-general.c (omp_extract_for_data): Removed a duplicate call | |
33372 | to omp_adjust_for_condition, moved NE_EXPR code_cond processing... | |
33373 | (omp_adjust_for_condition): ...here. Added necessary parameters. | |
33374 | * omp-general.h (omp_adjust_for_condition): Updated declaration. | |
33375 | * omp-grid.c (grid_attempt_target_gridification): Adjust to pass | |
33376 | proper values to new parameters of omp_adjust_for_condition. | |
33377 | ||
33378 | 2019-02-20 Jakub Jelinek <jakub@redhat.com> | |
33379 | ||
33380 | PR middle-end/89412 | |
33381 | * expr.c (expand_assignment): If result is a MEM, use change_address | |
33382 | instead of simplify_gen_subreg. | |
33383 | ||
33384 | 2019-02-20 Jakub Jelinek <jakub@redhat.com> | |
33385 | David Malcolm <dmalcolm@redhat.com> | |
33386 | ||
33387 | PR middle-end/89091 | |
33388 | * fold-const.c (decode_field_reference): Return NULL_TREE if | |
33389 | lang_hooks.types.type_for_size returns NULL. Check it before | |
33390 | overwriting *exp_. Use return NULL_TREE instead of return 0. | |
33391 | ||
33392 | 2019-02-20 Jakub Jelinek <jakub@redhat.com> | |
33393 | ||
33394 | PR middle-end/88074 | |
33395 | PR middle-end/89415 | |
33396 | * toplev.c (do_compile): Double the emin/emax exponents to workaround | |
33397 | buggy mpc_norm. | |
33398 | ||
33399 | 2019-02-20 Uroš Bizjak <ubizjak@gmail.com> | |
33400 | ||
33401 | PR target/89397 | |
33402 | * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check | |
33403 | TARGET_SSE in addition to TARGET_SSE_MATH. | |
33404 | ||
33405 | (ix86_excess_precision): Ditto. | |
33406 | (ix86_float_exceptions_rounding_supported_p): Ditto. | |
33407 | (use_rsqrt_p): Ditto. | |
33408 | * config/i386/sse.md (rsqrt<mode>2): Ditto. | |
33409 | ||
33410 | 2019-02-20 David Malcolm <dmalcolm@redhat.com> | |
33411 | ||
33412 | PR c/89410 | |
33413 | * diagnostic-show-locus.c (layout::calculate_line_spans): Use | |
33414 | linenum_arith_t when determining if two adjacent line spans are | |
33415 | close enough to merge. | |
33416 | (diagnostic_show_locus): Use linenum_arith_t when iterating over | |
33417 | lines within each line_span. | |
33418 | ||
33419 | 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com> | |
33420 | ||
33421 | PR target/86487 | |
33422 | * lra-constraints.c(uses_hard_regs_p): Fix handling of | |
33423 | paradoxical SUBREGS. | |
33424 | ||
33425 | 2019-02-20 Li Jia He <helijia@linux.ibm.com> | |
33426 | ||
33427 | PR target/88100 | |
33428 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin) | |
33429 | <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH, | |
33430 | ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before | |
33431 | range checking it. | |
33432 | ||
33433 | 2019-02-19 Jonathan Wakely <jwakely@redhat.com> | |
33434 | ||
33435 | * config/gcn/gcn.c (print_operand): Fix typo. | |
33436 | ||
33437 | 2019-02-19 Richard Biener <rguenther@suse.de> | |
33438 | ||
33439 | PR middle-end/88074 | |
33440 | * toplev.c (do_compile): Initialize mpfr's exponent range | |
33441 | based on available float modes. | |
33442 | ||
33443 | 2019-02-19 Eric Botcazou <ebotcazou@adacore.com> | |
33444 | ||
33445 | * rtlanal.c (get_initial_register_offset): Fall back to the estimate | |
33446 | as long as the epilogue isn't completed. | |
33447 | ||
33448 | 2019-02-18 Martin Sebor <msebor@redhat.com> | |
33449 | ||
33450 | * doc/cpp.texi (Conditional syntax): Add __has_attribute, | |
33451 | __has_cpp_attribute, and __has_include. | |
33452 | ||
33453 | 2019-02-18 Martin Sebor <msebor@redhat.com> | |
33454 | ||
33455 | * doc/invoke.texi (-Wreturn-type): Correct and expand. | |
33456 | ||
33457 | 2019-02-18 Martin Sebor <msebor@redhat.com> | |
33458 | ||
33459 | PR middle-end/89294 | |
33460 | * tree.c (valid_constant_size_p): Avoid assuming size is a constant | |
33461 | expression. | |
33462 | * tree.h (cst_size_error): Add the cst_size_not_constant enumerator. | |
33463 | ||
33464 | 2019-02-18 Richard Biener <rguenther@suse.de> | |
33465 | ||
33466 | PR tree-optimization/89296 | |
33467 | * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting | |
33468 | of no-warning flag to cases that might emit the bogus warning. | |
33469 | ||
33470 | 2019-02-18 Jakub Jelinek <jakub@redhat.com> | |
33471 | ||
33472 | PR bootstrap/88714 | |
33473 | * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of | |
33474 | "q" constraint. | |
33475 | * config/arm/vfp.md (*movdi_vfp): Likewise. | |
33476 | * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of | |
33477 | "q" constraint for operands[0]. | |
33478 | ||
33479 | PR target/89369 | |
33480 | * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask, | |
33481 | *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct | |
33482 | pattern in a temporary buffer. | |
33483 | (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather | |
33484 | than 64-operands[2]. | |
33485 | ||
33486 | PR target/89361 | |
33487 | * config/s390/s390.c (s390_indirect_branch_attrvalue, | |
33488 | s390_indirect_branch_settings): Define unconditionally. | |
33489 | (s390_set_current_function): Likewise, but guard the whole body except | |
33490 | the s390_indirect_branch_settings call with | |
33491 | #if S390_USE_TARGET_ATTRIBUTE. | |
33492 | (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally. | |
33493 | ||
33494 | * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze, | |
33495 | *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt): | |
33496 | Use HOST_WIDE_INT_M1U instead of ~(0ULL). | |
33497 | (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use | |
33498 | HOST_WIDE_INT_1U instead of 1ULL. | |
33499 | (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int | |
33500 | to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul. | |
33501 | (*insv<mode><clobbercc_or_nocc>_appendbitsleft, | |
33502 | z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U | |
33503 | instead of 1UL. | |
33504 | (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U | |
33505 | instead of 1ul. | |
33506 | ||
33507 | 2019-02-18 Martin Jambor <mjambor@suse.cz> | |
33508 | ||
33509 | PR tree-optimization/89209 | |
33510 | * tree-sra.c (create_access_replacement): New optional parameter | |
33511 | reg_tree. Use it as a type if non-NULL and access type is not of | |
33512 | a register type. | |
33513 | (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it | |
33514 | to create_access_replacement. | |
33515 | (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name. | |
33516 | Check lacc is non-NULL before attempting to re-create it on the RHS. | |
33517 | ||
33518 | 2019-02-18 Martin Liska <mliska@suse.cz> | |
33519 | ||
33520 | PR ipa/89306 | |
33521 | * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1 | |
33522 | by default. | |
33523 | (symbol_table::free_edge): Recycle m_summary_id. | |
33524 | * cgraph.h (get_summary_id): New. | |
33525 | (symbol_table::release_symbol): Set m_summary_id to -1 | |
33526 | by default. | |
33527 | (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id. | |
33528 | * ipa-fnsummary.c (ipa_fn_summary_t): Switch from | |
33529 | function_summary to fast_function_summary. | |
33530 | * ipa-fnsummary.h (ipa_fn_summary_t): Likewise. | |
33531 | * ipa-pure-const.c (class funct_state_summary_t): | |
33532 | Switch from function_summary to fast_function_summary. | |
33533 | * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise. | |
33534 | (class ipa_ref_opt_summary_t): Switch from function_summary | |
33535 | to fast_function_summary. | |
33536 | * symbol-summary.h (class function_summary_base): New class | |
33537 | that is created from base of former function_summary. | |
33538 | (function_summary_base::unregister_hooks): New. | |
33539 | (class function_summary): Inherit from function_summary_base. | |
33540 | (class call_summary_base): New class | |
33541 | that is created from base of former call_summary. | |
33542 | (class call_summary): Inherit from call_summary_base. | |
33543 | (struct is_same): New. | |
33544 | (class fast_function_summary): New summary class. | |
33545 | (class fast_call_summary): New summary class. | |
33546 | * vec.h (vec_safe_grow_cleared): New function. | |
33547 | ||
33548 | 2019-02-18 Martin Liska <mliska@suse.cz> | |
33549 | ||
33550 | * config/i386/i386.c (ix86_get_multilib_abi_name): New function. | |
33551 | (TARGET_GET_MULTILIB_ABI_NAME): New macro defined. | |
33552 | * doc/tm.texi: Document new target hook. | |
33553 | * doc/tm.texi.in: Likewise. | |
33554 | * target.def: Add new target macro. | |
33555 | * gcc.c (find_fortran_preinclude_file): Do not search multilib | |
33556 | suffixes. | |
33557 | ||
33558 | 2019-02-17 Alan Modra <amodra@gmail.com> | |
33559 | ||
33560 | PR target/89271 | |
33561 | * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int | |
33562 | output reg on add insn. | |
33563 | (<bd>tf_<mode> split): Likewise. Match predicates with insn. | |
33564 | ||
33565 | 2019-02-16 H.J. Lu <hongjiu.lu@intel.com> | |
33566 | ||
33567 | PR target/89372 | |
33568 | * config/i386/sse.md (ssedoublemode): Remove V4HI. | |
33569 | (PMULHRSW): Likewise. | |
33570 | (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not | |
33571 | TARGET_AVX2. | |
33572 | (ssse3_pmulhrswv4hi3): New expander. | |
33573 | ||
33574 | 2019-02-16 H.J. Lu <hongjiu.lu@intel.com> | |
33575 | ||
33576 | * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require | |
33577 | MMX. Add isa attribute. | |
33578 | ||
33579 | 2019-02-16 Jakub Jelinek <jakub@redhat.com> | |
33580 | ||
33581 | PR rtl-optimization/66152 | |
33582 | * builtins.h (c_readstr): Declare. | |
33583 | * builtins.c (c_readstr): Remove forward declaration. Add | |
33584 | null_terminated_p argument, if false, read all bytes from the | |
33585 | string instead of stopping after '\0'. | |
33586 | * expr.c (string_cst_read_str): New function. | |
33587 | (store_expr): Use string_cst_read_str instead of | |
33588 | builtin_strncpy_read_str. Try to store by pieces the whole | |
33589 | exp_len first, and only if that fails, split it up into | |
33590 | store by pieces followed by clear_storage. Formatting fix. | |
33591 | ||
33592 | * config/i386/i386.md (*movqi_internal): Remove static from | |
33593 | buf variable. Use output_asm_insn (buf, operands); return ""; | |
33594 | instead of return buf;. | |
33595 | * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>, | |
33596 | *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3, | |
33597 | *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise. | |
33598 | ||
33599 | 2019-02-15 Eric Botcazou <ebotcazou@adacore.com> | |
33600 | ||
33601 | * config/sparc/linux.h (ASAN_CC1_SPEC): Define. | |
33602 | (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC. | |
33603 | * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise. | |
33604 | (CC1_SPEC): Likewise. | |
33605 | * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit. | |
33606 | ||
33607 | 2019-02-15 Eric Botcazou <ebotcazou@adacore.com> | |
33608 | ||
33609 | * asan.c (asan_emit_stack_protection): Use full-sized mask to align | |
33610 | the base address on 64-bit strict-alignment platforms. | |
33611 | ||
33612 | 2019-02-15 H.J. Lu <hongjiu.lu@intel.com> | |
33613 | ||
33614 | * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'. | |
33615 | ||
33616 | 2019-02-15 Uroš Bizjak <ubizjak@gmail.com> | |
33617 | ||
33618 | * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define. | |
33619 | ||
33620 | 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com> | |
33621 | ||
33622 | PR rtl-optimization/88308 | |
33623 | * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts | |
33624 | on copied instruction. | |
33625 | ||
33626 | 2019-02-15 Eric Botcazou <ebotcazou@adacore.com> | |
33627 | ||
33628 | * final.c (insn_current_reference_address): Replace test on JUMP_P | |
33629 | with test on jump_to_label_p. | |
33630 | * config/visium/visium-passes.def: New file. | |
33631 | * config/visium/t-visium (PASSES_EXTRA): Define. | |
33632 | * config/visium/visium-protos.h (make_pass_visium_reorg): Declare. | |
33633 | * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust. | |
33634 | (TRAMPOLINE_ALIGNMENT): Define. | |
33635 | * config/visium/visium.c (visium_option_override): Do not register | |
33636 | the machine-specific reorg pass here. | |
33637 | (visium_trampoline_init): Align the BRA insn on a 64-bit boundary | |
33638 | for the GR6. | |
33639 | (output_branch): Adjust threshold for long branch instruction. | |
33640 | * config/visium/visium.md (cpu): Move around. | |
33641 | (length): Adjust for the GR6. | |
33642 | ||
33643 | 2019-02-15 Richard Biener <rguenther@suse.de> | |
33644 | Jakub Jelinek <jakub@redhat.com> | |
33645 | ||
33646 | PR tree-optimization/89278 | |
33647 | * tree-loop-distribution.c: Include tree-eh.h. | |
33648 | (generate_memset_builtin, generate_memcpy_builtin): Call | |
33649 | rewrite_to_non_trapping_overflow on builtin->size before passing it | |
33650 | to force_gimple_operand_gsi. | |
33651 | ||
33652 | 2019-02-15 Jakub Jelinek <jakub@redhat.com> | |
33653 | ||
33654 | PR other/89342 | |
33655 | * optc-save-gen.awk: Handle optimize_fast like optimize_size or | |
33656 | optimize_debug. | |
33657 | * opth-gen.awk: Likewise. | |
33658 | ||
33659 | 2019-02-15 Uroš Bizjak <ubizjak@gmail.com> | |
33660 | ||
33661 | * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT): | |
33662 | Enable MMX, SSE and SSE2 by default. | |
33663 | * config/i386/i386.c (ix86_option_override_internal): Do not | |
33664 | explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here. | |
33665 | ||
33666 | 2019-02-14 Jakub Jelinek <jakub@redhat.com> | |
33667 | ||
33668 | PR rtl-optimization/89354 | |
33669 | * combine.c (make_extraction): Punt if extraction_mode is narrower | |
33670 | than len bits. | |
33671 | ||
33672 | 2019-02-14 Maya Rashish <coypu@sdf.org> | |
33673 | ||
33674 | * config.gcc (*-*-netbsd*): Add netbsd-d.o. | |
33675 | * config/netbsd-d.c: New file. | |
33676 | * config/t-netbsd: Add netbsd-d.o | |
33677 | ||
33678 | 2018-02-14 Steve Ellcey <sellcey@marvell.com> | |
33679 | ||
33680 | * config/aarch64/aarch64.c (aarch64_attribute_table): Change | |
33681 | affects_type_identity to true for aarch64_vector_pcs. | |
33682 | (aarch64_comp_type_attributes): New function. | |
33683 | (TARGET_COMP_TYPE_ATTRIBUTES): New macro. | |
33684 | ||
33685 | 2019-02-14 Tamar Christina <tamar.christina@arm.com> | |
33686 | ||
33687 | PR target/88850 | |
33688 | * config/arm/iterators.md (ANY64): Add V4HF. | |
33689 | ||
33690 | 2019-02-14 Martin Liska <mliska@suse.cz> | |
33691 | ||
33692 | PR rtl-optimization/89242 | |
33693 | * dce.c (delete_unmarked_insns): Call free_dominance_info we | |
33694 | process a transformation. | |
33695 | ||
33696 | 2019-02-14 Jakub Jelinek <jakub@redhat.com> | |
33697 | ||
33698 | PR tree-optimization/89314 | |
33699 | * fold-const.c (fold_binary_loc): Cast strlen argument to | |
33700 | const char * before dereferencing it. Formatting fixes. | |
33701 | ||
33702 | PR middle-end/89284 | |
33703 | * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized. | |
33704 | ||
33705 | 2019-02-13 Ian Lance Taylor <iant@golang.org> | |
33706 | ||
33707 | * optc-save-gen.awk: Set var_opt_hash for initial optimizations | |
33708 | and set current index for other optimizations. | |
33709 | ||
33710 | 2019-02-13 Uroš Bizjak <ubizjak@gmail.com> | |
33711 | ||
33712 | * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use | |
33713 | nonimmediate_operand as operand 2 predicate. | |
33714 | (vec_set<VF2_512_256:mode>_0): Ditto. | |
33715 | (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto. | |
33716 | (*vec_concatv2si): Remove alternative 2. | |
33717 | (*vec_concatv4si_0): Use vm constraint for alternative 0. | |
33718 | (*vec_concatv4si_0): Remove preferred_for_speed attribute. | |
33719 | (vec_concatv2di): Split alternatives 4,5,6 to ... | |
33720 | (*vec_concatv2di_0) ... new pattern. | |
33721 | ||
33722 | 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com> | |
33723 | ||
33724 | PR target/89190 | |
33725 | * config/arm/arm.c (ldm_stm_operation_p) Set | |
33726 | addr_reg_in_reglist correctly for first register. | |
33727 | (load_multiple_sequence): Remove dead base check. | |
33728 | (gen_ldm_seq): Correctly set write_back for Thumb-1. | |
33729 | ||
33730 | 2019-02-13 Tamar Christina <tamar.christina@arm.com> | |
33731 | ||
33732 | PR target/88847 | |
33733 | * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>): | |
33734 | Expose as @aarch64_pred_mov. | |
33735 | * config/aarch64/aarch64.c (aarch64_classify_address): | |
33736 | Use expand_insn which legitimizes operands. | |
33737 | ||
33738 | 2019-02-13 Martin Liska <mliska@suse.cz> | |
33739 | ||
33740 | * builtins.h (expand_builtin_with_bounds): Remove declaration. | |
33741 | * calls.c (struct arg_data): Remove special_slot, pointer_arg | |
33742 | and pointer_offset fields. | |
33743 | (initialize_argument_information): Remove usage of dead | |
33744 | fields. | |
33745 | * cgraph.h (struct cgraph_thunk_info): Remove | |
33746 | add_pointer_bounds_args. | |
33747 | * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead | |
33748 | fields. | |
33749 | (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead | |
33750 | fields. | |
33751 | * config/i386/i386.c (ix86_function_arg_advance): Remove | |
33752 | unrelated comment. | |
33753 | (struct builtin_isa): Remove leaf_p and nothrow_p fields. | |
33754 | (def_builtin): Remove usage of dead fields. | |
33755 | (ix86_add_new_builtins): Likewise. | |
33756 | * ipa-fnsummary.c (compute_fn_summary): Likewise. | |
33757 | * ipa-icf.c (sem_function::equals_wpa): Likewise. | |
33758 | (sem_function::init): Likewise. | |
33759 | (sem_variable::merge): Likewise. | |
33760 | * ipa-visibility.c (function_and_variable_visibility): Likewise. | |
33761 | * ipa.c (symbol_table::remove_unreachable_nodes): Likewise. | |
33762 | * lto-cgraph.c (lto_output_node): Likewise. | |
33763 | (lto_output_varpool_node): Likewise. | |
33764 | (input_node): Likewise. | |
33765 | (input_varpool_node): Likewise. | |
33766 | * lto-streamer-out.c (lto_output): Likewise. | |
33767 | * tree-inline.c (expand_call_inline): Remove usage of | |
33768 | assign_stmts. | |
33769 | * tree-inline.h (struct copy_body_data): Likewise. | |
33770 | * varpool.c (varpool_node::dump): Likewise. | |
33771 | ||
33772 | 2019-02-13 Jakub Jelinek <jakub@redhat.com> | |
33773 | ||
33774 | PR middle-end/89303 | |
33775 | * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var | |
33776 | into pt->vars_contains_escaped_heap instead of setting | |
33777 | pt->vars_contains_escaped_heap to it. | |
33778 | ||
33779 | PR middle-end/89281 | |
33780 | * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of | |
33781 | INTVAL (size), compare it to GET_MODE_MASK instead of | |
33782 | 1 << GET_MODE_BITSIZE. | |
33783 | ||
33784 | PR target/89290 | |
33785 | * config/i386/predicates.md (x86_64_immediate_operand): Allow | |
33786 | TLS UNSPECs offsetted by signed 32-bit CONST_INT even with | |
33787 | -mcmodel=large. | |
33788 | ||
33789 | 2019-02-13 Martin Liska <mliska@suse.cz> | |
33790 | ||
33791 | PR lto/88858 | |
33792 | * cfgrtl.c (remove_barriers_from_footer): New function. | |
33793 | (try_redirect_by_replacing_jump): Use it. | |
33794 | (cfg_layout_redirect_edge_and_branch): Likewise. | |
33795 | ||
33796 | 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com> | |
33797 | ||
33798 | * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be, | |
33799 | vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines. | |
33800 | * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator. | |
33801 | (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns. | |
33802 | * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1. | |
33803 | (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE): | |
33804 | New BU_CRYPTO_2. | |
33805 | * config/rs6000/rs6000.c (builtin_function_type) | |
33806 | <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE, | |
33807 | CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE, | |
33808 | CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options. | |
33809 | * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be, | |
33810 | vec_ncipher_be, vec_ncipherlast_be): New builtin functions. | |
33811 | ||
33812 | 2019-02-12 Pat Haugen <pthaugen@us.ibm.com> | |
33813 | ||
33814 | * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate | |
33815 | -maltivec. Delete -maltivec=be and -maltivec=le documentation. | |
33816 | ||
33817 | 2019-02-12 H.J. Lu <hongjiu.lu@intel.com> | |
33818 | ||
33819 | PR target/89229 | |
33820 | * config/i386/i386.md (*movoi_internal_avx): Revert revision | |
33821 | 268678 and revision 268657. | |
33822 | (*movti_internal): Likewise. | |
33823 | ||
33824 | 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com> | |
33825 | ||
33826 | PR target/89233 | |
33827 | * config/s390/s390.c (s390_decompose_address): Update comment. | |
33828 | (s390_check_qrst_address): Reject invalid address forms after | |
33829 | LRA. | |
33830 | ||
33831 | 2019-02-12 Martin Liska <mliska@suse.cz> | |
33832 | ||
33833 | PR lto/88876 | |
33834 | * ipa-pure-const.c (propagate_pure_const): Revert hunk as | |
33835 | we need default values of funct_state for a function that | |
33836 | is not optimized. | |
33837 | ||
33838 | 2019-02-12 Eric Botcazou <ebotcazou@adacore.com> | |
33839 | ||
33840 | * asan.c (asan_expand_mark_ifn): Take into account the alignment of | |
33841 | the object to pick the size of stores on strict-alignment platforms. | |
33842 | ||
33843 | * config/sparc/sparc.md (*movsi_insn): Minor tweak. | |
33844 | (*movdi_insn_sp32): Likewise. | |
33845 | (*movdi_insn_sp64): Likewise. | |
33846 | ||
33847 | 2019-02-12 Jan Hubicka <hubicka@ucw.cz> | |
33848 | ||
33849 | PR lto/88677 | |
33850 | * cgraphunit.c (analyze_functions): Clear READONLY flag for external | |
33851 | types that needs constructiong. | |
33852 | * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING. | |
33853 | ||
33854 | 2019-02-12 Richard Biener <rguenther@suse.de> | |
33855 | ||
33856 | PR tree-optimization/89253 | |
33857 | * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can | |
33858 | duplicate the loop. | |
33859 | ||
33860 | 2019-02-11 David Malcolm <dmalcolm@redhat.com> | |
33861 | ||
33862 | PR lto/88147 | |
33863 | * input.c (selftest::test_line_offset_overflow): New selftest. | |
33864 | (selftest::input_c_tests): Call it. | |
33865 | ||
33866 | 2019-02-11 Martin Sebor <msebor@redhat.com> | |
33867 | ||
33868 | PR tree-optimization/88771 | |
33869 | * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable | |
33870 | when -Wstringop-overflow is set. | |
33871 | (builtin_memref::builtin_memref): Adjust excessive upper bound | |
33872 | only when lower bound is not excessive. | |
33873 | (maybe_diag_overlap): Detect and diagnose excessive bounds via | |
33874 | -Wstringop-ovefflow. | |
33875 | (maybe_diag_offset_bounds): Rename... | |
33876 | (maybe_diag_access_bounds): ...to this. | |
33877 | (check_bounds_or_overlap): Adjust for name change above. | |
33878 | ||
33879 | 2019-02-11 Martin Sebor <msebor@redhat.com> | |
33880 | ||
33881 | PR c++/87996 | |
33882 | * builtins.c (max_object_size): Move from here... | |
33883 | * builtins.h (max_object_size): ...and here... | |
33884 | * tree.c (max_object_size): ...to here... | |
33885 | * tree.h (max_object_size): ...and here. | |
33886 | ||
33887 | 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com> | |
33888 | ||
33889 | * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right | |
33890 | and shift-left vector built-ins need to include a TRUNC_MOD_EXPR | |
33891 | for correct semantics. | |
33892 | ||
33893 | 2019-02-11 Alan Modra <amodra@gmail.com> | |
33894 | ||
33895 | * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention | |
33896 | -mlongcall and -mpltseq. | |
33897 | (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls. | |
33898 | (RS/6000 and PowerPC Options <-mpltseq>): Document. | |
33899 | * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define. | |
33900 | * config/rs6000/sysv4.opt (mpltseq): New option. | |
33901 | * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine. | |
33902 | (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler | |
33903 | support is lacking. Don't allow -mpltseq with -mbss-plt. | |
33904 | * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if | |
33905 | -mpltseq given for ELFv1. | |
33906 | * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ. | |
33907 | Only use UNSPEC_PLTSEQ for inline PLT calls. | |
33908 | (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only | |
33909 | use UNSPEC_PLTSEQ for inline PLT calls. | |
33910 | (rs6000_indirect_call_template_1, rs6000_longcall_ref), | |
33911 | (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace | |
33912 | uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying. | |
33913 | * config/rs6000/rs6000.md (pltseq_tocsave_<mode>), | |
33914 | (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>), | |
33915 | (pltseq_mtctr_<mode>): Likewise. | |
33916 | ||
33917 | 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> | |
33918 | ||
33919 | * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with | |
33920 | Solaris ld. | |
33921 | * configure: Regenerate. | |
33922 | ||
33923 | 2019-02-11 Jakub Jelinek <jakub@redhat.com> | |
33924 | ||
33925 | PR bootstrap/88714 | |
33926 | * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint | |
33927 | instead of r. | |
33928 | ||
33929 | 2019-02-11 Hans-Peter Nilsson <hp@axis.com> | |
33930 | ||
33931 | * function.c (assign_parm_setup_block): Use the stored | |
33932 | size, not the passed size, when allocating stack-space, | |
33933 | also for a parameter with alignment larger than | |
33934 | MAX_SUPPORTED_STACK_ALIGNMENT. | |
33935 | ||
33936 | 2019-02-11 Martin Liska <mliska@suse.cz> | |
33937 | ||
33938 | PR ipa/89009 | |
33939 | * ipa-cp.c (build_toporder_info): Remove usage of a param. | |
33940 | * ipa-inline.c (inline_small_functions): Likewise. | |
33941 | * ipa-pure-const.c (propagate_pure_const): Likewise. | |
33942 | (propagate_nothrow): Likewise. | |
33943 | * ipa-reference.c (propagate): Likewise. | |
33944 | * ipa-utils.c (struct searchc_env): Remove unused field. | |
33945 | (searchc): Always search across AVAIL_INTERPOSABLE. | |
33946 | (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as | |
33947 | the only called IPA pure const can properly not propagate | |
33948 | across interposable boundary. | |
33949 | * ipa-utils.h (ipa_reduced_postorder): Remove param. | |
33950 | ||
33951 | 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com> | |
33952 | ||
33953 | * config/nds32/nds32.md (call_internal, call_value_internal, | |
33954 | sibcall_internal, sibcall_value_internal): Use SImode for mem rtx. | |
33955 | ||
33956 | 2019-02-11 Hans-Peter Nilsson <hp@axis.com> | |
33957 | ||
33958 | * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name | |
33959 | typo. | |
33960 | ||
33961 | 2019-02-10 H.J. Lu <hongjiu.lu@intel.com> | |
33962 | ||
33963 | * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ | |
33964 | in comments | |
33965 | ||
33966 | 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com> | |
33967 | ||
33968 | * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly. | |
33969 | ||
33970 | 2019-02-10 Jakub Jelinek <jakub@redhat.com> | |
33971 | ||
33972 | PR tree-optimization/89268 | |
33973 | * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only | |
33974 | if preds is non-NULL. | |
33975 | ||
33976 | 2019-02-09 Jan Hubicka <hubicka@ucw.cz> | |
33977 | ||
33978 | PR lto/89272 | |
33979 | * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for | |
33980 | polymorphic types. | |
33981 | ||
33982 | 2019-02-10 Monk Chiang <sh.chiang04@gmail.com> | |
33983 | ||
33984 | * config/nds32/nds32.md (trap): New pattern. | |
33985 | ||
33986 | 2019-02-10 Monk Chiang <sh.chiang04@gmail.com> | |
33987 | ||
33988 | * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register | |
33989 | dwarf span. | |
33990 | ||
33991 | 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com> | |
33992 | ||
33993 | * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support | |
33994 | to split POST_INC. | |
33995 | ||
33996 | 2019-02-09 Jan Hubicka <hubicka@ucw.cz> | |
33997 | ||
33998 | * ipa-visibility.c (localize_node): Also do not localize | |
33999 | LDPR_PREVAILING_DEF_IRONLY_EXP. | |
34000 | ||
34001 | 2019-02-09 Jan Hubicka <hubicka@ucw.cz> | |
34002 | ||
34003 | PR lto/87957 | |
34004 | * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P | |
34005 | instead of type_with_linkage. | |
34006 | ||
34007 | 2019-02-09 Jan Hubicka <hubicka@ucw.cz> | |
34008 | ||
34009 | PR ipa/88755 | |
34010 | * params.def (uninlined-function-insns, uninlined-function-time, | |
34011 | uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper | |
34012 | bound so we don't get overflows. | |
34013 | ||
34014 | 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com> | |
34015 | ||
34016 | * config/rs6000/rs6000-string.c (expand_compare_loop, | |
34017 | expand_block_compare): Insert REG_BR_PROB notes in inline expansion of | |
34018 | memcmp/strncmp. | |
34019 | ||
34020 | 2019-02-09 Jakub Jelinek <jakub@redhat.com> | |
34021 | ||
34022 | PR middle-end/89246 | |
34023 | * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): | |
34024 | If !node->definition and TYPE_ARG_TYPES is non-NULL, use | |
34025 | TYPE_ARG_TYPES instead of DECL_ARGUMENTS. | |
34026 | ||
34027 | 2019-02-09 Alan Modra <amodra@gmail.com> | |
34028 | ||
34029 | PR target/88343 | |
34030 | * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return | |
34031 | case. Match logic in rs6000_emit_prologue emitting pic_offset_table | |
34032 | setup. | |
34033 | ||
34034 | 2019-02-08 Vladimir Makarov <vmakarov@redhat.com> | |
34035 | ||
34036 | PR middle-end/88560 | |
34037 | * lra-constraints.c (process_alt_operands): Don't increase reject | |
34038 | for memory when offset memory is required. | |
34039 | ||
34040 | 2019-02-08 Robin Dapp <rdapp@linux.ibm.com> | |
34041 | ||
34042 | * config/s390/vector.md: Implement vector copysign. | |
34043 | ||
34044 | 2019-02-08 H.J. Lu <hongjiu.lu@intel.com> | |
34045 | ||
34046 | * expr.c (expand_constructor): Correct indentations. | |
34047 | ||
34048 | 2019-02-08 Richard Biener <rguenther@suse.de> | |
34049 | ||
34050 | PR tree-optimization/89247 | |
34051 | * tree-if-conv.c: Include tree-cfgcleanup.h. | |
34052 | (version_loop_for_if_conversion): Record LOOP_VECTORIZED call. | |
34053 | (tree_if_conversion): Pass through predicate vector. | |
34054 | (pass_if_conversion::execute): Do CFG cleanup and SSA update | |
34055 | inline, see if any if-converted loops we refrece in | |
34056 | LOOP_VECTORIZED calls vanished and fixup. | |
34057 | * tree-if-conv.h (tree_if_conversion): Adjust prototype. | |
34058 | ||
34059 | 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com> | |
34060 | ||
34061 | * config/s390/constraints.md (jdd): New constraint. | |
34062 | ||
34063 | 2019-02-08 H.J. Lu <hongjiu.lu@intel.com> | |
34064 | ||
34065 | PR target/89229 | |
34066 | * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for | |
34067 | upper 16 vector registers without TARGET_AVX512VL. | |
34068 | (*movti_internal): Likewise. | |
34069 | ||
34070 | 2019-02-08 Jakub Jelinek <jakub@redhat.com> | |
34071 | ||
34072 | PR rtl-optimization/89234 | |
34073 | * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn | |
34074 | is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P. | |
34075 | (copy_reg_eh_region_note_backward): Likewise. | |
34076 | ||
34077 | 2019-02-08 Richard Biener <rguenther@suse.de> | |
34078 | ||
34079 | PR middle-end/89223 | |
34080 | * tree-data-ref.c (initialize_matrix_A): Fail if constant | |
34081 | doesn't fit in HWI. | |
34082 | (analyze_subscript_affine_affine): Handle failure from | |
34083 | initialize_matrix_A. | |
34084 | ||
34085 | 2019-02-08 Jakub Jelinek <jakub@redhat.com> | |
34086 | ||
34087 | * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of | |
34088 | cfun everywhere. | |
34089 | ||
34090 | 2019-02-07 David Malcolm <dmalcolm@redhat.com> | |
34091 | ||
34092 | PR tree-optimization/86637 | |
34093 | PR tree-optimization/89235 | |
34094 | * tree-vect-loop.c (optimize_mask_stores): Add an | |
34095 | auto_purge_vect_location sentinel to ensure that vect_location is | |
34096 | purged on exit. | |
34097 | * tree-vectorizer.c | |
34098 | (auto_purge_vect_location::~auto_purge_vect_location): New dtor. | |
34099 | (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel | |
34100 | to ensure that vect_location is purged on exit. | |
34101 | (pass_slp_vectorize::execute): Likewise, replacing the manual | |
34102 | reset. | |
34103 | * tree-vectorizer.h (class auto_purge_vect_location): New class. | |
34104 | ||
34105 | 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
34106 | ||
34107 | * config/aarch64/iterators.md (max_opp): New code_attr. | |
34108 | (USMAX): New code iterator. | |
34109 | * config/aarch64/predicates.md (aarch64_smin): New predicate. | |
34110 | (aarch64_smax): Likewise. | |
34111 | * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to... | |
34112 | (*aarch64_<su>abd<mode>_3): ... Change RTL representation to | |
34113 | MINUS (MAX MIN). | |
34114 | ||
34115 | 2019-02-07 H.J. Lu <hongjiu.lu@intel.com> | |
34116 | ||
34117 | PR target/89229 | |
34118 | * config/i386/i386.md (*movoi_internal_avx): Set mode to OI | |
34119 | for TARGET_AVX512VL. | |
34120 | (*movti_internal): Set mode to TI for TARGET_AVX512VL. | |
34121 | ||
34122 | 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com> | |
34123 | ||
34124 | * config/s390/s390-builtin-types.def: Add new types. | |
34125 | * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2) | |
34126 | (s390_vec_xlw4): Make the memory operand into a const pointer. | |
34127 | (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision | |
34128 | float. | |
34129 | * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate | |
34130 | a new vector type with the alignment of the scalar memory operand. | |
34131 | ||
34132 | 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com> | |
34133 | Jakub Jelinek <jakub@redhat.com> | |
34134 | ||
34135 | PR bootstrap/88714 | |
34136 | * config/arm/arm-protos.h (valid_operands_ldrd_strd, | |
34137 | arm_count_ldrdstrd_insns): New declarations. | |
34138 | * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of | |
34139 | MINUS. | |
34140 | (valid_operands_ldrd_strd): New function. | |
34141 | (arm_count_ldrdstrd_insns): New function. | |
34142 | * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode | |
34143 | sets instead of single DImode set and define new insns to match this. | |
34144 | ||
34145 | 2019-02-07 Tamar Christina <tamar.christina@arm.com> | |
34146 | ||
34147 | * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data): | |
34148 | Make it a C initializer. | |
34149 | ||
34150 | 2019-02-07 Tamar Christina <tamar.christina@arm.com> | |
34151 | ||
34152 | PR/target 88850 | |
34153 | * config/arm/neon.md (*neon_mov<mode>): Add r -> r case. | |
34154 | ||
34155 | 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
34156 | ||
34157 | * config/arm/neon.md (neon_<sup>dot<vsi2qi>): | |
34158 | Use neon_dot<q> for type. | |
34159 | (neon_<sup>dot_lane<vsi2qi>): Likewise. | |
34160 | ||
34161 | 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
34162 | ||
34163 | * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>): | |
34164 | Use neon_dot<q> for type. | |
34165 | (aarch64_<sur>dot_lane<vsi2qi>): Likewise. | |
34166 | (aarch64_<sur>dot_laneq<vsi2qi>): Likewise. | |
34167 | ||
34168 | 2019-02-06 Vladimir Makarov <vmakarov@redhat.com> | |
34169 | ||
34170 | PR rtl-optimization/89225 | |
34171 | * lra-constaints.c (simplify_operand_subreg): Add subreg mode | |
34172 | sizes check. | |
34173 | ||
34174 | 2019-02-06 Eric Botcazou <ebotcazou@adacore.com> | |
34175 | ||
34176 | * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage | |
34177 | after restoring registers saved to allocate the frame on Windows. | |
34178 | ||
34179 | 2019-02-06 Richard Biener <rguenther@suse.de> | |
34180 | ||
34181 | PR tree-optimization/89182 | |
34182 | * graphite.h (cached_scalar_evolution_in_region): Declare. | |
34183 | * graphite.c (struct seir_cache_key): New. | |
34184 | (struct sese_scev_hash): Likewise. | |
34185 | (seir_cache): New global. | |
34186 | (cached_scalar_evolution_in_region): New function. | |
34187 | (graphite_transform_loops): Allocate and release seir_cache. | |
34188 | * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use | |
34189 | cached_scalar_evolution_in_region. | |
34190 | * graphite-scop-detection.c (scop_detection::can_represent_loop): | |
34191 | Simplify. | |
34192 | (scop_detection::graphite_can_represent_expr: Use | |
34193 | cached_scalar_evolution_in_region. | |
34194 | (scop_detection::stmt_simple_for_scop_p): Likewise. | |
34195 | (find_params_in_bb): Likewise. | |
34196 | (gather_bbs::before_dom_children): Likewise. | |
34197 | * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise. | |
34198 | (add_loop_constraints): Likewise. | |
34199 | ||
34200 | 2019-02-06 Jakub Jelinek <jakub@redhat.com> | |
34201 | ||
34202 | PR middle-end/89210 | |
34203 | * fold-const-call.c (fold_const_vec_convert): Pass true as last | |
34204 | operand to new_unary_operation only if both element types are integral | |
34205 | and it isn't a widening conversion. Return NULL_TREE if | |
34206 | new_unary_operation failed. | |
34207 | ||
34208 | 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com> | |
34209 | ||
34210 | PR target/88856 | |
34211 | * config/s390/s390.md: Remove load and test FP splitter. | |
34212 | ||
34213 | 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> | |
34214 | ||
34215 | PR target/89112 | |
34216 | * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence, | |
34217 | expand_compare_loop, expand_block_compare_gpr, | |
34218 | expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert | |
34219 | REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add | |
34220 | #include "profile-count.h" and "predict.h" for types and functions | |
34221 | needed to work with REG_BR_PROB notes. | |
34222 | ||
34223 | 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com> | |
34224 | ||
34225 | PR target/89112 | |
34226 | * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label | |
34227 | for the long branch case. | |
34228 | ||
34229 | 2019-02-05 Jakub Jelinek <jakub@redhat.com> | |
34230 | ||
34231 | PR target/89188 | |
34232 | * dce.c (delete_unmarked_insns): Don't remove no-op moves if they | |
34233 | can throw, non-call exceptions are enabled and we can't delete | |
34234 | dead exceptions or alter cfg. Set must_clean if | |
34235 | delete_insn_and_edges returns true, don't set it blindly for calls. | |
34236 | Assert that delete_unreachable_blocks is called only if can_alter_cfg. | |
34237 | ||
34238 | PR rtl-optimization/89195 | |
34239 | * combine.c (make_extraction): For MEMs, don't extract bytes outside | |
34240 | of the original MEM. | |
34241 | ||
34242 | 2019-02-05 Martin Liska <mliska@suse.cz> | |
34243 | ||
34244 | PR gcov-profile/89000 | |
34245 | * gcov.c (function_summary): Remove argument. | |
34246 | (file_summary): New function. | |
34247 | (print_usage): Replace tabs with spaces. | |
34248 | (generate_results): Use new function file_summary. | |
34249 | ||
34250 | 2019-02-05 Jakub Jelinek <jakub@redhat.com> | |
34251 | ||
34252 | PR target/89186 | |
34253 | * optabs.c (prepare_cmp_insn): Pass x and y to | |
34254 | emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0). | |
34255 | ||
34256 | 2019-02-05 Richard Biener <rguenther@suse.de> | |
34257 | ||
34258 | PR middle-end/89150 | |
34259 | * bitmap.h (struct bitmap_obstack): Do not mark GTY. | |
34260 | (struct bitmap_element): Drop chain_prev so we properly recurse on | |
34261 | the prev member, supporting tree views. | |
34262 | (struct bitmap_head): GTY skip the obstack member. | |
34263 | ||
34264 | 2019-02-04 Alexander Monakov <amonakov@ispras.ru> | |
34265 | ||
34266 | PR c/88698 | |
34267 | * doc/extend.texi (Vector Extensions): Add an example of using vector | |
34268 | types together with x86 intrinsics. | |
34269 | ||
34270 | 2019-02-04 Alan Modra <amodra@gmail.com> | |
34271 | ||
34272 | * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase | |
34273 | str[] size to 160, and comment. | |
34274 | ||
34275 | 2019-02-04 Alan Modra <amodra@gmail.com> | |
34276 | ||
34277 | * config/rs6000/rs6000.c (rs6000_indirect_call_template_1), | |
34278 | (rs6000_pltseq_template): Guard output of TLS markers with | |
34279 | TARGET_TLS_MARKERS. | |
34280 | (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv), | |
34281 | (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding | |
34282 | to use inline PLT sequences. | |
34283 | * config/rs6000/rs6000.md (pltseq_tocsave_<mode>), | |
34284 | (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>), | |
34285 | (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate. | |
34286 | ||
34287 | 2019-02-04 Martin Liska <mliska@suse.cz> | |
34288 | ||
34289 | PR ipa/88985 | |
34290 | * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail | |
34291 | out when ipa_fn_summaries does not contain entry for callee. | |
34292 | ||
34293 | 2019-02-04 Eric Botcazou <ebotcazou@adacore.com> | |
34294 | ||
34295 | * config/sparc/sparc.h: Remove superfluous blank lines. | |
34296 | * config/sparc/sparc.c (global_offset_table_rtx): Rename into... | |
34297 | (got_register_rtx): ...this. | |
34298 | (sparc_got): Adjust to above renaming. | |
34299 | (sparc_tls_got): Likewise. | |
34300 | (sparc_delegitimize_address): Likewise. | |
34301 | (sparc_output_mi_thunk): Likewise. | |
34302 | (sparc_init_pic_reg): Likewise. | |
34303 | (save_local_or_in_reg_p): Fix test on the GOT register. | |
34304 | (USE_HIDDEN_LINKONCE): Move around. | |
34305 | (get_pc_thunk_name): Likewise. | |
34306 | (gen_load_pcrel_sym): Likewise. | |
34307 | (load_got_register): Likewise. | |
34308 | ||
34309 | 2019-02-04 Kito Cheng <kito.cheng@gmail.com> | |
34310 | ||
34311 | * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule | |
34312 | of the dynamic linker: "ld-linux-nds32[le|be][f].so.1". | |
34313 | ||
34314 | 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com> | |
34315 | ||
34316 | * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model | |
34317 | into consideration. | |
34318 | ||
34319 | 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com> | |
34320 | ||
34321 | * config.gcc (with_nds32_lib, glibc): | |
34322 | Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting. | |
34323 | * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete. | |
34324 | (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete. | |
34325 | ||
34326 | 2019-02-03 Uroš Bizjak <ubizjak@gmail.com> | |
34327 | ||
34328 | PR target/89071 | |
34329 | * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative. | |
34330 | Do not prefer (v,v) alternative for non-AVX targets and (m,v) | |
34331 | alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set. | |
34332 | (*rcpsf2_sse): Ditto. | |
34333 | (*rsqrtsf2_sse): Ditto. | |
34334 | (sse4_1_round<mode<2): Ditto. | |
34335 | ||
34336 | 2019-02-03 Richard Biener <rguenther@suse.de> | |
34337 | ||
34338 | PR debug/87295 | |
34339 | * dwarf2out.c (copy_ancestor_tree): Register non-stubs as | |
34340 | orig. | |
34341 | ||
34342 | 2019-02-02 Jakub Jelinek <jakub@redhat.com> | |
34343 | ||
34344 | PR middle-end/87887 | |
34345 | * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen): | |
34346 | Punt with warning on aggregate return or argument types. Ignore | |
34347 | type/mode checking for uniform arguments. | |
34348 | ||
34349 | 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org> | |
34350 | ||
34351 | * combine.c (try_combine): Do not print "Can't combine" messages unless | |
34352 | printing failed combination attempts. | |
34353 | ||
34354 | 2019-02-01 Martin Jambor <mjambor@suse.cz> | |
34355 | ||
34356 | PR hsa/87863 | |
34357 | * omp-grid.c (grid_mark_variable_segment): Set assembler name of group | |
34358 | segment and global segment variables before making them static. | |
34359 | ||
34360 | 2019-02-01 Martin Jambor <mjambor@suse.cz> | |
34361 | ||
34362 | * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two | |
34363 | missed optimization dump with dump_enabled_p. | |
34364 | ||
34365 | 2019-02-01 Richard Biener <rguenther@suse.de> | |
34366 | ||
34367 | PR middle-end/88597 | |
34368 | * tree-scalar-evolution.c (analyze_scalar_evolution): Set up | |
34369 | the instantiate cache. | |
34370 | (instantiate_scev_binary): Elide second operand procesing | |
34371 | if equal to the first. | |
34372 | * tree-chrec.c (chrec_contains_symbols): Add visited set. | |
34373 | (chrec_contains_undetermined): Likewise. | |
34374 | (tree_contains_chrecs): Likewise. | |
34375 | ||
34376 | 2019-02-01 Jan Hubicka <hubicka@ucw.cz> | |
34377 | ||
34378 | * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200. | |
34379 | ||
34380 | 2019-02-01 Jakub Jelinek <jakub@redhat.com> | |
34381 | ||
34382 | PR tree-optimization/89143 | |
34383 | * wide-int-range.h (wide_int_range_absu): Declare. | |
34384 | * wide-int-range.cc (wide_int_range_absu): New function. | |
34385 | * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR. | |
34386 | ||
34387 | PR tree-optimization/88107 | |
34388 | * tree-cfg.c (find_outermost_region_in_block): Add ALL argument, | |
34389 | instead of assertion that eh_region_outermost is non-NULL, if it | |
34390 | is NULL, set *ALL to true and return NULL. | |
34391 | (move_sese_region_to_fn): Adjust caller, if all is set, call | |
34392 | duplicate_eh_regions with NULL region. | |
34393 | ||
34394 | 2019-02-01 Richard Biener <rguenth@suse.de> | |
34395 | ||
34396 | PR rtl-optimization/88593 | |
34397 | * mode-switching.c (optimize_mode_switching): Free dominators before | |
34398 | calling cleanup_cfg. | |
34399 | ||
34400 | 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com> | |
34401 | ||
34402 | PR tree-optimization/88932 | |
34403 | * tree-predcom.c (try_combine_chains): Get loop bbs in dom order. | |
34404 | ||
34405 | 2019-01-31 Jakub Jelinek <jakub@redhat.com> | |
34406 | ||
34407 | PR middle-end/89137 | |
34408 | * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid | |
34409 | bogus clang warning. | |
34410 | ||
34411 | 2019-01-31 Uroš Bizjak <ubizjak@gmail.com> | |
34412 | ||
34413 | PR target/89071 | |
34414 | * config/i386/i386.md (*extendsfdf2): Split out reg->reg | |
34415 | alternative to avoid partial SSE register stall for TARGET_AVX. | |
34416 | (truncdfsf2): Ditto. | |
34417 | (sse4_1_round<mode>2): Ditto. | |
34418 | ||
34419 | 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com> | |
34420 | ||
34421 | PR tree-optimization/89008 | |
34422 | * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't | |
34423 | process anything of the form X * 0. | |
34424 | ||
34425 | 2019-01-31 Richard Biener <rguenther@suse.de> | |
34426 | ||
34427 | PR tree-optimization/89135 | |
34428 | * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks | |
34429 | with abnormal preds. | |
34430 | ||
34431 | 2019-01-31 Jakub Jelinek <jakub@redhat.com> | |
34432 | ||
34433 | PR sanitizer/89124 | |
34434 | * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining | |
34435 | always_inline callees into no_sanitize_address callers. | |
34436 | ||
34437 | 2019-01-31 Richard Biener <rguenther@suse.de> | |
34438 | ||
34439 | PR rtl-optimization/89115 | |
34440 | * lra.c (lra_rtx_hash): Properly hash CONST_INT values. | |
34441 | ||
34442 | 2019-01-30 Martin Sebor <msebor@redhat.com> | |
34443 | ||
34444 | PR other/89106 | |
34445 | * doc/extend.texi (cast to a union): Correct and expand. | |
34446 | ||
34447 | 2019-01-30 Vladimir Makarov <vmakarov@redhat.com> | |
34448 | ||
34449 | PR rtl-optimization/87246 | |
34450 | * lra-constraints.c (simplify_operand_subreg): Reload memory | |
34451 | in subreg if the address became invalid. | |
34452 | ||
34453 | 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com> | |
34454 | ||
34455 | PR target/87064 | |
34456 | * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar): | |
34457 | Disable for little-endian. | |
34458 | ||
34459 | 2019-01-30 Richard Biener <rguenther@suse.de> | |
34460 | ||
34461 | PR rtl-optimization/89115 | |
34462 | * opts.c (default_options_optimization): Reduce | |
34463 | PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1. | |
34464 | Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative | |
34465 | to the default. | |
34466 | ||
34467 | 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org> | |
34468 | ||
34469 | * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin): | |
34470 | Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to | |
34471 | type of vector element when vec_extract is implemented by direct | |
34472 | move. | |
34473 | ||
34474 | 2019-01-30 Thomas Schwinge <thomas@codesourcery.com> | |
34475 | ||
34476 | * doc/invoke.texi (C Language Options): List "-fopenacc-dim". | |
34477 | ||
34478 | 2019-01-30 Richard Biener <rguenther@suse.de> | |
34479 | ||
34480 | PR tree-optimization/89111 | |
34481 | * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict | |
34482 | canonicalization to appropriately sized access types. | |
34483 | ||
34484 | 2019-01-30 Jakub Jelinek <jakub@redhat.com> | |
34485 | ||
34486 | PR c++/89105 | |
34487 | * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn | |
34488 | for arguments to functions that are TU-local and shouldn't be | |
34489 | referenced by assembly. | |
34490 | ||
34491 | 2019-01-30 Ulrich Drepper <drepper@redhat.com> | |
34492 | ||
34493 | * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears | |
34494 | after '='. | |
34495 | ||
34496 | 2019-01-29 Martin Sebor <msebor@redhat.com> | |
34497 | ||
34498 | PR c/88956 | |
34499 | * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays. | |
34500 | ||
34501 | 2019-01-29 Jakub Jelinek <jakub@redhat.com> | |
34502 | ||
34503 | PR c++/66676 | |
34504 | PR ipa/89104 | |
34505 | * omp-simd-clone.c (simd_clone_clauses_extract) | |
34506 | <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL | |
34507 | OMP_CLAUSE_ALIGNED_ALIGNMENT. | |
34508 | ||
34509 | 2019-01-29 Vineet Gupta <vgupta@synopsys.com> | |
34510 | ||
34511 | * config.gcc: Force .init_array for ARC. | |
34512 | ||
34513 | 2019-01-29 Richard Biener <rguenther@suse.de> | |
34514 | ||
34515 | PR debug/87295 | |
34516 | * dwarf2out.c (collect_skeleton_dies): New helper. | |
34517 | (copy_decls_for_unworthy_types): Call it. | |
34518 | (build_abbrev_table): Assert we do not try to replace | |
34519 | DW_AT_signature refs with local refs. | |
34520 | ||
34521 | 2019-01-28 Jakub Jelinek <jakub@redhat.com> | |
34522 | ||
34523 | PR middle-end/89002 | |
34524 | * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ | |
34525 | for lastprivate/linear IV, push gimplify context around gimplify_assign | |
34526 | and, if it needed any temporaries, pop it into a gimple bind around the | |
34527 | sequence. | |
34528 | ||
34529 | 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
34530 | ||
34531 | * common.opt (-Wattribute-alias): Remove "no-" from name. | |
34532 | Make -Wattribute-alias command line option and | |
34533 | #pragma GCC diagnostic ignored "-Wattribute-alias" work again. | |
34534 | ||
34535 | 2019-01-28 Jakub Jelinek <jakub@redhat.com> | |
34536 | ||
34537 | PR target/89073 | |
34538 | * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx, | |
34539 | -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document | |
34540 | x86 ISA options. | |
34541 | (bmi2): Add missing @opindex. | |
34542 | * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3 | |
34543 | options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2, | |
34544 | avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd, | |
34545 | avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi, | |
34546 | avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2, | |
34547 | cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase, | |
34548 | fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig, | |
34549 | pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf, | |
34550 | sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave, | |
34551 | xsavec, xsaveopt and xsaves options. | |
34552 | ||
34553 | 2019-01-28 Richard Biener <rguenther@suse.de> | |
34554 | ||
34555 | PR debug/89076 | |
34556 | * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX | |
34557 | support removal. | |
34558 | ||
34559 | 2019-01-28 Richard Biener <rguenther@suse.de> | |
34560 | ||
34561 | PR tree-optimization/88739 | |
34562 | * tree-cfg.c (verify_types_in_gimple_reference): Verify | |
34563 | BIT_FIELD_REFs only are applied to mode-precision operands | |
34564 | when they are integral. | |
34565 | (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR. | |
34566 | * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating | |
34567 | BIT_FIELD_REFs of non-mode-precision integral operands. | |
34568 | ||
34569 | 2019-01-27 Jakub Jelinek <jakub@redhat.com> | |
34570 | ||
34571 | PR target/87214 | |
34572 | * config/i386/sse.md | |
34573 | (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>, | |
34574 | avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the | |
34575 | first constants in pairs are multiples of 2. Formatting fixes. | |
34576 | (avx512vl_shuf_<shuffletype>32x4_1<mask_name>, | |
34577 | avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the | |
34578 | first constants in each quadruple are multiples of 4. Formatting fixes. | |
34579 | ||
34580 | 2019-01-26 Martin Jambor <mjambor@suse.cz> | |
34581 | ||
34582 | PR ipa/88933 | |
34583 | * tree-inline.c: Include tree-cfgcleanup.h. | |
34584 | (delete_unreachable_blocks_update_callgraph): Move... | |
34585 | * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph): | |
34586 | ...here, make externally visible, make second argument bool, adjust | |
34587 | all callers. | |
34588 | * tree-cfgcleanup.c: Include cgraph.h. | |
34589 | * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph): | |
34590 | Declare. | |
34591 | * ipa-prop.c: Include tree-cfgcleanup.h. | |
34592 | (ipcp_transform_function): Call | |
34593 | delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG. | |
34594 | ||
34595 | 2019-01-25 Vladimir Makarov <vmakarov@redhat.com> | |
34596 | ||
34597 | PR rtl-optimization/88846 | |
34598 | * ira.c (process_set_for_memref_referenced_p): New. | |
34599 | (memref_referenced_p): Add new param. Use | |
34600 | process_set_for_memref_referenced_p. Add new switch cases. | |
34601 | (memref_used_between_p): Pass new arg to memref_referenced_p. | |
34602 | ||
34603 | 2019-01-25 Richard Earnshaw <rearnsha@arm.com> | |
34604 | ||
34605 | PR target/88469 | |
34606 | * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new | |
34607 | argument ABI_BREAK. Set to true if the calculated alignment has | |
34608 | changed in gcc-9. Check bit-fields for their base type alignment. | |
34609 | (aarch64_layout_arg): Warn if argument passing has changed in gcc-9. | |
34610 | (aarch64_function_arg_boundary): Likewise. | |
34611 | (aarch64_gimplify_va_arg_expr): Likewise. | |
34612 | ||
34613 | 2019-01-25 Richard Sandiford <richard.sandiford@arm.com> | |
34614 | ||
34615 | PR middle-end/89037 | |
34616 | * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi | |
34617 | instead of accessing TREE_INT_CST_ELT directly. | |
34618 | ||
34619 | 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org> | |
34620 | ||
34621 | * doc/sourcebuild.texi (Environment attributes): Add fenv and | |
34622 | fenv_exceptions description. | |
34623 | ||
34624 | 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com> | |
34625 | ||
34626 | PR rtl-optimization/87763 | |
34627 | * config/aarch64/aarch64.c (aarch64_select_cc_mode): | |
34628 | Allow SUBREG when matching CC_NZmode compare. | |
34629 | ||
34630 | 2019-01-25 Richard Biener <rguenther@suse.de> | |
34631 | ||
34632 | PR tree-optimization/89049 | |
34633 | * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost): | |
34634 | Look at the pattern stmt to determine if the stmt is vectorized. | |
34635 | ||
34636 | 2019-01-25 Richard Sandiford <richard.sandiford@arm.com> | |
34637 | ||
34638 | * config/aarch64/aarch64-sve.md (*pred_mov<mode>) | |
34639 | (pred_mov<mode>): Handle all-register forms using both a new | |
34640 | alternative and a split. | |
34641 | ||
34642 | 2019-01-25 Richard Biener <rguenther@suse.de> | |
34643 | ||
34644 | PR tree-optimization/86865 | |
34645 | * graphite-scop-detection.c (scop_detection::can_represent_loop): | |
34646 | Reject non-do-while loops. | |
34647 | ||
34648 | 2019-01-24 Peter Bergner <bergner@linux.ibm.com> | |
34649 | ||
34650 | * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P. | |
34651 | * config/rs6000/constraints.md (Q constraint): Use REG_P. | |
34652 | * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P. | |
34653 | * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use | |
34654 | SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P. | |
34655 | * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. | |
34656 | * config/rs6000/predicates.md (altivec_register_operand, vint_operand, | |
34657 | vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand, | |
34658 | vlogical_operand, gpc_reg_operand, int_reg_operand, | |
34659 | int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P. | |
34660 | (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand, | |
34661 | cc_reg_not_cr0_operand, input_operand): Use SUBREG_P. | |
34662 | (save_world_operation, restore_world_operation, lmw_operation, | |
34663 | stmw_operation): Use MEM_P and REG_P. | |
34664 | (tie_operand): Use MEM_P. | |
34665 | (vrsave_operation, crsave_operation): Use REG_P. | |
34666 | (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P. | |
34667 | (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P. | |
34668 | (quad_int_reg_operand): Use HARD_REGISTER_NUM_P. | |
34669 | (call_operand): Use HARD_REGISTER_P. | |
34670 | (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand): | |
34671 | Use CONST_INT_P. | |
34672 | (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P. | |
34673 | * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p, | |
34674 | quad_aligned_load_p, replace_swapped_aligned_store, | |
34675 | recombine_lvx_pattern, replace_swapped_aligned_load, | |
34676 | recombine_stvx_pattern): Use MEM_P. | |
34677 | (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant): | |
34678 | Use MEM_P and SYMBOL_REF_P. | |
34679 | (rtx_is_swappable_p): Use REG_P and CONST_INT_P. | |
34680 | (insn_is_swappable_p): Use REG_P and MEM_P. | |
34681 | (insn_is_swap_p, (alignment_mask): Use CONST_INT_P. | |
34682 | * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move): | |
34683 | Use CONST_INT_P. | |
34684 | * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove): | |
34685 | Use CONST_DOUBLE_P. | |
34686 | (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and | |
34687 | CONST_WIDE_INT_P. | |
34688 | (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P, | |
34689 | CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P. | |
34690 | (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P, | |
34691 | HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and | |
34692 | reg_or_subregno: | |
34693 | (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P. | |
34694 | (easy_altivec_constant, rs6000_legitimate_offset_address_p, | |
34695 | rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin, | |
34696 | rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin, | |
34697 | rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare, | |
34698 | rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner, | |
34699 | rs6000_split_logical_di): Use CONST_INT_P. | |
34700 | (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P, | |
34701 | REG_P and SYMBOL_REF_P. | |
34702 | (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P. | |
34703 | (print_operand): Use CONST_INT_P, MEM_P and REG_P. | |
34704 | (virtual_stack_registers_memory_p, rs6000_legitimate_address_p, | |
34705 | mems_ok_for_quad_peep): Use CONST_INT_P and REG_P. | |
34706 | (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P. | |
34707 | (small_data_operand, print_operand_address): Use CONST_INT_P and | |
34708 | SYMBOL_REF_P. | |
34709 | (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P. | |
34710 | (rs6000_init_hard_regno_mode_ok, direct_move_p): | |
34711 | Use HARD_REGISTER_NUM_P. | |
34712 | (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P. | |
34713 | (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P, | |
34714 | SUBREG_P and SYMBOL_REF_P. | |
34715 | (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P | |
34716 | and HARD_REGISTER_NUM_P. | |
34717 | (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and | |
34718 | reg_or_subregno. | |
34719 | (rs6000_adjust_cost, find_mem_ref): Use MEM_P. | |
34720 | (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use | |
34721 | MEM_P and REG_P. | |
34722 | (legitimate_indirect_address_p, legitimate_lo_sum_address_p, | |
34723 | registers_ok_for_quad_peep, rs6000_output_function_epilogue, | |
34724 | find_addr_reg): Use REG_P. | |
34725 | (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P. | |
34726 | (rs6000_emit_le_vsx_move): Use SUBREG_P. | |
34727 | (offsettable_ok_by_alignment, constant_pool_expr_p, | |
34728 | legitimate_small_data_p, rs6000_output_dwarf_dtprel, | |
34729 | rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p, | |
34730 | rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra, | |
34731 | rs6000_assemble_integer, create_TOC_reference, | |
34732 | rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info, | |
34733 | rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P. | |
34734 | (rs6000_split_vec_extract_var): Use reg_or_subregno. | |
34735 | * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use | |
34736 | CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P. | |
34737 | * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. | |
34738 | * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise. | |
34739 | * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P. | |
34740 | (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P. | |
34741 | (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P. | |
34742 | (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P. | |
34743 | * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3 | |
34744 | and cbranch<mode>4): Use CONST_INT_P. | |
34745 | (multiple define_splits): Use REG_P and SUBREG_P. | |
34746 | (define_expands call, call_value): Use MEM_P. | |
34747 | (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P. | |
34748 | (define insn *mtcrfsi): Use CONST_INT_P and REG_P. | |
34749 | * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>, | |
34750 | *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P | |
34751 | and HARD_REGISTER_NUM_P. | |
34752 | (multiple define_splits): Use HARD_REGISTER_NUM_P. | |
34753 | ||
34754 | 2019-01-24 Uroš Bizjak <ubizjak@gmail.com> | |
34755 | ||
34756 | PR rtl-optimization/88948 | |
34757 | * rtl.h (prepare_copy_insn): New prototype. | |
34758 | * gcse.c (prepare_copy_insn): New function, split out from | |
34759 | process_insert_insn. | |
34760 | (process_insert_insn): Use prepare_copy_insn. | |
34761 | * store-motion.c (replace_store_insn): Use prepare_copy_insn | |
34762 | instead of gen_move_insn. | |
34763 | ||
34764 | 2019-01-24 Jakub Jelinek <jakub@redhat.com> | |
34765 | ||
34766 | PR debug/89006 | |
34767 | * config/i386/i386.c (ix86_pic_register_p): Return true for | |
34768 | UNSPEC_SET_GOT too. | |
34769 | ||
34770 | PR tree-optimization/88964 | |
34771 | * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also | |
34772 | punt if HONOR_SNANS (chrec). | |
34773 | ||
34774 | PR middle-end/89015 | |
34775 | * tree-nested.c (convert_nonlocal_reference_stmt, | |
34776 | convert_local_reference_stmt, convert_tramp_reference_stmt, | |
34777 | convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat | |
34778 | gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL | |
34779 | or GIMPLE_OMP_TASK. | |
34780 | ||
34781 | PR tree-optimization/89027 | |
34782 | * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers | |
34783 | for "omp simd array" variables. | |
34784 | ||
34785 | 2019-01-24 Richard Earnshaw <rearnsha@arm.com> | |
34786 | ||
34787 | PR target/88469 | |
34788 | * profile-count.h (profile_count): On ARM systems using GCC 6/7/8 | |
34789 | force the alignment of m_val. | |
34790 | ||
34791 | 2019-01-24 Richard Biener <rguenther@suse.de> | |
34792 | ||
34793 | PR lto/87187 | |
34794 | * tree-streamer-out.c (write_ts_decl_common_tree_pointers): | |
34795 | When in "legacy" debug mode make sure to reset self-origins. | |
34796 | ||
34797 | 2019-01-24 Martin Liska <mliska@suse.cz> | |
34798 | ||
34799 | PR gcov-profile/88994 | |
34800 | * gcov-io.c (mangle_path): Do not allocate a bigger buffer, | |
34801 | result will be always smaller or equal to the original. | |
34802 | * gcov.c (mangle_name): Fix else branch where we should | |
34803 | also copy to PTR and shift the pointer. | |
34804 | ||
34805 | 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com> | |
34806 | ||
34807 | * tree-ssa-dom.c (test_for_singularity): Fix a comment typo. | |
34808 | * vr-values.c (find_case_label_ranges): Fix a comment typo. | |
34809 | ||
34810 | 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com> | |
34811 | ||
34812 | * common/config/i386/i386-common.c | |
34813 | (OPTION_MASK_ISA_ENQCMD_SET, | |
34814 | OPTION_MASK_ISA_ENQCMD_UNSET): New macros. | |
34815 | (ix86_handle_option): Handle -menqcmd. | |
34816 | * config.gcc (enqcmdintrin.h): New header file. | |
34817 | * config/i386/cpuid.h (bit_ENQCMD): New bit. | |
34818 | * config/i386/driver-i386.c (host_detect_local_cpu): Handle | |
34819 | -menqcmd. | |
34820 | * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New | |
34821 | function type. | |
34822 | * config/i386/i386-builtin.def (__builtin_ia32_enqcmd, | |
34823 | __builtin_ia32_enqcmds): New builtins. | |
34824 | * config/i386/i386-c.c (__ENQCMD__): New macro. | |
34825 | * config/i386/i386-option.c (ix86_target_string): Add | |
34826 | -menqcmd. | |
34827 | (ix86_valid_target_attribute_inner_p): Likewise. | |
34828 | * config/i386/i386-expand.c | |
34829 | (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and | |
34830 | IX86_BUILTIN_ENQCMDS. | |
34831 | * config/i386/i386.h (TARGET_ENQCMD): New. | |
34832 | * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New. | |
34833 | (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern. | |
34834 | (movdir64b_<mode>): Parameterize to enable share expansion code | |
34835 | with ENQCMD in function ix86_expand_builtin. | |
34836 | * config/i386/i386.opt: Add -menqcmd. | |
34837 | * config/i386/immintrin.h: Include enqcmdintrin.h. | |
34838 | * config/i386/enqcmdintrin.h: New intrinsic file. | |
34839 | * doc/invoke.texi: Add -menqcmd. | |
34840 | ||
34841 | 2019-01-23 Bin Cheng <bin.cheng@arm.com> | |
34842 | Steve Ellcey <sellcey@marvell.com> | |
34843 | ||
34844 | PR target/85711 | |
34845 | * recog.c (address_operand): Return false on wrong mode for address. | |
34846 | (constrain_operands): Check for mode with 'p' constraint. | |
34847 | ||
34848 | 2019-01-23 Uroš Bizjak <ubizjak@gmail.com> | |
34849 | ||
34850 | PR target/88998 | |
34851 | * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives. | |
34852 | Disparage MMX alternative. | |
34853 | (sse2_cvtpd2pi): Ditto. | |
34854 | (sse2_cvttpd2pi): Ditto. | |
34855 | ||
34856 | 2019-01-23 David Malcolm <dmalcolm@redhat.com> | |
34857 | ||
34858 | PR driver/89014 | |
34859 | * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix | |
34860 | use-after-free of the result of | |
34861 | aarch64_get_extension_string_for_isa_flags. | |
34862 | ||
34863 | 2019-01-23 Jakub Jelinek <jakub@redhat.com> | |
34864 | ||
34865 | PR c/44715 | |
34866 | * doc/extend.texi: Document break and continue behavior in | |
34867 | statement expressions. | |
34868 | ||
34869 | 2019-01-23 Richard Biener <rguenther@suse.de> | |
34870 | ||
34871 | PR tree-optimization/89008 | |
34872 | * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do | |
34873 | not leave another stray operand. | |
34874 | ||
34875 | 2019-01-23 Jakub Jelinek <jakub@redhat.com> | |
34876 | ||
34877 | * BASE-VER: Bump to 9.0.1. | |
34878 | ||
34879 | 2019-01-23 Eric Botcazou <ebotcazou@adacore.com> | |
34880 | ||
34881 | * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE | |
34882 | thunk that returns by reference, use the type of the return object | |
34883 | of the thunk instead of that of the alias to build the dereference. | |
34884 | ||
34885 | 2019-01-23 Vineet Gupta <vgupta@synopsys.com> | |
34886 | ||
34887 | * config/arc/atomic.md: Add operand to DMB instruction. | |
34888 | ||
34889 | 2019-01-23 Jakub Jelinek <jakub@redhat.com> | |
34890 | ||
34891 | PR tree-optimization/88964 | |
34892 | * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use | |
34893 | build_zero_cst instead of build_int_cst. Return false for loop | |
34894 | invariants which honor signed zeros. | |
34895 | ||
34896 | 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org> | |
34897 | ||
34898 | * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3. | |
34899 | ||
34900 | 2019-01-22 Jakub Jelinek <jakub@redhat.com> | |
34901 | ||
34902 | PR target/88965 | |
34903 | * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h. | |
34904 | (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy | |
34905 | is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first. | |
34906 | ||
34907 | PR middle-end/88968 | |
34908 | * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with | |
34909 | non-integral DECL_BIT_FIELD_REPRESENTATIVEs. | |
34910 | ||
34911 | PR target/87064 | |
34912 | * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar): | |
34913 | Disable for little endian. | |
34914 | ||
34915 | 2019-01-22 Richard Earnshaw <rearnsha@arm.com> | |
34916 | ||
34917 | PR target/88469 | |
34918 | * config/arm/arm.c (arm_needs_double_word_align): Check | |
34919 | DECL_BIT_FIELD_TYPE. | |
34920 | ||
34921 | 2019-01-22 Hongtao Liu <hongtao.liu@intel.com> | |
34922 | H.J. Lu <hongjiu.lu@intel.com> | |
34923 | ||
34924 | PR target/88909 | |
34925 | * config/i386/i386-builtin.def: Add mask2 to all builtin | |
34926 | initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and | |
34927 | SPECIAL_ARGS. | |
34928 | * config/i386/i386.c (BDESC): Add mask2 to the definition. | |
34929 | (BDESC_FIRST): Likewise. | |
34930 | (define_builtin): Add an argument for mask2. Updated to handle | |
34931 | both ix86_isa_flags and ix86_isa_flags2. | |
34932 | (define_builtin_const): Likewise. | |
34933 | (define_builtin_pure): Likewise. | |
34934 | (define_builtin2): Deleted. | |
34935 | (define_builtin_const2): Likewise. | |
34936 | (builtin_description): Add a member, mask2. | |
34937 | (bdesc_*): Add mask2 to builtin initializations. | |
34938 | (ix86_init_mmx_sse_builtins): Update calls to def_builtin, | |
34939 | def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2 | |
34940 | support. | |
34941 | (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support. | |
34942 | ||
34943 | 2019-01-22 H.J. Lu <hongjiu.lu@intel.com> | |
34944 | ||
34945 | PR target/88954 | |
34946 | * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check | |
34947 | noplt attribute. | |
34948 | ||
34949 | 2019-01-22 Richard Earnshaw <rearnsha@arm.com> | |
34950 | ||
34951 | PR target/88469 | |
34952 | * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's | |
34953 | alignment is dominated by a bitfield with 64-bit aligned base type. | |
34954 | (arm_function_arg): Emit a warning if the alignment has changed since | |
34955 | earlier GCC releases. | |
34956 | (arm_function_arg_boundary): Likewise. | |
34957 | (arm_setup_incoming_varargs): Likewise. | |
34958 | ||
34959 | 2019-01-22 Richard Biener <rguenther@suse.de> | |
34960 | ||
34961 | PR tree-optimization/88862 | |
34962 | * graphite-scop-detection.c | |
34963 | (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR. | |
34964 | ||
34965 | 2019-01-22 Andrew Stubbs <ams@codesourcery.com> | |
34966 | ||
34967 | * doc/extend.tex (AMD GCN Function Attributes): New section. | |
34968 | * doc/install.texi (amdgcn-unknown-amdhsa): New instructions. | |
34969 | * doc/invoke.texi (AMD GCN Options): New section. | |
34970 | * doc/md.texi (Constraints for Particular Machines): Add AMD GCN. | |
34971 | ||
34972 | 2019-01-22 Eric Botcazou <ebotcazou@adacore.com> | |
34973 | ||
34974 | * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT | |
34975 | register and decoded HIGH/LO_SUM combinations for labels in PIC mode. | |
34976 | ||
34977 | 2019-01-22 Jakub Jelinek <jakub@redhat.com> | |
34978 | ||
34979 | PR tree-optimization/88044 | |
34980 | * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition | |
34981 | is false in the first iteration, but !every_iteration, return false | |
34982 | instead of true with niter->niter zero. | |
34983 | ||
34984 | PR rtl-optimization/88904 | |
34985 | * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention | |
34986 | any nonequal registers before processing BB_END (b). | |
34987 | ||
34988 | PR target/88905 | |
34989 | * optabs.c (add_equal_note): Add op0_mode argument, use it instead of | |
34990 | GET_MODE (op0). | |
34991 | (expand_binop_directly, expand_doubleword_clz, | |
34992 | expand_doubleword_popcount, expand_ctz, expand_ffs, | |
34993 | expand_unop_direct, maybe_emit_unop_insn): Adjust callers. | |
34994 | ||
34995 | PR rtl-optimization/49429 | |
34996 | PR target/49454 | |
34997 | PR rtl-optimization/86334 | |
34998 | PR target/88906 | |
34999 | * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs | |
35000 | addressable from here... | |
35001 | (emit_block_op_via_libcall): ... to here. | |
35002 | ||
35003 | 2019-01-22 Richard Biener <rguenther@suse.de> | |
35004 | ||
35005 | * tree-vect-loop.c (vect_analyze_loop_operations): Use | |
35006 | auto_vec for cost vector to fix memleak. | |
35007 | (vectorize_fold_left_reduction): Properly gather SLP defs. | |
35008 | (vectorizable_comparison): Do not swap operands to properly | |
35009 | gather SLP defs. | |
35010 | ||
35011 | 2019-01-22 Alan Modra <amodra@gmail.com> | |
35012 | ||
35013 | PR target/88614 | |
35014 | * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg | |
35015 | stays a reg. Allow a const_int. | |
35016 | * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare. | |
35017 | * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define. | |
35018 | (IS_NOMARK_TLSGETADDR): Define. | |
35019 | * config/rs6000/rs6000.c (edit_tls_call_insn): Delete. | |
35020 | (rs6000_output_tlsargs): New function. | |
35021 | (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS | |
35022 | __tls_get_addr call takes an arg. | |
35023 | (rs6000_call_sysv): Generate sysv4 secure plt call pattern here.. | |
35024 | * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here, | |
35025 | delete split.. | |
35026 | (call_value_nonlocal_sysv): ..or here, delete split. | |
35027 | (tls_gdld_nomark): Delete. | |
35028 | (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2 | |
35029 | predicate. Call rs6000_output_tlsargs. Adjust length to suit. | |
35030 | (call_value_nonlocal_sysv): Likewise. | |
35031 | (call_value_nonlocal_sysv_secure): Likewise. | |
35032 | (call_value_nonlocal_aix): Likewise. | |
35033 | (call_value_indirect_aix): Likewise. | |
35034 | (call_value_indirect_elfv2): Likewise. | |
35035 | (call_value_local32, call_value_local64): Disable for no-mark tls. | |
35036 | (call_value_local_aix): Likewise. | |
35037 | ||
35038 | 2019-01-21 Uroš Bizjak <ubizjak@gmail.com> | |
35039 | ||
35040 | PR target/88938 | |
35041 | * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32, | |
35042 | case IX86_BUILTIN_BEXTRI64]: Sanitize operands. | |
35043 | ||
35044 | 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com> | |
35045 | ||
35046 | * hash-map-tests.c (test_map_of_strings_to_int): Show how to use | |
35047 | string contents as hash_map keys. | |
35048 | ||
35049 | 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de> | |
35050 | ||
35051 | PR c/88928 | |
35052 | * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter | |
35053 | for rvalue context. Handle rvalues correctly. Use min_align_of_type | |
35054 | instead of TYPE_ALIGN. | |
35055 | (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly. | |
35056 | Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL | |
35057 | pointer from TYPE_STUB_DECL. | |
35058 | ||
35059 | 2019-01-21 Richard Biener <rguenther@suse.de> | |
35060 | ||
35061 | PR tree-optimization/88934 | |
35062 | * tree-vect-slp.c (vect_mask_constant_operand_p): Always look | |
35063 | at the possibly non-constant operand. | |
35064 | (vect_get_constant_vectors): Adjust. | |
35065 | ||
35066 | 2019-01-21 H.J. Lu <hongjiu.lu@intel.com> | |
35067 | ||
35068 | PR target/71659 | |
35069 | * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED. | |
35070 | * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED | |
35071 | instead of _X86INTRIN_H_INCLUDED. | |
35072 | * onfig/i386/clwbintrin.h: Likewise. | |
35073 | * config/i386/pkuintrin.h: Likewise. | |
35074 | * config/i386/prfchwintrin.h: Likewise. | |
35075 | * config/i386/rdseedintrin.h: Likewise. | |
35076 | * config/i386/wbnoinvdintrin.h: Likewise. | |
35077 | * config/i386/xsavecintrin.h: Likewise. | |
35078 | * config/i386/xsavesintrin.h: Likewise. | |
35079 | * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check. | |
35080 | * config/i386/xsaveintrin.h: Likewise. | |
35081 | * config/i386/xsaveoptintrin.h: Likewise. | |
35082 | * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>, | |
35083 | <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>, | |
35084 | <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>, | |
35085 | <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>, | |
35086 | <wbnoinvdintrin.h> and <pkuintrin.h> to ... | |
35087 | * config/i386/immintrin.h: Here. | |
35088 | ||
35089 | 2019-01-20 Martin Jambor <mjambor@suse.cz> | |
35090 | ||
35091 | PR ipa/87615 | |
35092 | * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked | |
35093 | with aa_walk_budget. | |
35094 | * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add | |
35095 | aa_walk_budget_p parameter. | |
35096 | * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA | |
35097 | walk. Updated all callers. | |
35098 | (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1. | |
35099 | (eliminated_by_inlining_prob): New parameter fbi, pass it on to | |
35100 | unmodified_parm. | |
35101 | (will_be_nonconstant_expr_predicate): New parameter fbi, removed | |
35102 | parameter info. Extract info from fbi. Pass fbi to recursive calls | |
35103 | and to unmodified_parm. | |
35104 | (phi_result_unknown_predicate): New parameter fbi, removed parameter | |
35105 | info, updated call to will_be_nonconstant_expr_predicate. | |
35106 | (param_change_prob): New parameter fbi, limit AA walking. | |
35107 | (analyze_function_body): Initialize aa_walk_budget in fbi. Update | |
35108 | calls to various above functions. | |
35109 | * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p | |
35110 | parameter. Use it to limit AA walking. | |
35111 | * ipa-prop.c (detect_type_change_from_memory_writes): New parameter | |
35112 | fbi, limit AA walk. | |
35113 | (detect_type_change): New parameter fbi, pass it on to | |
35114 | detect_type_change_from_memory_writes. | |
35115 | (detect_type_change_ssa): Likewise. | |
35116 | (aa_overwalked): Removed. | |
35117 | (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line | |
35118 | accordingly, adjust to the neew AA limiting scheme. | |
35119 | (parm_ref_data_preserved_p): Likewise. | |
35120 | (ipa_compute_jump_functions_for_edge): Adjust call to | |
35121 | get_dynamic_type. | |
35122 | (ipa_analyze_call_uses): Likewise. | |
35123 | (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa. | |
35124 | (ipa_analyze_node): Initialize aa_walk_budget. | |
35125 | (ipcp_transform_function): Likewise. | |
35126 | * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call | |
35127 | to get_dynamic_type. | |
35128 | ||
35129 | 2019-01-19 Jakub Jelinek <jakub@redhat.com> | |
35130 | ||
35131 | * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move | |
35132 | outside of #if CHECKING_P code. | |
35133 | ||
35134 | 2019-01-19 Richard Sandiford <richard.sandiford@arm.com> | |
35135 | ||
35136 | * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood): | |
35137 | New function, split out from... | |
35138 | (loop_versioning::analyze_stride): ...here. | |
35139 | (loop_versioning::find_per_loop_multiplication): Use gassign. | |
35140 | (loop_versioning::analyze_term_using_scevs): Return a success code. | |
35141 | (loop_versioning::analyze_arbitrary_term): New function. | |
35142 | (loop_versioning::analyze_address_fragment): Use | |
35143 | analyze_arbitrary_term if all else fails. | |
35144 | ||
35145 | 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org> | |
35146 | ||
35147 | PR target/88892 | |
35148 | * config/rs6000/rs6000.md (*movsi_from_df): Allow only register | |
35149 | operands. | |
35150 | ||
35151 | 2019-01-18 Richard Biener <rguenther@suse.de> | |
35152 | ||
35153 | PR tree-optimization/88903 | |
35154 | * tree-vect-stmts.c (vectorizable_shift): Verify we see all | |
35155 | scalar stmts a SLP shift amount is composed of when detecting | |
35156 | shifts by scalars. | |
35157 | ||
35158 | 2019-01-18 Richard Earnshaw <rearnsha@arm.com> | |
35159 | ||
35160 | PR target/88799 | |
35161 | * config/arm/arm-cpus.in (mp): New feature. | |
35162 | (sec): New feature. | |
35163 | (fgroup ARMv7ve): Add mp and sec features. | |
35164 | (arch armv7-a): Add options to allow mp and sec extensions. | |
35165 | (cpu generic-armv7-a): Add options to allow mp and sec extensions. | |
35166 | (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec | |
35167 | extenstions to the base architecture. | |
35168 | (cpu cortex-a8): Add sec extension to the base architecture. | |
35169 | (cpu marvell-pj4): Add mp and sec extensions to the base architecture. | |
35170 | * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch | |
35171 | variants down to the base v7-a varaint. | |
35172 | * config/arm/t-multilib (v7_a_arch_variants): New variable. | |
35173 | * doc/invoke.texi (ARM Options): Add +mp and +sec to the list | |
35174 | of permitted extensions for -march=armv7-a and for | |
35175 | -mcpu=generic-armv7-a. | |
35176 | ||
35177 | 2019-01-18 Martin Liska <mliska@suse.cz> | |
35178 | ||
35179 | * params.def: Fix comment. | |
35180 | * tree-profile.c (gimple_init_gcov_profiler): Bump function | |
35181 | name. | |
35182 | (gimple_gen_ic_func_profiler): Likewise. | |
35183 | ||
35184 | 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
35185 | ||
35186 | * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New | |
35187 | * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle | |
35188 | and put in error checks for stack protector guard options. | |
35189 | (aarch64_stack_protect_guard): New. | |
35190 | (TARGET_STACK_PROTECT_GUARD): Define. | |
35191 | * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New. | |
35192 | (reg_stack_protect_address<mode>): New. | |
35193 | (stack_protect_set): Adjust for SSP_GLOBAL. | |
35194 | (stack_protect_test): Likewise. | |
35195 | * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New. | |
35196 | (-mstack-protector-guard): Likewise. | |
35197 | (-mstack-protector-guard-offset): Likewise. | |
35198 | ||
35199 | 2019-01-18 Jakub Jelinek <jakub@redhat.com> | |
35200 | ||
35201 | PR tree-optimization/86214 | |
35202 | * tree-inline.h (struct copy_body_data): Add | |
35203 | add_clobbers_to_eh_landing_pads member. | |
35204 | * tree-inline.c (add_clobbers_to_eh_landing_pad): New function. | |
35205 | (copy_edges_for_bb): Call it if EH edge destination is < | |
35206 | id->add_clobbers_to_eh_landing_pads. Fix a comment typo. | |
35207 | (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads | |
35208 | if flag_stack_reuse != SR_NONE and clear it afterwards. | |
35209 | ||
35210 | 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org> | |
35211 | ||
35212 | PR target/85596 | |
35213 | * doc/install.texi (with-multilib-list): Document for aarch64. | |
35214 | ||
35215 | 2019-01-18 Jakub Jelinek <jakub@redhat.com> | |
35216 | ||
35217 | PR target/88734 | |
35218 | * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace | |
35219 | (("..."))) with ("..."). | |
35220 | ||
35221 | 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de> | |
35222 | ||
35223 | * doc/extend.texi (Built-in Functions for Memory Model Aware | |
35224 | Atomic Operations): Document atomic fetch and nand. | |
35225 | ||
35226 | 2019-01-18 Martin Liska <mliska@suse.cz> | |
35227 | Richard Biener <rguenther@suse.de> | |
35228 | ||
35229 | PR middle-end/88587 | |
35230 | * cgraph.h (create_version_clone_with_body): Add new argument | |
35231 | with attributes. | |
35232 | * cgraphclones.c (cgraph_node::create_version_clone): Add | |
35233 | DECL_ATTRIBUTES to a newly created decl. And call | |
35234 | valid_attribute_p so that proper cl_target_optimization_node | |
35235 | is set for the newly created declaration. | |
35236 | * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES | |
35237 | for declaration. | |
35238 | (expand_target_clones): Do not call valid_attribute_p, it must | |
35239 | be already done. | |
35240 | * tree-inline.c (copy_decl_for_dup_finish): Reset mode for | |
35241 | vector types. | |
35242 | ||
35243 | 2019-01-17 Jakub Jelinek <jakub@redhat.com> | |
35244 | ||
35245 | PR target/88734 | |
35246 | * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace | |
35247 | (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of | |
35248 | arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics. | |
35249 | ||
35250 | 2019-01-17 Martin Sebor <msebor@redhat.com> | |
35251 | ||
35252 | PR middle-end/88273 | |
35253 | * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range): | |
35254 | Handle anti-ranges the same as no range at all. | |
35255 | ||
35256 | 2018-01-17 Steve Ellcey <sellcey@cavium.com> | |
35257 | ||
35258 | * config/aarch64/aarch64.c (cgraph.h): New include. | |
35259 | (intl.h): New include. | |
35260 | (supported_simd_type): New function. | |
35261 | (currently_supported_simd_type): Ditto. | |
35262 | (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto. | |
35263 | (aarch64_simd_clone_adjust): Ditto. | |
35264 | (aarch64_simd_clone_usable): Ditto. | |
35265 | (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro. | |
35266 | (TARGET_SIMD_CLONE_ADJUST): Ditto. | |
35267 | (TARGET_SIMD_CLONE_USABLE): Ditto. | |
35268 | * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check. | |
35269 | * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust | |
35270 | call. | |
35271 | ||
35272 | 2019-01-17 Martin Sebor <msebor@redhat.com> | |
35273 | ||
35274 | PR tree-optimization/88800 | |
35275 | * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking | |
35276 | NO_WARNING bit here. Avoid folding out-of-bounds calls. | |
35277 | * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove | |
35278 | redundant argument. Add new argument and issue diagnostics under | |
35279 | its control. Detect out-of-bounds access even with warnings | |
35280 | disabled. | |
35281 | (check_bounds_or_overlap): Change return type. Add argument. | |
35282 | (wrestrict_dom_walker::check_call): Adjust. | |
35283 | * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument. | |
35284 | * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in | |
35285 | check_bounds_or_overlap's return value. | |
35286 | (handle_builtin_stxncpy): Same. | |
35287 | (handle_builtin_strcat): Same. | |
35288 | ||
35289 | 2019-01-17 Andrew Stubbs <ams@codesourcery.com> | |
35290 | Kwok Cheung Yeung <kcy@codesourcery.com> | |
35291 | Julian Brown <julian@codesourcery.com> | |
35292 | Tom de Vries <tom@codesourcery.com> | |
35293 | ||
35294 | * doc/sourcebuild.texi: Document dg-add-options sqrt_insn. | |
35295 | ||
35296 | 2019-01-17 Andrew Stubbs <ams@codesourcery.com> | |
35297 | ||
35298 | * doc/sourcebuild.texi: Document dg-require-effective-target | |
35299 | llvm_binutils and offload_gcn. | |
35300 | ||
35301 | 2019-01-17 Andrew Stubbs <ams@codesourcery.com> | |
35302 | Kwok Cheung Yeung <kcy@codesourcery.com> | |
35303 | Julian Brown <julian@codesourcery.com> | |
35304 | Tom de Vries <tom@codesourcery.com> | |
35305 | ||
35306 | * doc/sourcebuild.texi: Document dg-required-effective-target | |
35307 | exceptions. | |
35308 | ||
35309 | 2019-01-17 Andrew Stubbs <ams@codesourcery.com> | |
35310 | Kwok Cheung Yeung <kcy@codesourcery.com> | |
35311 | Julian Brown <julian@codesourcery.com> | |
35312 | Tom de Vries <tom@codesourcery.com> | |
35313 | Jan Hubicka <hubicka@ucw.cz> | |
35314 | Martin Jambor <mjambor@suse.cz> | |
35315 | ||
35316 | * config.gcc: Add amdgcn*-*-amdhsa configuration. | |
35317 | * configure.ac: Check for dlopen. | |
35318 | * configure: Regenerate. | |
35319 | ||
35320 | 2019-01-17 Andrew Stubbs <ams@codesourcery.com> | |
35321 | Kwok Cheung Yeung <kcy@codesourcery.com> | |
35322 | Julian Brown <julian@codesourcery.com> | |
35323 | Tom de Vries <tom@codesourcery.com> | |
35324 | Jan Hubicka <hubicka@ucw.cz> | |
35325 | Martin Jambor <mjambor@suse.cz> | |
35326 | ||
35327 | * common/config/gcn/gcn-common.c: New file. | |
35328 | * config/gcn/driver-gcn.c: New file. | |
35329 | * config/gcn/gcn-builtins.def: New file. | |
35330 | * config/gcn/gcn-hsa.h: New file. | |
35331 | * config/gcn/gcn-modes.def: New file. | |
35332 | * config/gcn/gcn-opts.h: New file. | |
35333 | * config/gcn/gcn-passes.def: New file. | |
35334 | * config/gcn/gcn-protos.h: New file. | |
35335 | * config/gcn/gcn-run.c: New file. | |
35336 | * config/gcn/gcn-tree.c: New file. | |
35337 | * config/gcn/gcn.c: New file. | |
35338 | * config/gcn/gcn.h: New file. | |
35339 | * config/gcn/gcn.opt: New file. | |
35340 | * config/gcn/t-gcn-hsa: New file. | |
35341 | ||
35342 | 2019-01-17 Andrew Stubbs <ams@codesourcery.com> | |
35343 | Kwok Cheung Yeung <kcy@codesourcery.com> | |
35344 | Julian Brown <julian@codesourcery.com> | |
35345 | Tom de Vries <tom@codesourcery.com> | |
35346 | Jan Hubicka <hubicka@ucw.cz> | |
35347 | Martin Jambor <mjambor@suse.cz> | |
35348 | ||
35349 | * config/gcn/constraints.md: New file. | |
35350 | * config/gcn/gcn-valu.md: New file. | |
35351 | * config/gcn/gcn.md: New file. | |
35352 | * config/gcn/predicates.md: New file. | |
35353 | ||
35354 | 2019-01-17 Eric Botcazou <ebotcazou@adacore.com> | |
35355 | ||
35356 | * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace | |
35357 | flag_non_call_exceptions with cfun->can_throw_non_call_exceptions. | |
35358 | (stmt_uses_0_or_null_in_undefined_way): Likewise. | |
35359 | * tree-ssa-alias.c (same_addr_size_stores_p): Likewise. | |
35360 | ||
35361 | 2019-01-17 Tamar Christina <tamar.christina@arm.com> | |
35362 | ||
35363 | PR target/88851 | |
35364 | * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New. | |
35365 | * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use | |
35366 | it and document registers. | |
35367 | ||
35368 | 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com> | |
35369 | ||
35370 | * config/aarch64/aarch64.c (ares_tunings): Define. | |
35371 | * config/aarch64/aarch64-cores.def (ares): Use the above. | |
35372 | ||
35373 | 2019-01-17 Wei Xiao <wei3.xiao@intel.com> | |
35374 | ||
35375 | PR target/88794 | |
35376 | Revert: | |
35377 | 2018-11-06 Wei Xiao <wei3.xiao@intel.com> | |
35378 | ||
35379 | * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics. | |
35380 | (_mm512_fixupimm_round_pd): Update parameters and builtin. | |
35381 | (_mm512_maskz_fixupimm_round_pd): Ditto. | |
35382 | (_mm512_fixupimm_round_ps): Ditto. | |
35383 | (_mm512_maskz_fixupimm_round_ps): Ditto. | |
35384 | (_mm_fixupimm_round_sd): Ditto. | |
35385 | (_mm_maskz_fixupimm_round_sd): Ditto. | |
35386 | (_mm_fixupimm_round_ss): Ditto. | |
35387 | (_mm_maskz_fixupimm_round_ss): Ditto. | |
35388 | (_mm512_fixupimm_pd): Ditto. | |
35389 | (_mm512_maskz_fixupimm_pd): Ditto. | |
35390 | (_mm512_fixupimm_ps): Ditto. | |
35391 | (_mm512_maskz_fixupimm_ps): Ditto. | |
35392 | (_mm_fixupimm_sd): Ditto. | |
35393 | (_mm_maskz_fixupimm_sd): Ditto. | |
35394 | (_mm_fixupimm_ss): Ditto. | |
35395 | (_mm_maskz_fixupimm_ss): Ditto. | |
35396 | (_mm512_mask_fixupimm_round_pd): Update builtin. | |
35397 | (_mm512_mask_fixupimm_round_ps): Ditto. | |
35398 | (_mm_mask_fixupimm_round_sd): Ditto. | |
35399 | (_mm_mask_fixupimm_round_ss): Ditto. | |
35400 | (_mm512_mask_fixupimm_pd): Ditto. | |
35401 | (_mm512_mask_fixupimm_ps): Ditto. | |
35402 | (_mm_mask_fixupimm_sd): Ditto. | |
35403 | (_mm_mask_fixupimm_ss): Ditto. | |
35404 | * config/i386/avx512vlintrin.h: | |
35405 | (_mm256_fixupimm_pd): Update parameters and builtin. | |
35406 | (_mm256_maskz_fixupimm_pd): Ditto. | |
35407 | (_mm256_fixupimm_ps): Ditto. | |
35408 | (_mm256_maskz_fixupimm_ps): Ditto. | |
35409 | (_mm_fixupimm_pd): Ditto. | |
35410 | (_mm_maskz_fixupimm_pd): Ditto. | |
35411 | (_mm_fixupimm_ps): Ditto. | |
35412 | (_mm_maskz_fixupimm_ps): Ditto. | |
35413 | (_mm256_mask_fixupimm_pd): Update builtin. | |
35414 | (_mm256_mask_fixupimm_ps): Ditto. | |
35415 | (_mm_mask_fixupimm_pd): Ditto. | |
35416 | (_mm_mask_fixupimm_ps): Ditto. | |
35417 | * config/i386/i386-builtin-types.def: Add new types and remove | |
35418 | useless ones. | |
35419 | * config/i386/i386-builtin.def: Update builtin definitions. | |
35420 | * config/i386/i386.c: Handle new builtin types and remove useless ones. | |
35421 | * config/i386/sse.md: Update VFIXUPIMM* patterns. | |
35422 | (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. | |
35423 | (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. | |
35424 | (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update. | |
35425 | (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. | |
35426 | (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. | |
35427 | (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update. | |
35428 | * config/i386/subst.md: | |
35429 | (round_saeonly_sd_mask_operand4): Add new subst_attr. | |
35430 | (round_saeonly_sd_mask_op4): Ditto. | |
35431 | (round_saeonly_expand_operand5): Ditto. | |
35432 | (round_saeonly_expand): Update. | |
35433 | ||
35434 | 2019-01-17 Wei Xiao <wei3.xiao@intel.com> | |
35435 | ||
35436 | PR target/88794 | |
35437 | Revert: | |
35438 | 2018-11-12 Wei Xiao <wei3.xiao@intel.com> | |
35439 | ||
35440 | * config/i386/sse.md: Combine VFIXUPIMM* patterns | |
35441 | (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update. | |
35442 | (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. | |
35443 | (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove. | |
35444 | (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update. | |
35445 | (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update. | |
35446 | (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove. | |
35447 | ||
35448 | 2019-01-17 Wei Xiao <wei3.xiao@intel.com> | |
35449 | ||
35450 | PR target/88794 | |
35451 | Revert: | |
35452 | 2018-12-15 Jakub Jelinek <jakub@redhat.com> | |
35453 | ||
35454 | PR target/88489 | |
35455 | * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator. | |
35456 | (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it | |
35457 | instead of UNSPEC_FIXUPIMM. | |
35458 | ||
35459 | 2019-01-17 Richard Biener <rguenther@suse.de> | |
35460 | ||
35461 | PR lto/86736 | |
35462 | * dwarf2out.c (want_pubnames): Never generate pubnames sections | |
35463 | and friends for the LTO part of debug info. | |
35464 | ||
35465 | 2019-01-17 Jakub Jelinek <jakub@redhat.com> | |
35466 | ||
35467 | PR tree-optimization/86214 | |
35468 | * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts | |
35469 | if x == y. | |
35470 | ||
35471 | PR rtl-optimization/88870 | |
35472 | * dce.c (deletable_insn_p): Never delete const/pure calls that can | |
35473 | throw if we can't alter the cfg or delete dead exceptions. | |
35474 | (mark_insn): Don't call find_call_stack_args for such calls. | |
35475 | ||
35476 | 2019-01-17 Kewen Lin <linkw@gcc.gnu.org> | |
35477 | ||
35478 | * doc/extend.texi: Add four new prototypes for vec_ld and seven new | |
35479 | prototypes for vec_st. | |
35480 | * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries | |
35481 | for scalar address type variants of altivec_vec_ld/altivec_vec_st, | |
35482 | mainly on signed/unsigned long long and double. | |
35483 | ||
35484 | 2019-01-16 David Malcolm <dmalcolm@redhat.com> | |
35485 | ||
35486 | PR target/88861 | |
35487 | * combine.c (delete_noop_moves): Convert to "bool" return, | |
35488 | returning true if any edges are eliminated. | |
35489 | (combine_instructions): Also return true if delete_noop_moves | |
35490 | returns true. | |
35491 | ||
35492 | 2019-01-16 Tamar Christina <tamar.christina@arm.com> | |
35493 | ||
35494 | * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use | |
35495 | correct max nunits for endian swap. | |
35496 | (aarch64_expand_fcmla_builtin): Correct subreg code. | |
35497 | * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>, | |
35498 | aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct | |
35499 | lane endianness. | |
35500 | ||
35501 | 2019-01-16 Uroš Bizjak <ubizjak@gmail.com> | |
35502 | ||
35503 | * config/alpha/alpha.c (alpha_gimplify_va_arg): | |
35504 | Handle split indirect COMPLEX_TYPE arguments. | |
35505 | ||
35506 | 2019-01-16 Richard Earnshaw <rearnsha@arm.com> | |
35507 | ||
35508 | PR target/86891 | |
35509 | * config/aarch64/aarch64-modes.def: Add comment about how the carry | |
35510 | bit is set by add and compare. | |
35511 | (CC_ADC): New CC_MODE. | |
35512 | * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables | |
35513 | to cache the code and mode of X. Adjust the shape of a CC_Cmode | |
35514 | comparison. Add detection for CC_ADCmode. | |
35515 | (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add | |
35516 | CC_ADCmode. | |
35517 | * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode. | |
35518 | (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU. | |
35519 | (add<mode>3_compareC_cconly_imm): Delete. Merge into... | |
35520 | (add<mode>3_compareC_cconly): ... this. Restructure the comparison | |
35521 | to eliminate the need for zero-extending the operands. | |
35522 | (add<mode>3_compareC_imm): Delete. Merge into ... | |
35523 | (add<mode>3_compareC): ... this. Restructure the comparison to | |
35524 | eliminate the need for zero-extending the operands. | |
35525 | (add<mode>3_carryin): Use LTU for the overflow detection. | |
35526 | (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out. | |
35527 | Reexpress comparison for overflow. | |
35528 | (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC. | |
35529 | (add<mode>3_carryinC): Likewise. | |
35530 | (add<mode>3_carryinV): Use LTU for carry between partials. | |
35531 | * config/aarch64/predicates.md (aarch64_carry_operation): Update | |
35532 | handling of CC_Cmode and add CC_ADCmode. | |
35533 | (aarch64_borrow_operation): Likewise. | |
35534 | ||
35535 | 2019-01-16 Tamar Christina <tamar.christina@arm.com> | |
35536 | ||
35537 | * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): | |
35538 | Remove patternmode. | |
35539 | * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise. | |
35540 | * config/arm/neon.md (neon_vcmla_lane<rot><mode>, | |
35541 | neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): | |
35542 | Remove endianness conversion. | |
35543 | ||
35544 | 2019-01-16 Martin Liska <mliska@suse.cz> | |
35545 | ||
35546 | * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR | |
35547 | for GCC driver. | |
35548 | * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as | |
35549 | a new argument. | |
35550 | * gcc.c (add_sysrooted_hdrs_prefix): New function. | |
35551 | (path_prefix_reset): Move up in the source file. | |
35552 | (find_fortran_preinclude_file): Make complex search for the | |
35553 | fortran header files. | |
35554 | ||
35555 | 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com> | |
35556 | ||
35557 | * godump.c (go_output_typedef): When outputting a typedef, refer | |
35558 | to the underlying type by its name and not its structure. | |
35559 | ||
35560 | 2019-01-15 David Malcolm <dmalcolm@redhat.com> | |
35561 | ||
35562 | PR c++/88795 | |
35563 | * tree.c (build_function_type): Assert that arg_types is not | |
35564 | error_mark_node. | |
35565 | ||
35566 | 2019-01-15 Richard Sandiford <richard.sandiford@arm.com> | |
35567 | ||
35568 | PR inline-asm/52813 | |
35569 | * doc/extend.texi: Document that listing the stack pointer in the | |
35570 | clobber list of an asm is a deprecated feature. | |
35571 | * common.opt (Wdeprecated): Moved from c-family/c.opt. | |
35572 | * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated | |
35573 | warning instead of an error for clobbers of the stack pointer. | |
35574 | Add a note explaining why. | |
35575 | ||
35576 | 2019-01-15 Richard Biener <rguenther@suse.de> | |
35577 | ||
35578 | PR debug/88046 | |
35579 | * dwarf2out.c (gen_member_die): Do not generate inheritance | |
35580 | DIEs late. | |
35581 | ||
35582 | 2019-01-15 Richard Biener <rguenther@suse.de> | |
35583 | ||
35584 | PR tree-optimization/88855 | |
35585 | * tree-if-conv.c (combine_blocks): Collect | |
35586 | SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals. | |
35587 | ||
35588 | 2019-01-15 Tom de Vries <tdevries@suse.de> | |
35589 | ||
35590 | PR target/80547 | |
35591 | * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle | |
35592 | lhs == NULL_TREE for gang-level reduction. | |
35593 | ||
35594 | 2019-01-15 Richard Biener <rguenther@suse.de> | |
35595 | Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org> | |
35596 | ||
35597 | PR ipa/88788 | |
35598 | * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and | |
35599 | return true if SSA_NAME is already marked in visited bitmap. | |
35600 | (malloc_candidate_p): Pass visited to malloc_candidate_p_1. | |
35601 | ||
35602 | 2019-01-15 Jakub Jelinek <jakub@redhat.com> | |
35603 | ||
35604 | PR tree-optimization/88775 | |
35605 | * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize | |
35606 | equal == 0 equality pointer comparisons some more if compared in | |
35607 | integral types and either one points to an automatic var and the | |
35608 | other to a global, or we can prove at least one points to the middle | |
35609 | or both point to start or both point to end. | |
35610 | ||
35611 | 2019-01-14 Andi Kleen <ak@linux.intel.com> | |
35612 | ||
35613 | * Makefile.in: Lower autofdo sampling rate by 10x. | |
35614 | * Makefile.tpl: Dito. | |
35615 | ||
35616 | 2019-01-14 Tom Honermann <tom@honermann.net> | |
35617 | ||
35618 | * defaults.h: Define CHAR8_TYPE. | |
35619 | ||
35620 | 2019-01-14 Martin Sebor <msebor@redhat.com> | |
35621 | ||
35622 | PR target/88638 | |
35623 | * doc/extend.texi (Darwin Format Checks): Clarify. | |
35624 | ||
35625 | 2019-01-14 Richard Biener <rguenther@suse.de> | |
35626 | ||
35627 | * genmatch.c (dt_simplify::gen_1): Change dumping dependent on | |
35628 | whether we are in (simplify ...) or (match ...) context. | |
35629 | ||
35630 | 2019-01-14 Jakub Jelinek <jakub@redhat.com> | |
35631 | ||
35632 | PR rtl-optimization/88796 | |
35633 | * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field. | |
35634 | * cfgexpand.c (stack_protect_prologue): Initialize | |
35635 | crtl->stack_protect_guard_decl. | |
35636 | * function.c (stack_protect_epilogue): Use it instead of calling | |
35637 | targetm.stack_protect_guard again. | |
35638 | * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from | |
35639 | MEMs with MEM_EXPR equal to crtl->stack_protect_guard or | |
35640 | crtl->stack_protect_guard_decl. | |
35641 | * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE | |
35642 | on the returned MEM_EXPR. | |
35643 | ||
35644 | 2019-01-12 Tom de Vries <tdevries@suse.de> | |
35645 | ||
35646 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting | |
35647 | vector length using -fopenacc-dim. | |
35648 | ||
35649 | 2019-01-12 Tom de Vries <tdevries@suse.de> | |
35650 | ||
35651 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector | |
35652 | lengths into account. | |
35653 | ||
35654 | 2019-01-12 Svante Signell <svante.signell@gmail.com> | |
35655 | ||
35656 | * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define. | |
35657 | (TARGET_CAN_SPLIT_STACK): Define. | |
35658 | (TARGET_THREAD_SPLIT_STACK_OFFSET): Define. | |
35659 | ||
35660 | 2019-01-05 Jan Hubicka <hubicka@ucw.cz> | |
35661 | ||
35662 | * params.def (inline-unit-growth): Set to 40. | |
35663 | ||
35664 | 2019-01-12 Jakub Jelinek <jakub@redhat.com> | |
35665 | ||
35666 | * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo. | |
35667 | ||
35668 | 2019-01-12 Tom de Vries <tdevries@suse.de> | |
35669 | ||
35670 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading | |
35671 | region calling vector-partitionable routine, set default_vector_length | |
35672 | to WARP_SIZE. | |
35673 | ||
35674 | 2019-01-12 Tom de Vries <tdevries@suse.de> | |
35675 | ||
35676 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new | |
35677 | variable default_vector_length. | |
35678 | ||
35679 | 2019-01-12 Tom de Vries <tdevries@suse.de> | |
35680 | ||
35681 | PR middle-end/88703 | |
35682 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults | |
35683 | from oacc_default_dims, as oacc_validate_dims would do it, and apply | |
35684 | dimensions limits. | |
35685 | ||
35686 | 2019-01-12 Tom de Vries <tdevries@suse.de> | |
35687 | ||
35688 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1) | |
35689 | (nvptx_goacc_validate_dims): Add used parameter. | |
35690 | * doc/tm.texi: Regenerate. | |
35691 | * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add | |
35692 | argument to call to targetm.goacc.validate_dims. | |
35693 | (default_goacc_validate_dims): Add used | |
35694 | parameter. | |
35695 | * target.def (validate_dims): Add used parameter in DEFHOOK. | |
35696 | * targhooks.h (default_goacc_validate_dims): Add used parameter. | |
35697 | ||
35698 | 2019-01-11 Jakub Jelinek <jakub@redhat.com> | |
35699 | ||
35700 | PR middle-end/85956 | |
35701 | PR lto/88733 | |
35702 | * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds | |
35703 | field. | |
35704 | * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of | |
35705 | ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with | |
35706 | a dummy "omp dummy var" variable if id->adjust_array_error_bounds. | |
35707 | * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds. | |
35708 | ||
35709 | 2019-01-11 Vladimir Makarov <vmakarov@redhat.com> | |
35710 | ||
35711 | PR rtl-optimization/87305 | |
35712 | * lra-assigns.c | |
35713 | (setup_live_pseudos_and_spill_after_risky_transforms): Add code | |
35714 | for little endian pseudos used as paradoxical subreg. | |
35715 | ||
35716 | 2019-01-11 Jakub Jelinek <jakub@redhat.com> | |
35717 | ||
35718 | PR tree-optimization/88693 | |
35719 | * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p | |
35720 | for STRING_CSTs that don't contain any NUL characters in the first | |
35721 | TREE_STRING_LENGTH bytes. | |
35722 | ||
35723 | 2019-01-11 Alan Modra <amodra@gmail.com> | |
35724 | ||
35725 | PR 88777 | |
35726 | PR 88614 | |
35727 | * genattrtab.c (min_fn): Don't translate values. | |
35728 | (min_attr_value): Return INT_MAX when the value can't be calculated. | |
35729 | Return minimum among any values that can be calculated. | |
35730 | (max_attr_value): Adjust. | |
35731 | ||
35732 | 2019-01-11 Jakub Jelinek <jakub@redhat.com> | |
35733 | ||
35734 | * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H). | |
35735 | ||
35736 | 2019-01-11 Steve Ellcey <sellcey@marvell.com> | |
35737 | ||
35738 | * config/aarch64/aarch64.c (aarch64_simd_call_p): New function. | |
35739 | (aarch64_hard_regno_call_part_clobbered): Add insn argument. | |
35740 | (aarch64_return_call_with_max_clobbers): New function. | |
35741 | (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro. | |
35742 | * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn | |
35743 | argument. | |
35744 | * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto. | |
35745 | * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto. | |
35746 | * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto. | |
35747 | * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto. | |
35748 | * cselib.c (cselib_process_insn): Add argument to | |
35749 | targetm.hard_regno_call_part_clobbered call. | |
35750 | * ira-conflicts.c (ira_build_conflicts): Ditto. | |
35751 | * ira-costs.c (ira_tune_allocno_costs): Ditto. | |
35752 | * lra-constraints.c (inherit_reload_reg): Ditto. | |
35753 | * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field. | |
35754 | * lra-lives.c (check_pseudos_live_through_calls): Add call_insn | |
35755 | argument. Call targetm.return_call_with_max_clobbers. | |
35756 | Add argument to targetm.hard_regno_call_part_clobbered call. | |
35757 | (calls_have_same_clobbers_p): New function. | |
35758 | (process_bb_lives): Add call_insn and last_call_insn variables. | |
35759 | Pass call_insn to check_pseudos_live_through_calls. | |
35760 | Modify if stmt to check targetm.return_call_with_max_clobbers. | |
35761 | Update setting of flush variable. | |
35762 | (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p | |
35763 | to false. | |
35764 | * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL. | |
35765 | * regcprop.c (copyprop_hardreg_forward_1): Add argument to | |
35766 | targetm.hard_regno_call_part_clobbered call. | |
35767 | * reginfo.c (choose_hard_reg_mode): Ditto. | |
35768 | * regrename.c (check_new_reg_p): Ditto. | |
35769 | * reload.c (find_equiv_reg): Ditto. | |
35770 | * reload1.c (emit_reload_insns): Ditto. | |
35771 | * sched-deps.c (deps_analyze_insn): Ditto. | |
35772 | * sel-sched.c (init_regs_for_mode): Ditto. | |
35773 | (mark_unavailable_hard_regs): Ditto. | |
35774 | * targhooks.c (default_dwarf_frame_reg_mode): Ditto. | |
35775 | * target.def (hard_regno_call_part_clobbered): Add insn argument. | |
35776 | (return_call_with_max_clobbers): New target function. | |
35777 | * doc/tm.texi: Regenerate. | |
35778 | * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook. | |
35779 | * hooks.c (hook_bool_uint_mode_false): Change to | |
35780 | hook_bool_insn_uint_mode_false. | |
35781 | * hooks.h (hook_bool_uint_mode_false): Ditto. | |
35782 | ||
35783 | 2019-01-11 Steve Ellcey <sellcey@marvell.com> | |
35784 | ||
35785 | * config/aarch64/aarch64.c (aarch64_simd_call_p): New function. | |
35786 | (aarch64_remove_extra_call_preserved_regs): New function. | |
35787 | (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro. | |
35788 | * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook. | |
35789 | * doc/tm.texi: Regenerate. | |
35790 | * final.c (get_call_reg_set_usage): Call new hook. | |
35791 | * target.def (remove_extra_call_preserved_regs): New hook. | |
35792 | * targhooks.c (default_remove_extra_call_preserved_regs): New function. | |
35793 | * targhooks.h (default_remove_extra_call_preserved_regs): New function. | |
35794 | ||
35795 | 2019-01-11 Jakub Jelinek <jakub@redhat.com> | |
35796 | ||
35797 | PR bootstrap/88714 | |
35798 | * passes.c (finish_optimization_passes): Call print_combine_total_stats | |
35799 | inside of pass_combine_1 dump rather than pass_profile_1. | |
35800 | ||
35801 | 2019-01-11 Tom de Vries <tdevries@suse.de> | |
35802 | ||
35803 | * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER) | |
35804 | (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER) | |
35805 | (PTX_NUM_PER_WORKER_BARRIERS): Define. | |
35806 | (nvptx_apply_dim_limits): Prevent vector_length 64 and | |
35807 | num_workers 16. | |
35808 | ||
35809 | 2019-01-11 Tom de Vries <tdevries@suse.de> | |
35810 | ||
35811 | * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up. | |
35812 | ||
35813 | 2019-01-11 Jan Beulich <jbeulich@suse.com> | |
35814 | ||
35815 | * config/i386/i386.md (rex64suffix): Add L suffix for SI. | |
35816 | * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>, | |
35817 | sse2_cvtsi2sd): Add {l}. | |
35818 | (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T | |
35819 | syntax. | |
35820 | ||
35821 | 2019-01-10 Jakub Jelinek <jakub@redhat.com> | |
35822 | ||
35823 | PR target/88785 | |
35824 | * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into | |
35825 | define_expand. | |
35826 | (*float<floatunssuffix>v2div2sf2): New define_insn. | |
35827 | (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand. | |
35828 | (*float<floatunssuffix>v2div2sf2_mask): New define_insn. | |
35829 | (*float<floatunssuffix>v2div2sf2_mask_1): Replace | |
35830 | subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with | |
35831 | match_operands with "const0_operand" "C". | |
35832 | ||
35833 | 2019-01-10 Tamar Christina <tamar.christina@arm.com> | |
35834 | ||
35835 | * config/aarch64/aarch64-builtins.c | |
35836 | (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins... | |
35837 | (aarch64_init_simd_builtins): ...Here | |
35838 | ||
35839 | 2019-01-10 Vladimir Makarov <vmakarov@redhat.com> | |
35840 | ||
35841 | PR rtl-optimization/87305 | |
35842 | * lra-assigns.c | |
35843 | (setup_live_pseudos_and_spill_after_risky_transforms): Check | |
35844 | allocation for big endian pseudos used as paradoxical subregs and | |
35845 | spill them if it is wrong. | |
35846 | * lra-constraints.c (lra_constraints): Add a comment. | |
35847 | ||
35848 | 2019-01-10 Richard Biener <rguenther@suse.de> | |
35849 | ||
35850 | PR tree-optimization/88792 | |
35851 | * tree-ssa-pre.c (get_representative_for): Do not return a | |
35852 | value-number here. | |
35853 | ||
35854 | 2019-01-10 Jakub Jelinek <jakub@redhat.com> | |
35855 | ||
35856 | PR middle-end/84877 | |
35857 | PR bootstrap/88450 | |
35858 | * function.c (assign_stack_local_1): Revert the 2018-11-21 changes. | |
35859 | (assign_parm_setup_block): Do the argument slot realignment here | |
35860 | instead. | |
35861 | ||
35862 | 2019-01-10 Stefan Agner <stefan@agner.ch> | |
35863 | ||
35864 | PR target/88648 | |
35865 | * config/arm/arm.c (arm_option_override_internal): Force | |
35866 | opts->x_inline_asm_unified to true only if TARGET_THUMB2_P. | |
35867 | ||
35868 | 2019-01-10 Jakub Jelinek <jakub@redhat.com> | |
35869 | ||
35870 | PR c/88568 | |
35871 | * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting | |
35872 | DECL_EXTERNAL. | |
35873 | ||
35874 | 2019-01-10 Tamar Christina <tamar.christina@arm.com> | |
35875 | ||
35876 | * config/arm/arm-builtins.c | |
35877 | (enum arm_type_qualifiers): Add qualifier_lane_pair_index. | |
35878 | (MAC_LANE_PAIR_QUALIFIERS): New. | |
35879 | (arm_expand_builtin_args): Use it. | |
35880 | (arm_expand_builtin_1): Likewise. | |
35881 | * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New. | |
35882 | * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New. | |
35883 | * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX. | |
35884 | * config/arm/arm_neon.h: | |
35885 | (vcadd_rot90_f16): New. | |
35886 | (vcaddq_rot90_f16): New. | |
35887 | (vcadd_rot270_f16): New. | |
35888 | (vcaddq_rot270_f16): New. | |
35889 | (vcmla_f16): New. | |
35890 | (vcmlaq_f16): New. | |
35891 | (vcmla_lane_f16): New. | |
35892 | (vcmla_laneq_f16): New. | |
35893 | (vcmlaq_lane_f16): New. | |
35894 | (vcmlaq_laneq_f16): New. | |
35895 | (vcmla_rot90_f16): New. | |
35896 | (vcmlaq_rot90_f16): New. | |
35897 | (vcmla_rot90_lane_f16): New. | |
35898 | (vcmla_rot90_laneq_f16): New. | |
35899 | (vcmlaq_rot90_lane_f16): New. | |
35900 | (vcmlaq_rot90_laneq_f16): New. | |
35901 | (vcmla_rot180_f16): New. | |
35902 | (vcmlaq_rot180_f16): New. | |
35903 | (vcmla_rot180_lane_f16): New. | |
35904 | (vcmla_rot180_laneq_f16): New. | |
35905 | (vcmlaq_rot180_lane_f16): New. | |
35906 | (vcmlaq_rot180_laneq_f16): New. | |
35907 | (vcmla_rot270_f16): New. | |
35908 | (vcmlaq_rot270_f16): New. | |
35909 | (vcmla_rot270_lane_f16): New. | |
35910 | (vcmla_rot270_laneq_f16): New. | |
35911 | (vcmlaq_rot270_lane_f16): New. | |
35912 | (vcmlaq_rot270_laneq_f16): New. | |
35913 | (vcadd_rot90_f32): New. | |
35914 | (vcaddq_rot90_f32): New. | |
35915 | (vcadd_rot270_f32): New. | |
35916 | (vcaddq_rot270_f32): New. | |
35917 | (vcmla_f32): New. | |
35918 | (vcmlaq_f32): New. | |
35919 | (vcmla_lane_f32): New. | |
35920 | (vcmla_laneq_f32): New. | |
35921 | (vcmlaq_lane_f32): New. | |
35922 | (vcmlaq_laneq_f32): New. | |
35923 | (vcmla_rot90_f32): New. | |
35924 | (vcmlaq_rot90_f32): New. | |
35925 | (vcmla_rot90_lane_f32): New. | |
35926 | (vcmla_rot90_laneq_f32): New. | |
35927 | (vcmlaq_rot90_lane_f32): New. | |
35928 | (vcmlaq_rot90_laneq_f32): New. | |
35929 | (vcmla_rot180_f32): New. | |
35930 | (vcmlaq_rot180_f32): New. | |
35931 | (vcmla_rot180_lane_f32): New. | |
35932 | (vcmla_rot180_laneq_f32): New. | |
35933 | (vcmlaq_rot180_lane_f32): New. | |
35934 | (vcmlaq_rot180_laneq_f32): New. | |
35935 | (vcmla_rot270_f32): New. | |
35936 | (vcmlaq_rot270_f32): New. | |
35937 | (vcmla_rot270_lane_f32): New. | |
35938 | (vcmla_rot270_laneq_f32): New. | |
35939 | (vcmlaq_rot270_lane_f32): New. | |
35940 | (vcmlaq_rot270_laneq_f32): New. | |
35941 | * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90, | |
35942 | vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, | |
35943 | vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, | |
35944 | vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, | |
35945 | vcmlaq_lane270): New. | |
35946 | * config/arm/neon.md (neon_vcmla_lane<rot><mode>, | |
35947 | neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New. | |
35948 | * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New. | |
35949 | * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New. | |
35950 | (arm_option_reconfigure_globals): Use them. | |
35951 | * config/arm/iterators.md (VDF, VQ_HSF): New. | |
35952 | (VCADD, VCMLA): New. | |
35953 | (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF. | |
35954 | * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): | |
35955 | New. | |
35956 | * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270, | |
35957 | UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New. | |
35958 | ||
35959 | 2019-01-10 Tamar Christina <tamar.christina@arm.com> | |
35960 | ||
35961 | * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): | |
35962 | Add qualifier_lane_pair_index. | |
35963 | (emit-rtl.h): Include. | |
35964 | (TYPES_QUADOP_LANE_PAIR): New. | |
35965 | (aarch64_simd_expand_args): Use it. | |
35966 | (aarch64_simd_expand_builtin): Likewise. | |
35967 | (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): | |
35968 | New. | |
35969 | (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE, | |
35970 | AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data, | |
35971 | aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New. | |
35972 | (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins. | |
35973 | (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF, | |
35974 | AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, | |
35975 | AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF, | |
35976 | AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, | |
35977 | AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF, | |
35978 | AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, | |
35979 | AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF, | |
35980 | AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF. | |
35981 | * config/aarch64/iterators.md (FCMLA_maybe_lane): New. | |
35982 | * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): | |
35983 | Add __ARM_FEATURE_COMPLEX. | |
35984 | * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, | |
35985 | fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, | |
35986 | fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, | |
35987 | fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, | |
35988 | fcmlaq_lane270): New. | |
35989 | * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>, | |
35990 | aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>, | |
35991 | aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New. | |
35992 | * config/aarch64/arm_neon.h: | |
35993 | (vcadd_rot90_f16): New. | |
35994 | (vcaddq_rot90_f16): New. | |
35995 | (vcadd_rot270_f16): New. | |
35996 | (vcaddq_rot270_f16): New. | |
35997 | (vcmla_f16): New. | |
35998 | (vcmlaq_f16): New. | |
35999 | (vcmla_lane_f16): New. | |
36000 | (vcmla_laneq_f16): New. | |
36001 | (vcmlaq_lane_f16): New. | |
36002 | (vcmlaq_rot90_lane_f16): New. | |
36003 | (vcmla_rot90_laneq_f16): New. | |
36004 | (vcmla_rot90_lane_f16): New. | |
36005 | (vcmlaq_rot90_f16): New. | |
36006 | (vcmla_rot90_f16): New. | |
36007 | (vcmlaq_laneq_f16): New. | |
36008 | (vcmla_rot180_laneq_f16): New. | |
36009 | (vcmla_rot180_lane_f16): New. | |
36010 | (vcmlaq_rot180_f16): New. | |
36011 | (vcmla_rot180_f16): New. | |
36012 | (vcmlaq_rot90_laneq_f16): New. | |
36013 | (vcmlaq_rot270_laneq_f16): New. | |
36014 | (vcmlaq_rot270_lane_f16): New. | |
36015 | (vcmla_rot270_laneq_f16): New. | |
36016 | (vcmlaq_rot270_f16): New. | |
36017 | (vcmla_rot270_f16): New. | |
36018 | (vcmlaq_rot180_laneq_f16): New. | |
36019 | (vcmlaq_rot180_lane_f16): New. | |
36020 | (vcmla_rot270_lane_f16): New. | |
36021 | (vcadd_rot90_f32): New. | |
36022 | (vcaddq_rot90_f32): New. | |
36023 | (vcaddq_rot90_f64): New. | |
36024 | (vcadd_rot270_f32): New. | |
36025 | (vcaddq_rot270_f32): New. | |
36026 | (vcaddq_rot270_f64): New. | |
36027 | (vcmla_f32): New. | |
36028 | (vcmlaq_f32): New. | |
36029 | (vcmlaq_f64): New. | |
36030 | (vcmla_lane_f32): New. | |
36031 | (vcmla_laneq_f32): New. | |
36032 | (vcmlaq_lane_f32): New. | |
36033 | (vcmlaq_laneq_f32): New. | |
36034 | (vcmla_rot90_f32): New. | |
36035 | (vcmlaq_rot90_f32): New. | |
36036 | (vcmlaq_rot90_f64): New. | |
36037 | (vcmla_rot90_lane_f32): New. | |
36038 | (vcmla_rot90_laneq_f32): New. | |
36039 | (vcmlaq_rot90_lane_f32): New. | |
36040 | (vcmlaq_rot90_laneq_f32): New. | |
36041 | (vcmla_rot180_f32): New. | |
36042 | (vcmlaq_rot180_f32): New. | |
36043 | (vcmlaq_rot180_f64): New. | |
36044 | (vcmla_rot180_lane_f32): New. | |
36045 | (vcmla_rot180_laneq_f32): New. | |
36046 | (vcmlaq_rot180_lane_f32): New. | |
36047 | (vcmlaq_rot180_laneq_f32): New. | |
36048 | (vcmla_rot270_f32): New. | |
36049 | (vcmlaq_rot270_f32): New. | |
36050 | (vcmlaq_rot270_f64): New. | |
36051 | (vcmla_rot270_lane_f32): New. | |
36052 | (vcmla_rot270_laneq_f32): New. | |
36053 | (vcmlaq_rot270_lane_f32): New. | |
36054 | (vcmlaq_rot270_laneq_f32): New. | |
36055 | * config/aarch64/aarch64.h (TARGET_COMPLEX): New. | |
36056 | * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270, | |
36057 | UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New. | |
36058 | (FCADD, FCMLA): New. | |
36059 | (rot): New. | |
36060 | * config/arm/types.md (neon_fcadd, neon_fcmla): New. | |
36061 | ||
36062 | 2019-01-09 Sandra Loosemore <sandra@codesourcery.com> | |
36063 | ||
36064 | PR other/16615 | |
36065 | ||
36066 | * config/pa/pa.c: Change "can not" to "cannot". | |
36067 | * gimple-ssa-evrp-analyze.c: Likewise. | |
36068 | * ipa-icf.c: Likewise. | |
36069 | * ipa-polymorphic-call.c: Likewise. | |
36070 | * ipa-pure-const.c: Likewise. | |
36071 | * lra-constraints.c: Likewise. | |
36072 | * lra-remat.c: Likewise. | |
36073 | * reload1.c: Likewise. | |
36074 | * reorg.c: Likewise. | |
36075 | * tree-ssa-uninit.c: Likewise. | |
36076 | ||
36077 | 2019-01-09 Sandra Loosemore <sandra@codesourcery.com> | |
36078 | ||
36079 | PR other/16615 | |
36080 | ||
36081 | * Makefile.in: Mechanically replace "can not" with "cannot". | |
36082 | * alias.c: Likewise. | |
36083 | * builtins.c: Likewise. | |
36084 | * calls.c: Likewise. | |
36085 | * cgraph.c: Likewise. | |
36086 | * cgraph.h: Likewise. | |
36087 | * cgraphclones.c: Likewise. | |
36088 | * cgraphunit.c: Likewise. | |
36089 | * combine-stack-adj.c: Likewise. | |
36090 | * combine.c: Likewise. | |
36091 | * common/config/i386/i386-common.c: Likewise. | |
36092 | * config/aarch64/aarch64.c: Likewise. | |
36093 | * config/alpha/sync.md: Likewise. | |
36094 | * config/arc/arc.c: Likewise. | |
36095 | * config/arc/predicates.md: Likewise. | |
36096 | * config/arm/arm-c.c: Likewise. | |
36097 | * config/arm/arm.c: Likewise. | |
36098 | * config/arm/arm.h: Likewise. | |
36099 | * config/arm/arm.md: Likewise. | |
36100 | * config/arm/cortex-r4f.md: Likewise. | |
36101 | * config/csky/csky.c: Likewise. | |
36102 | * config/csky/csky.h: Likewise. | |
36103 | * config/darwin-f.c: Likewise. | |
36104 | * config/epiphany/epiphany.md: Likewise. | |
36105 | * config/i386/i386.c: Likewise. | |
36106 | * config/i386/sol2.h: Likewise. | |
36107 | * config/m68k/m68k.c: Likewise. | |
36108 | * config/mcore/mcore.h: Likewise. | |
36109 | * config/microblaze/microblaze.md: Likewise. | |
36110 | * config/mips/20kc.md: Likewise. | |
36111 | * config/mips/sb1.md: Likewise. | |
36112 | * config/nds32/nds32.c: Likewise. | |
36113 | * config/nds32/predicates.md: Likewise. | |
36114 | * config/pa/pa.c: Likewise. | |
36115 | * config/rs6000/e300c2c3.md: Likewise. | |
36116 | * config/rs6000/rs6000.c: Likewise. | |
36117 | * config/s390/s390.h: Likewise. | |
36118 | * config/sh/sh.c: Likewise. | |
36119 | * config/sh/sh.md: Likewise. | |
36120 | * config/spu/vmx2spu.h: Likewise. | |
36121 | * cprop.c: Likewise. | |
36122 | * dbxout.c: Likewise. | |
36123 | * df-scan.c: Likewise. | |
36124 | * doc/cfg.texi: Likewise. | |
36125 | * doc/extend.texi: Likewise. | |
36126 | * doc/fragments.texi: Likewise. | |
36127 | * doc/gty.texi: Likewise. | |
36128 | * doc/invoke.texi: Likewise. | |
36129 | * doc/lto.texi: Likewise. | |
36130 | * doc/md.texi: Likewise. | |
36131 | * doc/objc.texi: Likewise. | |
36132 | * doc/rtl.texi: Likewise. | |
36133 | * doc/tm.texi: Likewise. | |
36134 | * dse.c: Likewise. | |
36135 | * emit-rtl.c: Likewise. | |
36136 | * emit-rtl.h: Likewise. | |
36137 | * except.c: Likewise. | |
36138 | * expmed.c: Likewise. | |
36139 | * expr.c: Likewise. | |
36140 | * fold-const.c: Likewise. | |
36141 | * genautomata.c: Likewise. | |
36142 | * gimple-fold.c: Likewise. | |
36143 | * hard-reg-set.h: Likewise. | |
36144 | * ifcvt.c: Likewise. | |
36145 | * ipa-comdats.c: Likewise. | |
36146 | * ipa-cp.c: Likewise. | |
36147 | * ipa-devirt.c: Likewise. | |
36148 | * ipa-fnsummary.c: Likewise. | |
36149 | * ipa-icf.c: Likewise. | |
36150 | * ipa-inline-transform.c: Likewise. | |
36151 | * ipa-inline.c: Likewise. | |
36152 | * ipa-polymorphic-call.c: Likewise. | |
36153 | * ipa-profile.c: Likewise. | |
36154 | * ipa-prop.c: Likewise. | |
36155 | * ipa-pure-const.c: Likewise. | |
36156 | * ipa-reference.c: Likewise. | |
36157 | * ipa-split.c: Likewise. | |
36158 | * ipa-visibility.c: Likewise. | |
36159 | * ipa.c: Likewise. | |
36160 | * ira-build.c: Likewise. | |
36161 | * ira-color.c: Likewise. | |
36162 | * ira-conflicts.c: Likewise. | |
36163 | * ira-costs.c: Likewise. | |
36164 | * ira-int.h: Likewise. | |
36165 | * ira-lives.c: Likewise. | |
36166 | * ira.c: Likewise. | |
36167 | * ira.h: Likewise. | |
36168 | * loop-invariant.c: Likewise. | |
36169 | * loop-unroll.c: Likewise. | |
36170 | * lower-subreg.c: Likewise. | |
36171 | * lra-assigns.c: Likewise. | |
36172 | * lra-constraints.c: Likewise. | |
36173 | * lra-eliminations.c: Likewise. | |
36174 | * lra-lives.c: Likewise. | |
36175 | * lra-remat.c: Likewise. | |
36176 | * lra-spills.c: Likewise. | |
36177 | * lra.c: Likewise. | |
36178 | * lto-cgraph.c: Likewise. | |
36179 | * lto-streamer-out.c: Likewise. | |
36180 | * postreload-gcse.c: Likewise. | |
36181 | * predict.c: Likewise. | |
36182 | * profile-count.h: Likewise. | |
36183 | * profile.c: Likewise. | |
36184 | * recog.c: Likewise. | |
36185 | * ree.c: Likewise. | |
36186 | * reload.c: Likewise. | |
36187 | * reload1.c: Likewise. | |
36188 | * reorg.c: Likewise. | |
36189 | * resource.c: Likewise. | |
36190 | * rtl.def: Likewise. | |
36191 | * rtl.h: Likewise. | |
36192 | * rtlanal.c: Likewise. | |
36193 | * sched-deps.c: Likewise. | |
36194 | * sched-ebb.c: Likewise. | |
36195 | * sched-rgn.c: Likewise. | |
36196 | * sel-sched-ir.c: Likewise. | |
36197 | * sel-sched.c: Likewise. | |
36198 | * shrink-wrap.c: Likewise. | |
36199 | * simplify-rtx.c: Likewise. | |
36200 | * symtab.c: Likewise. | |
36201 | * target.def: Likewise. | |
36202 | * toplev.c: Likewise. | |
36203 | * tree-call-cdce.c: Likewise. | |
36204 | * tree-cfg.c: Likewise. | |
36205 | * tree-complex.c: Likewise. | |
36206 | * tree-core.h: Likewise. | |
36207 | * tree-eh.c: Likewise. | |
36208 | * tree-inline.c: Likewise. | |
36209 | * tree-loop-distribution.c: Likewise. | |
36210 | * tree-nrv.c: Likewise. | |
36211 | * tree-profile.c: Likewise. | |
36212 | * tree-sra.c: Likewise. | |
36213 | * tree-ssa-alias.c: Likewise. | |
36214 | * tree-ssa-dce.c: Likewise. | |
36215 | * tree-ssa-dom.c: Likewise. | |
36216 | * tree-ssa-forwprop.c: Likewise. | |
36217 | * tree-ssa-loop-im.c: Likewise. | |
36218 | * tree-ssa-loop-ivcanon.c: Likewise. | |
36219 | * tree-ssa-loop-ivopts.c: Likewise. | |
36220 | * tree-ssa-loop-niter.c: Likewise. | |
36221 | * tree-ssa-phionlycprop.c: Likewise. | |
36222 | * tree-ssa-phiopt.c: Likewise. | |
36223 | * tree-ssa-propagate.c: Likewise. | |
36224 | * tree-ssa-threadedge.c: Likewise. | |
36225 | * tree-ssa-threadupdate.c: Likewise. | |
36226 | * tree-ssa-uninit.c: Likewise. | |
36227 | * tree-ssanames.c: Likewise. | |
36228 | * tree-streamer-out.c: Likewise. | |
36229 | * tree.c: Likewise. | |
36230 | * tree.h: Likewise. | |
36231 | * vr-values.c: Likewise. | |
36232 | ||
36233 | 2019-01-09 Uroš Bizjak <ubizjak@gmail.com> | |
36234 | ||
36235 | * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype. | |
36236 | (ix86_split_xorsign): Ditto. | |
36237 | * config/i386/i386.c (ix86_expand_xorsign): New function. | |
36238 | (ix86_split_xorsign): Ditto. | |
36239 | * config/i386/i386.md (UNSPEC_XORSIGN): New unspec. | |
36240 | (xorsign<mode>3): New expander. | |
36241 | (xorsign<mode>3_1): New insn_and_split pattern. | |
36242 | * config/i386/sse.md (xorsign<mode>3): New expander. | |
36243 | ||
36244 | 2019-01-09 Eric Botcazou <ebotcazou@adacore.com> | |
36245 | ||
36246 | * config/sparc/sparc.md (*tablejump_sp32): Merge into... | |
36247 | (*tablejump_sp64): Likewise. | |
36248 | (*tablejump<P:mode>): ...this. | |
36249 | (*call_address_sp32): Merge into... | |
36250 | (*call_address_sp64): Likewise. | |
36251 | (*call_address<P:mode>): ...this. | |
36252 | (*call_symbolic_sp32): Merge into... | |
36253 | (*call_symbolic_sp64): Likewise. | |
36254 | (*call_symbolic<P:mode>): ...this. | |
36255 | (call_value): Remove constraint and add predicate. | |
36256 | (*call_value_address_sp32): Merge into... | |
36257 | (*call_value_address_sp64): Likewise. | |
36258 | (*call_value_address<P:mode>): ...this. | |
36259 | (*call_value_symbolic_sp32): Merge into... | |
36260 | (*call_value_symbolic_sp64): Likewise. | |
36261 | (*call_value_symbolic<P:mode>): ...this. | |
36262 | (*sibcall_symbolic_sp32): Merge into... | |
36263 | (*sibcall_symbolic_sp64): Likewise. | |
36264 | (*sibcall_symbolic<P:mode>): ...this. | |
36265 | (sibcall_value): Remove constraint and add predicate. | |
36266 | (*sibcall_value_symbolic_sp32): Merge into... | |
36267 | (*sibcall_value_symbolic_sp64): Likewise. | |
36268 | (*sibcall_value_symbolic<P:mode>): ...this. | |
36269 | (window_save): Minor tweak. | |
36270 | (*branch_sp32): Merge into... | |
36271 | (*branch_sp64): Likewise. | |
36272 | (*branch<P:mode>): ...this. | |
36273 | ||
36274 | 2019-01-09 Eric Botcazou <ebotcazou@adacore.com> | |
36275 | James Clarke <jrtc27@jrtc27.com> | |
36276 | ||
36277 | PR target/84010 | |
36278 | * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode | |
36279 | consistently in TLS address generation and adjust code to the renaming | |
36280 | of patterns. Mark calls to __tls_get_addr as const. | |
36281 | * config/sparc/sparc.md (tgd_hi22): Turn into... | |
36282 | (tgd_hi22<P:mode>): ...this and use Pmode throughout. | |
36283 | (tgd_lo10): Turn into... | |
36284 | (tgd_lo10<P:mode>): ...this and use Pmode throughout. | |
36285 | (tgd_add32): Merge into... | |
36286 | (tgd_add64): Likewise. | |
36287 | (tgd_add<P:mode>): ...this and use Pmode throughout. | |
36288 | (tldm_hi22): Turn into... | |
36289 | (tldm_hi22<P:mode>): ...this and use Pmode throughout. | |
36290 | (tldm_lo10): Turn into... | |
36291 | (tldm_lo10<P:mode>): ...this and use Pmode throughout. | |
36292 | (tldm_add32): Merge into... | |
36293 | (tldm_add64): Likewise. | |
36294 | (tldm_add<P:mode>): ...this and use Pmode throughout. | |
36295 | (tldm_call32): Merge into... | |
36296 | (tldm_call64): Likewise. | |
36297 | (tldm_call<P:mode>): ...this and use Pmode throughout. | |
36298 | (tldo_hix22): Turn into... | |
36299 | (tldo_hix22<P:mode>): ...this and use Pmode throughout. | |
36300 | (tldo_lox10): Turn into... | |
36301 | (tldo_lox10<P:mode>): ...this and use Pmode throughout. | |
36302 | (tldo_add32): Merge into... | |
36303 | (tldo_add64): Likewise. | |
36304 | (tldo_add<P:mode>): ...this and use Pmode throughout. | |
36305 | (tie_hi22): Turn into... | |
36306 | (tie_hi22<P:mode>): ...this and use Pmode throughout. | |
36307 | (tie_lo10): Turn into... | |
36308 | (tie_lo10<P:mode>): ...this and use Pmode throughout. | |
36309 | (tie_ld64): Use DImode throughout. | |
36310 | (tie_add32): Merge into... | |
36311 | (tie_add64): Likewise. | |
36312 | (tie_add<P:mode>): ...this and use Pmode throughout. | |
36313 | (tle_hix22_sp32): Merge into... | |
36314 | (tle_hix22_sp64): Likewise. | |
36315 | (tle_hix22<P:mode>): ...this and use Pmode throughout. | |
36316 | (tle_lox22_sp32): Merge into... | |
36317 | (tle_lox22_sp64): Likewise. | |
36318 | (tle_lox22<P:mode>): ...this and use Pmode throughout. | |
36319 | (*tldo_ldub_sp32): Merge into... | |
36320 | (*tldo_ldub_sp64): Likewise. | |
36321 | (*tldo_ldub<P:mode>): ...this and use Pmode throughout. | |
36322 | (*tldo_ldub1_sp32): Merge into... | |
36323 | (*tldo_ldub1_sp64): Likewise. | |
36324 | (*tldo_ldub1<P:mode>): ...this and use Pmode throughout. | |
36325 | (*tldo_ldub2_sp32): Merge into... | |
36326 | (*tldo_ldub2_sp64): Likewise. | |
36327 | (*tldo_ldub2<P:mode>): ...this and use Pmode throughout. | |
36328 | (*tldo_ldsb1_sp32): Merge into... | |
36329 | (*tldo_ldsb1_sp64): Likewise. | |
36330 | (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout. | |
36331 | (*tldo_ldsb2_sp32): Merge into... | |
36332 | (*tldo_ldsb2_sp64): Likewise. | |
36333 | (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout. | |
36334 | (*tldo_ldub3_sp64): Use DImode throughout. | |
36335 | (*tldo_ldsb3_sp64): Likewise. | |
36336 | (*tldo_lduh_sp32): Merge into... | |
36337 | (*tldo_lduh_sp64): Likewise. | |
36338 | (*tldo_lduh<P:mode>): ...this and use Pmode throughout. | |
36339 | (*tldo_lduh1_sp32): Merge into... | |
36340 | (*tldo_lduh1_sp64): Likewise. | |
36341 | (*tldo_lduh1<P:mode>): ...this and use Pmode throughout. | |
36342 | (*tldo_ldsh1_sp32): Merge into... | |
36343 | (*tldo_ldsh1_sp64): Likewise. | |
36344 | (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout. | |
36345 | (*tldo_lduh2_sp64): Use DImode throughout. | |
36346 | (*tldo_ldsh2_sp64): Likewise. | |
36347 | (*tldo_lduw_sp32): Merge into... | |
36348 | (*tldo_lduw_sp64): Likewise. | |
36349 | (*tldo_lduw<P:mode>): ...this and use Pmode throughout. | |
36350 | (*tldo_lduw1_sp64): Use DImode throughout. | |
36351 | (*tldo_ldsw1_sp64): Likewise. | |
36352 | (*tldo_ldx_sp64): Likewise. | |
36353 | (*tldo_stb_sp32): Merge into... | |
36354 | (*tldo_stb_sp64): Likewise. | |
36355 | (*tldo_stb<P:mode>): ...this and use Pmode throughout. | |
36356 | (*tldo_sth_sp32): Merge into... | |
36357 | (*tldo_sth_sp64): Likewise. | |
36358 | (*tldo_sth<P:mode>): ...this and use Pmode throughout. | |
36359 | (*tldo_stw_sp32): Merge into... | |
36360 | (*tldo_stw_sp64): Likewise. | |
36361 | (*tldo_stw<P:mode>): ...this and use Pmode throughout. | |
36362 | (*tldo_stx_sp64): Use DImode throughout. | |
36363 | ||
36364 | 2018-01-09 Sudakshina Das <sudi.das@arm.com> | |
36365 | ||
36366 | * config/aarch64/aarch64.c (aarch64_override_options): Add case to | |
36367 | check configure option to set BTI and Return Address Signing. | |
36368 | * configure.ac: Add --enable-standard-branch-protection and | |
36369 | --disable-standard-branch-protection. | |
36370 | * configure: Regenerated. | |
36371 | * doc/install.texi: Document the same. | |
36372 | ||
36373 | 2018-01-09 Sudakshina Das <sudi.das@arm.com> | |
36374 | Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> | |
36375 | ||
36376 | * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o. | |
36377 | * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE. | |
36378 | * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update | |
36379 | if bti is enabled. | |
36380 | * config/aarch64/aarch64-bti-insert.c: New file. | |
36381 | * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti | |
36382 | pass. | |
36383 | * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the | |
36384 | new bti pass. | |
36385 | * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG, | |
36386 | UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC. | |
36387 | (bti_noarg, bti_j, bti_c, bti_jc): New define_insns. | |
36388 | * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o. | |
36389 | ||
36390 | 2018-01-09 Sudakshina Das <sudi.das@arm.com> | |
36391 | ||
36392 | * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare. | |
36393 | * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection): | |
36394 | Disable bti for -mbranch-protection=none. | |
36395 | (aarch64_handle_standard_branch_protection): Enable bti for | |
36396 | -mbranch-protection=standard. | |
36397 | (aarch64_handle_bti_protection): Enable bti for "bti" in the string to | |
36398 | -mbranch-protection. | |
36399 | (aarch64_bti_enabled): Check if bti is enabled. | |
36400 | * config/aarch64/aarch64.opt: Declare target variable. | |
36401 | * doc/invoke.texi: Add bti to the -mbranch-protection documentation. | |
36402 | ||
36403 | 2018-01-09 Sudakshina Das <sudi.das@arm.com> | |
36404 | ||
36405 | * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new | |
36406 | epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM. | |
36407 | (aarch64_expand_epilogue): Likewise. | |
36408 | (aarch64_output_mi_thunk): Likewise. | |
36409 | * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change | |
36410 | TAILCALL_ADDR_REGS to x16 and x17. | |
36411 | * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM. | |
36412 | ||
36413 | 2018-01-09 Sudakshina Das <sudi.das@arm.com> | |
36414 | ||
36415 | * config/aarch64/aarch64-option-extensions.def: Define | |
36416 | AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres. | |
36417 | * config/aarch64/aarch64.h (AARCH64_FL_RNG): New. | |
36418 | (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New. | |
36419 | (AARCH64_FL_PREDRES): New. | |
36420 | (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and | |
36421 | AARCH64_FL_PREDRES by default. | |
36422 | * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres. | |
36423 | ||
36424 | 2018-01-09 Sudakshina Das <sudi.das@arm.com> | |
36425 | ||
36426 | * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for | |
36427 | ARMv8.5-A. | |
36428 | * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New. | |
36429 | (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New. | |
36430 | * doc/invoke.texi: Document ARMv8.5-A. | |
36431 | ||
36432 | 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com> | |
36433 | ||
36434 | * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand. | |
36435 | (xorsign<mode>3): Likewise. | |
36436 | ||
36437 | 2019-01-09 Jelinek <jakub@redhat.com> | |
36438 | ||
36439 | PR middle-end/88758 | |
36440 | * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use | |
36441 | vector_cst_elt instead of VECTOR_CST_ENCODED_ELT. | |
36442 | ||
36443 | PR rtl-optimization/88331 | |
36444 | * function.c (assign_stack_local_1): Don't set dynamic_align_addr if | |
36445 | not currently_expanding_to_rtl. | |
36446 | ||
36447 | 2019-01-09 Eric Botcazou <ebotcazou@adacore.com> | |
36448 | ||
36449 | * doc/invoke.texi (-Os): Remove trailing spaces. | |
36450 | (-finline-functions): Remove reference to -O2. | |
36451 | ||
36452 | 2019-01-08 Jakub Jelinek <jakub@redhat.com> | |
36453 | ||
36454 | PR rtl-optimization/79593 | |
36455 | * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2. | |
36456 | ||
36457 | * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize | |
36458 | UNSPEC_FUSION_GPR to its argument. Formatting fixes. | |
36459 | ||
36460 | 2019-01-08 Eric Botcazou <ebotcazou@adacore.com> | |
36461 | ||
36462 | PR bootstrap/88721 | |
36463 | * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING | |
36464 | to -1 on entry. | |
36465 | ||
36466 | PR debug/88723 | |
36467 | * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked | |
36468 | UNSPECs and UNSPEC_MOVE_GOTDATA specifically. | |
36469 | ||
36470 | 2019-01-08 H.J. Lu <hongjiu.lu@intel.com> | |
36471 | ||
36472 | PR target/88717 | |
36473 | * config/i386/i386.c (ix86_avx_u128_mode_exit): Call | |
36474 | ix86_avx_u128_mode_entry. | |
36475 | ||
36476 | 2019-01-08 Martin Liska <mliska@suse.cz> | |
36477 | ||
36478 | PR tree-optimization/88753 | |
36479 | * tree-switch-conversion.c (switch_conversion::build_one_array): | |
36480 | Come up with local variable constructor. Convert first to | |
36481 | type of constructor values. | |
36482 | ||
36483 | 2019-01-08 Richard Biener <rguenther@suse.de> | |
36484 | ||
36485 | PR tree-optimization/86554 | |
36486 | * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim, | |
36487 | rpo_avail): Move earlier. | |
36488 | (visit_nary_op): When value-numbering to expressions | |
36489 | with different overflow behavior make sure there's an | |
36490 | available expression on the path. | |
36491 | ||
36492 | 2019-01-08 Sam Tebbs <sam.tebbs@arm.com> | |
36493 | ||
36494 | * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX, | |
36495 | aarch64_parse_branch_protection, | |
36496 | struct aarch64_branch_protect_type, | |
36497 | aarch64_handle_no_branch_protection, | |
36498 | aarch64_handle_standard_branch_protection, | |
36499 | aarch64_validate_mbranch_protection, | |
36500 | aarch64_handle_pac_ret_protection, | |
36501 | aarch64_handle_attr_branch_protection, | |
36502 | accepted_branch_protection_string, | |
36503 | aarch64_pac_ret_subtypes, | |
36504 | aarch64_branch_protect_types, | |
36505 | aarch64_handle_pac_ret_leaf): Define. | |
36506 | (aarch64_override_options_after_change_1, aarch64_override_options): | |
36507 | Add check for accepted_branch_protection_string. | |
36508 | (aarch64_option_save): Save accepted_branch_protection_string. | |
36509 | (aarch64_option_restore): Save accepted_branch_protection_string. | |
36510 | * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection. | |
36511 | * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate | |
36512 | msign-return-address. | |
36513 | * doc/invoke.texi: Add mbranch-protection. | |
36514 | ||
36515 | 2019-01-08 Alan Modra <amodra@gmail.com> | |
36516 | ||
36517 | PR target/88614 | |
36518 | * genattrtab.c (max_attr_value, min_attr_value, or_attr_value): | |
36519 | Delete "unknownp" parameter. Adjust callers. Handle | |
36520 | CONST_INT, PLUS, MINUS, and MULT. | |
36521 | (attr_value_aligned): Renamed from or_attr_value. | |
36522 | (min_attr_value): Return INT_MIN for unhandled rtl case.. | |
36523 | (min_fn): ..and translate to INT_MAX here. | |
36524 | (write_length_unit_log): Modify to cope without "unknown". | |
36525 | (write_attr_value): Handle IF_THEN_ELSE. | |
36526 | ||
36527 | 2019-01-07 Richard Sandiford <richard.sandiford@arm.com> | |
36528 | ||
36529 | * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset | |
36530 | optimization for masked stores. | |
36531 | ||
36532 | 2019-01-07 Richard Sandiford <richard.sandiford@arm.com> | |
36533 | ||
36534 | PR middle-end/88567 | |
36535 | * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the | |
36536 | output vector directly to duplicate_and_interleave instead of | |
36537 | going through a temporary. Postpone insertion of ctor_seq to | |
36538 | the end of the loop. | |
36539 | ||
36540 | 2019-01-07 Richard Earnshaw <rearnsha@arm.com> | |
36541 | ||
36542 | PR target/86891 | |
36543 | * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter | |
36544 | unsigned_p. Handle signed and unsigned overflow correction as | |
36545 | required. | |
36546 | * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update | |
36547 | prototype. | |
36548 | * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand | |
36549 | for operand 2. | |
36550 | (add<mode>3_compareV_imm): Make this callable for expanding. | |
36551 | (subv<GPI:mode>4): Use register_operand for operand 1. Use | |
36552 | aarch64_plus_operand for operand 2. | |
36553 | (subv<GPI:mode>_insn): New insn pattern. | |
36554 | (subv<GPI:mode>_imm): Likewise. | |
36555 | (negv<GPI:mode>3): New expand pattern. | |
36556 | (negv<GPI:mode>_insn): New insn pattern. | |
36557 | (negv<GPI:mode>_cmp_only): Likewise. | |
36558 | (cmpv<GPI:mode>_insn): Likewise. | |
36559 | (subvti4): Use register_operand for operand 1. Update call to | |
36560 | aarch64_expand_subvti. | |
36561 | (usubvti4): Likewise. | |
36562 | (negvti3): New expand pattern. | |
36563 | (negdi_carryout): New insn pattern. | |
36564 | (negvdi_carryinV): New insn pattern. | |
36565 | (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous | |
36566 | version the named version. | |
36567 | (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of | |
36568 | operands. | |
36569 | (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn | |
36570 | patterns. | |
36571 | (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn | |
36572 | patterns. | |
36573 | (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete. | |
36574 | (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete. | |
36575 | (sub<mode>3_carryinCV): Delete. | |
36576 | (sub<GPI:mode>3_carryinV): New expand pattern. | |
36577 | sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns. | |
36578 | ||
36579 | 2019-01-07 Richard Biener <rguenther@suse.de> | |
36580 | ||
36581 | * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor | |
36582 | of tree_operand_hash. | |
36583 | ||
36584 | 2019-01-07 Richard Sandiford <richard.sandiford@arm.com> | |
36585 | ||
36586 | PR tree-optimization/88598 | |
36587 | * tree.h (single_nonzero_element): Declare. | |
36588 | * tree.c (single_nonzero_element): New function. | |
36589 | * match.pd: Fold certain reductions of X & CST to X[I] & CST[I] | |
36590 | if I is the only nonzero element of CST. | |
36591 | ||
36592 | 2019-01-07 Richard Sandiford <richard.sandiford@arm.com> | |
36593 | ||
36594 | PR tree-optimization/88598 | |
36595 | * tree.h (initializer_each_zero_or_onep): Declare. | |
36596 | * tree.c (initializer_each_zero_or_onep): New function. | |
36597 | (signed_or_unsigned_type_for): Handle float types too. | |
36598 | (unsigned_type_for, signed_type_for): Update comments accordingly. | |
36599 | * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to | |
36600 | x & { 0 or -1, 0 or -1, ... }. | |
36601 | ||
36602 | 2019-01-07 Jonathan Wakely <jwakely@redhat.com> | |
36603 | ||
36604 | * doc/install.texi: Replace references to x86_64-unknown-linux-gnu | |
36605 | with x86_64-pc-linux-gnu. | |
36606 | ||
36607 | 2019-01-07 Tom de Vries <tdevries@suse.de> | |
36608 | ||
36609 | PR target/85486 | |
36610 | * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New | |
36611 | function. | |
36612 | (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable | |
36613 | routines. | |
36614 | ||
36615 | 2019-01-07 Jakub Jelinek <jakub@redhat.com> | |
36616 | ||
36617 | * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use | |
36618 | V_256_512 iterator instead of V_512 and TARGET_AVX instead of | |
36619 | TARGET_AVX512F as condition. | |
36620 | ||
36621 | PR debug/88723 | |
36622 | * dwarf2out.c (const_ok_for_output_1): Remove redundant call to | |
36623 | const_not_ok_for_debug_p target hook. | |
36624 | (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1 | |
36625 | on UNSPEC and subexpressions thereof if all subexpressions of the | |
36626 | UNSPEC are CONSTANT_P. | |
36627 | ||
36628 | PR tree-optimization/88676 | |
36629 | * tree-ssa-phiopt.c (two_value_replacement): New function. | |
36630 | (tree_ssa_phiopt_worker): Call it. | |
36631 | ||
36632 | PR sanitizer/88619 | |
36633 | * cfgexpand.c (expand_stack_vars): Only align prev_offset to | |
36634 | ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb. | |
36635 | ||
36636 | PR c++/85052 | |
36637 | * tree-vect-generic.c: Include insn-config.h and recog.h. | |
36638 | (expand_vector_piecewise): Add defaulted ret_type argument, | |
36639 | if non-NULL, use that in preference to type for the result type. | |
36640 | (expand_vector_parallel): Formatting fix. | |
36641 | (do_vec_conversion, do_vec_narrowing_conversion, | |
36642 | expand_vector_conversion): New functions. | |
36643 | (expand_vector_operations_1): Call expand_vector_conversion | |
36644 | for VEC_CONVERT ifn calls. | |
36645 | * internal-fn.def (VEC_CONVERT): New internal function. | |
36646 | * internal-fn.c (expand_VEC_CONVERT): New function. | |
36647 | * fold-const-call.c (fold_const_vec_convert): New function. | |
36648 | (fold_const_call): Use it for CFN_VEC_CONVERT. | |
36649 | * doc/extend.texi (__builtin_convertvector): Document. | |
36650 | ||
36651 | 2019-01-07 Tom de Vries <tdevries@suse.de> | |
36652 | ||
36653 | * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare. | |
36654 | * config/nvptx/nvptx.c (vector_red_size, vector_red_align, | |
36655 | vector_red_partition, vector_red_sym): New global variables. | |
36656 | (nvptx_option_override): Initialize vector_red_sym. | |
36657 | (nvptx_declare_function_name): Restore red_partition register. | |
36658 | (nvptx_file_end): Emit code to declare the vector reduction variables. | |
36659 | (nvptx_output_red_partition): New function. | |
36660 | (nvptx_expand_shared_addr): Add vector argument. Use it to handle | |
36661 | large vector reductions. | |
36662 | (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR. | |
36663 | (nvptx_init_builtins): Add VECTOR_ADDR. | |
36664 | (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr. | |
36665 | Handle nvptx_expand_shared_addr. | |
36666 | (nvptx_get_shared_red_addr): Add vector argument and handle large | |
36667 | vectors. | |
36668 | (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle | |
36669 | large vectors. | |
36670 | (nvptx_goacc_reduction_init): Likewise. | |
36671 | (nvptx_goacc_reduction_fini): Likewise. | |
36672 | (nvptx_goacc_reduction_teardown): Likewise. | |
36673 | (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup, | |
36674 | init,fini,teardown}. | |
36675 | (nvptx_init_axis_predicate): Initialize vector_red_partition. | |
36676 | (nvptx_set_current_function): Init vector_red_partition. | |
36677 | * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv. | |
36678 | (nvptx_red_partition): New insn. | |
36679 | * config/nvptx/nvptx.h (struct machine_function): Add red_partition. | |
36680 | ||
36681 | 2019-01-07 Tom de Vries <tdevries@suse.de> | |
36682 | ||
36683 | PR target/85381 | |
36684 | * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for | |
36685 | empty loops. | |
36686 | ||
36687 | 2019-01-07 Tom de Vries <tdevries@suse.de> | |
36688 | ||
36689 | * config/nvptx/nvptx.c (oacc_bcast_partition): Declare. | |
36690 | (nvptx_option_override): Init oacc_bcast_partition. | |
36691 | (nvptx_init_oacc_workers): New function. | |
36692 | (nvptx_declare_function_name): Call nvptx_init_oacc_workers. | |
36693 | (nvptx_needs_shared_bcast): New function. | |
36694 | (nvptx_find_par): Generalize to enable vectors to use shared-memory | |
36695 | to propagate state. | |
36696 | (nvptx_shared_propagate): Initialize vector bcast partition and | |
36697 | synchronization state. | |
36698 | (nvptx_single): Generalize to enable vectors to use shared-memory | |
36699 | to propagate state. | |
36700 | (nvptx_process_pars): Likewise. | |
36701 | (nvptx_set_current_function): Initialize oacc_broadcast_partition. | |
36702 | * config/nvptx/nvptx.h (struct machine_function): Add | |
36703 | bcast_partition and sync_bar members. | |
36704 | ||
36705 | 2019-01-07 Tom de Vries <tdevries@suse.de> | |
36706 | ||
36707 | * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p) | |
36708 | (nvptx_apply_dim_limits): New function. | |
36709 | (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than | |
36710 | PTX_WARP_SIZE. | |
36711 | ||
36712 | 2019-01-07 Tom de Vries <tdevries@suse.de> | |
36713 | ||
36714 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to | |
36715 | as late as possible. | |
36716 | ||
36717 | 2019-01-07 Tom de Vries <tdevries@suse.de> | |
36718 | ||
36719 | * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove. | |
36720 | (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define. | |
36721 | (nvptx_goacc_validate_dims_1, nvptx_dim_limit) | |
36722 | (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH, | |
36723 | PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH. | |
36724 | ||
36725 | 2019-01-07 Tom de Vries <tdevries@suse.de> | |
36726 | ||
36727 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts. | |
36728 | ||
36729 | 2019-01-07 Tom de Vries <tdevries@suse.de> | |
36730 | ||
36731 | * omp-offload.c (oacc_get_min_dim): New function. | |
36732 | * omp-offload.h (oacc_get_min_dim): Declare. | |
36733 | ||
36734 | 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl> | |
36735 | ||
36736 | PR target/88521 | |
36737 | * config/i386/i386.c (function_value_ms_64): Return small sturct in | |
36738 | AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes. | |
36739 | ||
36740 | 2019-01-05 Jan Hubicka <hubicka@ucw.cz> | |
36741 | ||
36742 | PR tree-opt/86020 | |
36743 | Revert: | |
36744 | 2017-05-22 Jan Hubicka <hubicka@ucw.cz> | |
36745 | ||
36746 | * ipa-inline.c (edge_badness): Use inlined_time instead of | |
36747 | inline_summaries->get. | |
36748 | ||
36749 | 2019-01-05 Jan Hubicka <hubicka@ucw.cz> | |
36750 | ||
36751 | * opts.c (enable_fdo_optimizations): Enable | |
36752 | version-loops-for-strides, loop-interchange, unrol-and-jam | |
36753 | and tree-loop-distribution. | |
36754 | * invoke.texi: Document newly enabled options. | |
36755 | ||
36756 | 2019-01-05 Jan Hubicka <hubicka@ucw.cz> | |
36757 | ||
36758 | * doc/invoke.texi (max-inline-insns-small): New parameters. | |
36759 | * ipa-inline.c (want_early_inline_function_p): simplify. | |
36760 | (want_inline_small_function_p): Fix pasto from previous patch; | |
36761 | use max-inline-insns-small bound. | |
36762 | * params.def (max-inline-insns-small): New param. | |
36763 | * ipa-fnsummary.c (analyze_function_body): Initialize time/size | |
36764 | variables correctly. | |
36765 | ||
36766 | 2019-01-05 Jan Hubicka <hubicka@ucw.cz> | |
36767 | ||
36768 | * doc/invoke.texi: Document max-inline-insns-size, | |
36769 | uninlined-function-insns, uninlined-function-time, | |
36770 | uninlined-thunk-insns and uninlined-thunk-time. | |
36771 | * params.def: Add max-inline-insns-size, | |
36772 | uninlined-function-insns, uninlined-function-time, | |
36773 | uninlined-thunk-insns and uninlined-thunk-time. | |
36774 | * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use | |
36775 | new parameters. | |
36776 | * ipa-inline.c (can_inline_edge_by_limits_p, | |
36777 | want_inline_small_function_p): Use new parameters. | |
36778 | ||
36779 | 2019-01-05 Jan Hubicka <hubicka@ucw.cz> | |
36780 | ||
36781 | * ipa-fnsummary.c (analyze_function_body): Fix accounting of time. | |
36782 | ||
36783 | 2019-01-05 Jakub Jelinek <jakub@redhat.com> | |
36784 | ||
36785 | PR middle-end/82564 | |
36786 | PR target/88620 | |
36787 | * expr.c (expand_assignment): For calls returning VLA structures | |
36788 | if to_rtx is not a MEM, force it into a stack temporary. | |
36789 | ||
36790 | PR debug/88635 | |
36791 | * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains | |
36792 | SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument. | |
36793 | Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in | |
36794 | subexpressions of both operands. | |
36795 | (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the | |
36796 | subrtxes are CONSTANT_P. | |
36797 | * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert | |
36798 | 2018-11-09 changes. | |
36799 | ||
36800 | 2019-01-04 Jan Hubicka <hubicka@ucw.cz> | |
36801 | ||
36802 | * params.def (hot-bb-count-ws-permille): Set to 990. | |
36803 | ||
36804 | 2019-01-04 Martin Sebor <msebor@redhat.com> | |
36805 | ||
36806 | PR c/88546 | |
36807 | * attribs.c (decls_mismatched_attributes): Avoid warning for attribute | |
36808 | leaf. | |
36809 | ||
36810 | 2019-01-04 Martin Sebor <msebor@redhat.com> | |
36811 | ||
36812 | PR c/88363 | |
36813 | * doc/extend.texi (attribute alloc_align, alloc_size): Update. | |
36814 | ||
36815 | 2019-01-04 Jakub Jelinek <jakub@redhat.com> | |
36816 | ||
36817 | * gdbinit.in: Turn off pagination for the skip commands, restore | |
36818 | it to previous state afterwards. | |
36819 | ||
36820 | 2019-01-04 Jakub Jelinek <jakub@redhat.com> | |
36821 | ||
36822 | PR target/88594 | |
36823 | * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead | |
36824 | of GET_MODE (opN) as modes of the libcall arguments. | |
36825 | ||
36826 | 2019-01-04 Jan Beulich <jbeulich@suse.com> | |
36827 | ||
36828 | * config/i386/sse.md | |
36829 | (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>, | |
36830 | <avx512>_cmp<mode>3<mask_scalar_merge_name>, | |
36831 | <avx512>_ucmp<mode>3<mask_scalar_merge_name>, | |
36832 | <avx512>_ucmp<mode>3<mask_scalar_merge_name>, | |
36833 | avx512f_vmcmp<mode>3<round_saeonly_name>, | |
36834 | avx512f_vmcmp<mode>3_mask<round_saeonly_name>, | |
36835 | avx512f_maskcmp<mode>3, | |
36836 | <avx512>_cvt<ssemodesuffix>2mask<mode>, | |
36837 | <avx512>_cvt<ssemodesuffix>2mask<mode>, | |
36838 | *<avx512>_cvtmask2<ssemodesuffix><mode>, | |
36839 | *<avx512>_cvtmask2<ssemodesuffix><mode>, | |
36840 | <avx512>_eq<mode>3<mask_scalar_merge_name>_1, | |
36841 | <avx512>_eq<mode>3<mask_scalar_merge_name>_1, | |
36842 | <avx512>_gt<mode>3<mask_scalar_merge_name>, | |
36843 | <avx512>_gt<mode>3<mask_scalar_merge_name>, | |
36844 | <avx512>_testm<mode>3<mask_scalar_merge_name>, | |
36845 | <avx512>_testnm<mode>3<mask_scalar_merge_name>, | |
36846 | *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext, | |
36847 | *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask, | |
36848 | *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext, | |
36849 | *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask, | |
36850 | avx512cd_maskb_vec_dup<mode>, | |
36851 | avx512cd_maskw_vec_dup<mode>, | |
36852 | avx512dq_fpclass<mode><mask_scalar_merge_name>, | |
36853 | avx512dq_vmfpclass<mode>, | |
36854 | avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k | |
36855 | instead of =Yk. | |
36856 | ||
36857 | 2019-01-03 Martin Sebor <msebor@redhat.com> | |
36858 | ||
36859 | PR tree-optimization/88659 | |
36860 | * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set. | |
36861 | ||
36862 | 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com> | |
36863 | ||
36864 | * config/rs6000/rs6000-string.c (expand_block_move): Don't use | |
36865 | unaligned vsx and avoid lxvd2x/stxvd2x. | |
36866 | (gen_lvx_v4si_move): New function. | |
36867 | ||
36868 | 2019-01-03 Tom de Vries <tdevries@suse.de> | |
36869 | ||
36870 | * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define. | |
36871 | (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New | |
36872 | function. | |
36873 | * config/nvptx/nvptx.h (struct machine_function): Add axis_dims. | |
36874 | ||
36875 | 2019-01-03 Tom de Vries <tdevries@suse.de> | |
36876 | ||
36877 | * config/nvptx/nvptx.c (struct offload_attrs): New. | |
36878 | (populate_offload_attrs): New function. Factor mask extraction out of | |
36879 | nvptx_reorg. Add extraction of dimensions. | |
36880 | (nvptx_reorg): Use populate_offload_attrs. | |
36881 | ||
36882 | 2019-01-03 Tom de Vries <tdevries@suse.de> | |
36883 | ||
36884 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out | |
36885 | cases for oacc_min_dims_p and routine_p. Add asserts for | |
36886 | oacc_default_dims_p and offload_region_p. | |
36887 | ||
36888 | 2019-01-03 Tom de Vries <tdevries@suse.de> | |
36889 | ||
36890 | * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function, | |
36891 | factored out of ... | |
36892 | (nvptx_goacc_validate_dims): ... here. | |
36893 | ||
36894 | 2019-01-03 Jan Hubicka <hubicka@ucw.cz> | |
36895 | ||
36896 | PR tree-optimization/85574 | |
36897 | * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused | |
36898 | structure. | |
36899 | (struct ssa_equip_hash_traits): Declare. | |
36900 | (val_ssa_equiv): Use custom hash traits using operand_equal_p. | |
36901 | ||
36902 | 2019-01-03 Jakub Jelinek <jakub@redhat.com> | |
36903 | ||
36904 | PR debug/88644 | |
36905 | * dwarf2out.c (modified_type_die): If type is equal to sizetype, | |
36906 | change it to qualified_type. | |
36907 | ||
36908 | 2019-01-03 Jan Hubicka <hubicka@ucw.cz> | |
36909 | ||
36910 | * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ... | |
36911 | (ipa_merge_profiles): ... here; do not ICE on thunks and aliases. | |
36912 | ||
36913 | 2019-01-02 Martin Sebor <msebor@redhat.com> | |
36914 | Jeff Law <law@redhat.com> | |
36915 | ||
36916 | * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2. | |
36917 | (get_range_strlen_tree): Update appropriately. | |
36918 | (get_range_strlen) | |
36919 | * gimple-fold.h (get_range_strlen): Drop unused last argument. | |
36920 | ||
36921 | * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range | |
36922 | rather than set_range_info. | |
36923 | * tree-ssa-strlen.c (set_strlen_range): Extracted from | |
36924 | maybe_set_strlen_range. Handle potentially boundary crossing | |
36925 | cases more conservatively. | |
36926 | (maybe_set_strlen_range): Parts refactored into set_strlen_range. | |
36927 | Call set_strlen_range. | |
36928 | * tree-ssa-strlen.h (set_strlen_range): Add prototype. | |
36929 | ||
36930 | PR middle-end/88663 | |
36931 | * gimple-fold.c (get_range_strlen): Update prototype to no longer | |
36932 | need the flexp argument. | |
36933 | (get_range_strlen_tree): Drop flexp argument. Drop flexp argument | |
36934 | from calls to get_range_strlen. Update comments. Just update | |
36935 | VAL for an unterminated const char array and let the reset of the | |
36936 | code handle it normally. No longer try to set *flexp. Adjust | |
36937 | return value. | |
36938 | (get_range_strlen): Update for the new get_range_strlen API. | |
36939 | (get_maxval_strlen): Similarly. | |
36940 | (gimple_fold_builtin_strlen): Handle update meaning of return value | |
36941 | from get_range_strlen. | |
36942 | * gimple-ssa-sprintf.c (get_string_length): Update for the new | |
36943 | get_range_strlen API. | |
36944 | ||
36945 | 2019-01-02 Jan Hubicka <hubicka@ucw.cz> | |
36946 | ||
36947 | PR lto/88130 | |
36948 | * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return | |
36949 | false at WPA time when body was removed. | |
36950 | ||
36951 | 2019-01-02 Martin Liska <mliska@suse.cz> | |
36952 | ||
36953 | PR tree-optimization/88650 | |
36954 | * predict.c (set_even_probabilities): Calculate probability | |
36955 | remainer only when really used. | |
36956 | ||
36957 | 2019-01-02 Richard Biener <rguenther@suse.de> | |
36958 | ||
36959 | PR middle-end/88651 | |
36960 | * tree-data-ref.c (analyze_subscript_affine_affine): Use | |
36961 | widest_ints when mangling max_stmt_execution results. | |
36962 | ||
36963 | 2019-01-02 Richard Biener <rguenther@suse.de> | |
36964 | ||
36965 | PR tree-optimization/88621 | |
36966 | * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid | |
36967 | bitfields when canoncalizing. | |
36968 | ||
36969 | 2019-01-02 Richard Biener <rguenther@suse.de> | |
36970 | ||
36971 | PR target/87545 | |
36972 | * config/i386/x86-tune-costs.h (intel_cost): Adjust | |
36973 | cost of cheap SSE instruction. | |
36974 | ||
36975 | 2019-01-02 Richard Biener <rguenther@suse.de> | |
36976 | ||
36977 | PR ipa/85574 | |
36978 | * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare. | |
36979 | * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New | |
36980 | function. | |
36981 | (sem_item_optimizer::do_congruence_step_f): Sort the congruence | |
36982 | set after UIDs before splitting them. | |
36983 | ||
36984 | 2019-01-01 Martin Sebor <msebor@redhat.com> | |
36985 | Jeff Law <law@redhat.com> | |
36986 | ||
36987 | * gimple-fold.c (get_range_strlen_tree): Record if the computed | |
36988 | length is optimistic. If it is, then arrange to compute the | |
36989 | conservative length as well. | |
36990 | ||
36991 | * gimple-fold.h (get_range_strlen): Update prototype. | |
36992 | * builtins.c (check_access): Update call to get_range_strlen to use | |
36993 | c_strlen_data pointer. Change various variable accesses to instead | |
36994 | pull data from the c_strlen_data structure. | |
36995 | (check_strncat_sizes, expand_builtin_strncat): Likewise. | |
36996 | * calls.c (maybe_warn_nonstring_arg): Likewise. | |
36997 | * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset | |
36998 | minimum length if maximum lengh is unknown. | |
36999 | * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code | |
37000 | that used c_strlen, it's no longer needed. Restructure slightly. | |
37001 | (format_string): Set unlikely range appropriately. | |
37002 | * gimple-fold.c (get_range_strlen): Update comments. Fix minor | |
37003 | formatting issues. | |
37004 | (get_range_strlen): Accept c_strlen_data pointer for external | |
37005 | call sites as well. Pass through to call to internal get_range_strlen. | |
37006 | Adjust minlen, maxlen and maxbound as needed. | |
37007 | (get_maxval_strlen): Update comments. | |
37008 | (gimple_fold_builtin_strlen): Update call to get_range_strlen | |
37009 | to use c_strlen_data pointer. Change variable accesses to instead | |
37010 | use c_strlen_data data members. | |
37011 | ||
37012 | * gimple-fold.c (get_range_strlen): Update prototype. | |
37013 | (get_range_strlen_tree): Update prototype. Drop minlen/maxlen | |
37014 | local variables. Use pdata to return information to caller. | |
37015 | Update calls to get_range_strlen. Update pdata->maxbound. | |
37016 | (get_range_strlen -- static version): Similarly. | |
37017 | (get_range_strlen -- extern version): Update for internal | |
37018 | get_range_strlen API change. Convert to external data format. | |
37019 | (get_maxval_strlen): Similarly. | |
37020 | ||
37021 | 2019-01-01 Jan Hubicka <hubicka@ucw.cz> | |
37022 | ||
37023 | * coverage.c (get_coverage_counts): Use current_function_decl. | |
37024 | * profile.c (read_thunk_profile): New function. | |
37025 | (branch_prob): Add THUNK parameter. | |
37026 | * tree-profile.c (tree_profiling): Handle thunks. | |
37027 | * value-prof.c (init_node_map): Handle thunks. | |
37028 | * value-prof.h (branch_prob): Upate prototype. | |
37029 | (read_thunk_profile): Declare. | |
37030 | ||
37031 | 2019-01-01 Jakub Jelinek <jakub@redhat.com> | |
37032 | ||
37033 | Update copyright years. | |
37034 | ||
37035 | * gcc.c (process_command): Update copyright notice dates. | |
37036 | * gcov-dump.c (print_version): Ditto. | |
37037 | * gcov.c (print_version): Ditto. | |
37038 | * gcov-tool.c (print_version): Ditto. | |
37039 | * gengtype.c (create_file): Ditto. | |
37040 | * doc/cpp.texi: Bump @copying's copyright year. | |
37041 | * doc/cppinternals.texi: Ditto. | |
37042 | * doc/gcc.texi: Ditto. | |
37043 | * doc/gccint.texi: Ditto. | |
37044 | * doc/gcov.texi: Ditto. | |
37045 | * doc/install.texi: Ditto. | |
37046 | * doc/invoke.texi: Ditto. | |
37047 | \f | |
37048 | Copyright (C) 2019 Free Software Foundation, Inc. | |
37049 | ||
37050 | Copying and distribution of this file, with or without modification, | |
37051 | are permitted in any medium without royalty provided the copyright | |
37052 | notice and this notice are preserved. |