diff options
author | Axel Sorenson <axelcool1234@gmail.com> | 2025-01-29 11:24:03 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-29 11:24:03 -0800 |
commit | d3161defd6b717241a85b6ca528754c747060735 (patch) | |
tree | 6f4b3a6ac1dd2cdc5e87526f9a9e86dc67562df6 /llvm/lib/Object/ELFObjectFile.cpp | |
parent | 1822462e2a0c9cc944f3ce114d8b1a71d0764350 (diff) | |
download | llvm-d3161defd6b717241a85b6ca528754c747060735.zip llvm-d3161defd6b717241a85b6ca528754c747060735.tar.gz llvm-d3161defd6b717241a85b6ca528754c747060735.tar.bz2 |
[PassBuilder] VectorizerEnd Extension Points (#123494)
Added an extension point after vectorizer passes in the PassBuilder.
Additionally, added extension points before and after vectorizer passes
in `buildLTODefaultPipeline`. Credit goes to @mshockwave for guiding me
through my first LLVM contribution (and my first open source
contribution in general!) :)
- Implemented `registerVectorizerEndEPCallback`
- Implemented `invokeVectorizerEndEPCallbacks`
- Added `VectorizerEndEPCallbacks` SmallVector
- Added a command line option `passes-ep-vectorizer-end` to
`NewPMDriver.cpp`
- `buildModuleOptimizationPipeline` now calls
`invokeVectorizerEndEPCallbacks`
- `buildO0DefaultPipeline` now calls `invokeVectorizerEndEPCallbacks`
- `buildLTODefaultPipeline` now calls BOTH
`invokeVectorizerStartEPCallbacks` and `invokeVectorizerEndEPCallbacks`
- Added LIT tests to `new-pm-defaults.ll`, `new-pm-lto-defaults.ll`,
`new-pm-O0-ep-callbacks.ll`, and `pass-pipeline-parsing.ll`
- Renamed `CHECK-EP-Peephole` to `CHECK-EP-PEEPHOLE` in
`new-pm-lto-defaults.ll` for consistency.
This code is intended for developers that wish to implement and run
custom passes after the vectorizer passes in the PassBuilder pipeline.
For example, in #91796, a pass was created that changed the induction
variables of vectorized code. This is right after the vectorization
passes.
Diffstat (limited to 'llvm/lib/Object/ELFObjectFile.cpp')
0 files changed, 0 insertions, 0 deletions