LLVM 18.0.0git
|
This file provides the interface for LLVM's Scalar Replacement of Aggregates pass. More...
#include "llvm/ADT/MapVector.h"
#include "llvm/ADT/PointerIntPair.h"
#include "llvm/ADT/SetVector.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/IR/PassManager.h"
#include "llvm/IR/ValueHandle.h"
#include <variant>
#include <vector>
Go to the source code of this file.
Classes | |
class | llvm::sroa::SelectHandSpeculativity |
class | llvm::SROAPass |
An optimization pass providing Scalar Replacement of Aggregates. More... | |
Namespaces | |
namespace | llvm |
This is an optimization pass for GlobalISel generic memory operations. | |
namespace | llvm::sroa |
A private "module" namespace for types and utilities used by SROA. | |
Typedefs | |
using | llvm::sroa::PossiblySpeculatableLoad = PointerIntPair< LoadInst *, 2, sroa::SelectHandSpeculativity > |
using | llvm::sroa::UnspeculatableStore = StoreInst * |
using | llvm::sroa::RewriteableMemOp = std::variant< PossiblySpeculatableLoad, UnspeculatableStore > |
using | llvm::sroa::RewriteableMemOps = SmallVector< RewriteableMemOp, 2 > |
Enumerations | |
enum class | llvm::SROAOptions : bool { llvm::ModifyCFG , llvm::PreserveCFG } |
This file provides the interface for LLVM's Scalar Replacement of Aggregates pass.
This pass provides both aggregate splitting and the primary SSA formation used in the compiler.
Definition in file SROA.h.