Demote an instruction's virtual register to a stack slot.
Declared in <llvm/Transforms/Utils/Local.h>
AllocaInst*
DemoteRegToStack(
Instruction& X,
bool VolatileLoads = false,
std::optional<BasicBlock::iterator> AllocaPoint = std::nullopt);
This function takes a virtual register computed by an Instruction and replaces it with a slot in the stack frame, allocated via alloca. This allows the CFG to be changed around without fear of invalidating the SSA information for the value. It returns the pointer to the alloca inserted to create a stack slot for X.
Pointer to the alloca inserted for the stack slot.
| Name | Description |
|---|---|
| X | Instruction whose value is demoted to the stack. |
| VolatileLoads | Whether loads of the stack slot should be volatile. |
| AllocaPoint | Optional insertion point for the alloca. |