LLVM  17.0.0git
Classes | Namespaces | Typedefs | Enumerations
SROA.h File Reference
#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 <vector>
Include dependency graph for SROA.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


class  llvm::LLVM_LIBRARY_VISIBILITY::SelectHandSpeculativity
class  llvm::SROAPass
 An optimization pass providing Scalar Replacement of Aggregates. More...


 This is an optimization pass for GlobalISel generic memory operations.
 A private "module" namespace for types and utilities used by GVN.


using llvm::LLVM_LIBRARY_VISIBILITY::PossiblySpeculatableLoad = PointerIntPair< LoadInst *, 2, sroa::SelectHandSpeculativity >
using llvm::LLVM_LIBRARY_VISIBILITY::UnspeculatableStore = StoreInst *
using llvm::LLVM_LIBRARY_VISIBILITY::RewriteableMemOp = std::variant< PossiblySpeculatableLoad, UnspeculatableStore >
using llvm::LLVM_LIBRARY_VISIBILITY::RewriteableMemOps = SmallVector< RewriteableMemOp, 2 >


enum  llvm::SROAOptions : bool { llvm::SROAOptions::ModifyCFG, llvm::SROAOptions::PreserveCFG }

Detailed Description

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.