Commit 158f82a
committed
[VPlan] Replace EVL branch condition with (branch-on-count AVLNext, 0)
This changes the branch condition to use the AVL's backedge value instead of the EVL-based IV.
This allows us to emit bnez on RISC-V and removes a use of the trip count, which should reduce register pressure.
To help match the AVL's backedge value I've added some new pattern matchers.
For the m_Phi matcher it's variadic in the number of operands it accepts, so I had to add a new template argument to Recipe_match to relax the assertion that the number of operands must exactly match the template operand types.
For m_Sub I've used it in a couple of other places that were also pattern matching on subs. Happy to split this out if reviewers prefer.
Fixes #1514591 parent 2e0ddbb commit 158f82a
File tree
32 files changed
+285
-223
lines changed- llvm
- lib/Transforms/Vectorize
- test/Transforms/LoopVectorize/RISCV
32 files changed
+285
-223
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
195 | 195 | | |
196 | 196 | | |
197 | 197 | | |
198 | | - | |
| 198 | + | |
199 | 199 | | |
200 | 200 | | |
201 | 201 | | |
| |||
231 | 231 | | |
232 | 232 | | |
233 | 233 | | |
234 | | - | |
235 | | - | |
236 | | - | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
237 | 240 | | |
238 | 241 | | |
239 | 242 | | |
| |||
256 | 259 | | |
257 | 260 | | |
258 | 261 | | |
259 | | - | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
260 | 265 | | |
261 | 266 | | |
262 | 267 | | |
| |||
272 | 277 | | |
273 | 278 | | |
274 | 279 | | |
275 | | - | |
| 280 | + | |
276 | 281 | | |
277 | 282 | | |
278 | 283 | | |
279 | | - | |
| 284 | + | |
280 | 285 | | |
281 | 286 | | |
282 | 287 | | |
| |||
293 | 298 | | |
294 | 299 | | |
295 | 300 | | |
296 | | - | |
| 301 | + | |
| 302 | + | |
297 | 303 | | |
298 | 304 | | |
299 | 305 | | |
| |||
302 | 308 | | |
303 | 309 | | |
304 | 310 | | |
305 | | - | |
306 | | - | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
307 | 314 | | |
308 | 315 | | |
309 | 316 | | |
| |||
343 | 350 | | |
344 | 351 | | |
345 | 352 | | |
346 | | - | |
347 | | - | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
348 | 356 | | |
349 | 357 | | |
350 | 358 | | |
| |||
378 | 386 | | |
379 | 387 | | |
380 | 388 | | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
381 | 395 | | |
382 | 396 | | |
383 | 397 | | |
| |||
418 | 432 | | |
419 | 433 | | |
420 | 434 | | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
421 | 441 | | |
422 | 442 | | |
423 | 443 | | |
| |||
431 | 451 | | |
432 | 452 | | |
433 | 453 | | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
434 | 460 | | |
435 | 461 | | |
436 | 462 | | |
| |||
476 | 502 | | |
477 | 503 | | |
478 | 504 | | |
479 | | - | |
| 505 | + | |
| 506 | + | |
480 | 507 | | |
481 | 508 | | |
482 | 509 | | |
| |||
524 | 551 | | |
525 | 552 | | |
526 | 553 | | |
527 | | - | |
| 554 | + | |
| 555 | + | |
528 | 556 | | |
529 | 557 | | |
530 | 558 | | |
531 | 559 | | |
532 | 560 | | |
533 | 561 | | |
534 | 562 | | |
| 563 | + | |
| 564 | + | |
| 565 | + | |
| 566 | + | |
| 567 | + | |
| 568 | + | |
| 569 | + | |
| 570 | + | |
| 571 | + | |
| 572 | + | |
| 573 | + | |
535 | 574 | | |
536 | 575 | | |
537 | 576 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
328 | 328 | | |
329 | 329 | | |
330 | 330 | | |
331 | | - | |
332 | | - | |
| 331 | + | |
333 | 332 | | |
334 | 333 | | |
335 | 334 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
740 | 740 | | |
741 | 741 | | |
742 | 742 | | |
743 | | - | |
744 | | - | |
| 743 | + | |
745 | 744 | | |
746 | 745 | | |
747 | 746 | | |
| |||
2386 | 2385 | | |
2387 | 2386 | | |
2388 | 2387 | | |
| 2388 | + | |
2389 | 2389 | | |
2390 | 2390 | | |
2391 | 2391 | | |
2392 | | - | |
2393 | | - | |
| 2392 | + | |
| 2393 | + | |
| 2394 | + | |
| 2395 | + | |
| 2396 | + | |
| 2397 | + | |
2394 | 2398 | | |
2395 | | - | |
| 2399 | + | |
| 2400 | + | |
2396 | 2401 | | |
| 2402 | + | |
| 2403 | + | |
| 2404 | + | |
| 2405 | + | |
| 2406 | + | |
| 2407 | + | |
| 2408 | + | |
| 2409 | + | |
| 2410 | + | |
| 2411 | + | |
| 2412 | + | |
2397 | 2413 | | |
2398 | 2414 | | |
2399 | 2415 | | |
2400 | 2416 | | |
2401 | 2417 | | |
| 2418 | + | |
| 2419 | + | |
2402 | 2420 | | |
2403 | 2421 | | |
2404 | 2422 | | |
| |||
2425 | 2443 | | |
2426 | 2444 | | |
2427 | 2445 | | |
2428 | | - | |
| 2446 | + | |
2429 | 2447 | | |
2430 | 2448 | | |
2431 | 2449 | | |
| |||
2438 | 2456 | | |
2439 | 2457 | | |
2440 | 2458 | | |
2441 | | - | |
| 2459 | + | |
| 2460 | + | |
| 2461 | + | |
| 2462 | + | |
| 2463 | + | |
| 2464 | + | |
2442 | 2465 | | |
2443 | 2466 | | |
2444 | 2467 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
216 | 216 | | |
217 | 217 | | |
218 | 218 | | |
219 | | - | |
220 | | - | |
221 | | - | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
222 | 223 | | |
223 | 224 | | |
224 | 225 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
41 | | - | |
| 40 | + | |
| 41 | + | |
42 | 42 | | |
43 | 43 | | |
44 | 44 | | |
| |||
Lines changed: 5 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
144 | | - | |
| 144 | + | |
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
| |||
195 | 195 | | |
196 | 196 | | |
197 | 197 | | |
198 | | - | |
| 198 | + | |
199 | 199 | | |
200 | 200 | | |
201 | 201 | | |
| |||
362 | 362 | | |
363 | 363 | | |
364 | 364 | | |
365 | | - | |
366 | | - | |
| 365 | + | |
| 366 | + | |
367 | 367 | | |
368 | 368 | | |
369 | 369 | | |
| |||
410 | 410 | | |
411 | 411 | | |
412 | 412 | | |
413 | | - | |
| 413 | + | |
414 | 414 | | |
415 | 415 | | |
416 | 416 | | |
| |||
Lines changed: 2 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
143 | 143 | | |
144 | 144 | | |
145 | 145 | | |
146 | | - | |
| 146 | + | |
147 | 147 | | |
148 | 148 | | |
149 | 149 | | |
| |||
334 | 334 | | |
335 | 335 | | |
336 | 336 | | |
337 | | - | |
| 337 | + | |
338 | 338 | | |
339 | 339 | | |
340 | 340 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
54 | | - | |
| 53 | + | |
| 54 | + | |
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| |||
0 commit comments