[all-commits] [llvm/llvm-project] 87c86a: [X86, SimplifyCFG] Support hoisting load/store with...

Shengchen Kan via All-commits all-commits at lists.llvm.org
Wed Aug 28 19:43:06 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 87c86aa6b93aea3d1603c1759a17fb6b5ba6e814
      https://github.com/llvm/llvm-project/commit/87c86aa6b93aea3d1603c1759a17fb6b5ba6e814
  Author: Shengchen Kan <shengchen.kan at intel.com>
  Date:   2024-08-29 (Thu, 29 Aug 2024)

  Changed paths:
    M llvm/include/llvm/Transforms/Utils/SimplifyCFGOptions.h
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Passes/PassBuilderPipelines.cpp
    M llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
    M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
    M llvm/test/Other/new-pm-print-pipeline.ll
    A llvm/test/Transforms/PhaseOrdering/X86/masked-memory-ops-with-cf.ll
    A llvm/test/Transforms/SimplifyCFG/X86/hoist-loads-stores-with-cf.ll

  Log Message:
  -----------
  [X86,SimplifyCFG] Support hoisting load/store with conditional faulting (Part I) (#96878)

This is simplifycfg part of
https://github.com/llvm/llvm-project/pull/95515

In this PR, we support hoisting load/store with conditional faulting in
`SimplifyCFGOpt::speculativelyExecuteBB` to eliminate conditional
branches.
This is for cases like
```
void test (int a, int *b) {
  if (a)
   *b = a;
}
``` 

In the following patches, we will support the hoist in
`SimplifyCFGOpt::hoistCommonCodeFromSuccessors`.
That is for cases like
```
void test (int a, int *c, int *d) {
  if (a)
   *c = a;
  else 
   *d = a;
}
```



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list