[llvm] [X86, SimplifyCFG] Support hoisting load/store with conditional faulting (Part I) (PR #96878)
Shengchen Kan via llvm-commits
llvm-commits at lists.llvm.org
Sun Aug 4 21:44:39 PDT 2024
KanRobert wrote:
### Summary for comments being addressed
* [x] Not do hoist if it's expensive. (checked by `not_cheap_to_hoist` in hoist-loads-stores-with-cf.ll) https://github.com/llvm/llvm-project/pull/96878#discussion_r1656831523
* [x] Share code for check predictability in `SpeculativelyExecuteBB` with the newly added transform. https://github.com/llvm/llvm-project/pull/96878#issuecomment-2195923264
* [x] Add all/nothing logic so that we don't ever hoist the loads/stores without removing the branch https://github.com/llvm/llvm-project/pull/96878#discussion_r1663692413
* [x] Make sure that this patch doesn't cause crashes or miscompilation on the following benchmarks:
* [ ] Clang stage2 build
* [x] SPEC 2006/2017
* [x] llvm-test-suite
* [x] https://github.com/dtcxzyw/llvm-opt-benchmark
* [x] fuzzers (e.g., csmith)
https://github.com/llvm/llvm-project/pull/96878#issuecomment-2198044038
* [x] Run these three transforms of SimplifyCFG in CodeGen to avoid the awkwardness in middle pass
https://github.com/llvm/llvm-project/pull/96878#issuecomment-2208335348
* [x] Support `load_from_gep` in this PR or **the follow-up patches** (checked by `load_from_gep` in hoist-loads-stores-with-cf.ll) https://github.com/llvm/llvm-project/pull/96878#discussion_r1658169639
* [ ] File **a separate PR** to support conditional load/store of ptrs with +cf https://github.com/llvm/llvm-project/pull/96878#issuecomment-2209436371
* [ ] Extend LLVM IR to support scalar versioned masked.load/store gradually **in the follow-up patches** https://github.com/llvm/llvm-project/pull/96878#issuecomment-2212961381
https://github.com/llvm/llvm-project/pull/96878
More information about the llvm-commits
mailing list