mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-17 21:29:20 +00:00
This file provides the function DemoteRegToStack(), which takes a
virtual register computed by an Instruction& X and replaces it with a slot in the stack frame, allocated via alloca. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4963 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
e12c74c07b
commit
1690f1d77d
21
include/llvm/Transforms/Utils/DemoteRegToStack.h
Normal file
21
include/llvm/Transforms/Utils/DemoteRegToStack.h
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
//===- DemoteRegToStack.h - Move a virtual reg. to stack --------*- C++ -*-===//
|
||||||
|
// This file provides the function:
|
||||||
|
// AllocaInst* DemoteRegToStack(Instruction& X):
|
||||||
|
//
|
||||||
|
// This function takes a virtual register computed by an
|
||||||
|
// Instruction& X and replaces it with a slot in the stack frame,
|
||||||
|
// allocated via alloca. It has to:
|
||||||
|
// (1) Identify all Phi operations that have X as an operand and
|
||||||
|
// transitively other Phis that use such Phis;
|
||||||
|
// (2) Store all values merged with X via Phi operations to the stack slot;
|
||||||
|
// (3) Load the value from the stack slot just before any use of X or any
|
||||||
|
// of the Phis that were eliminated; and
|
||||||
|
// (4) Delete X and all the Phis, which should all now be dead.
|
||||||
|
//
|
||||||
|
// Returns the pointer to the alloca inserted to create a stack slot for X.
|
||||||
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class Instruction;
|
||||||
|
class AllocaInst;
|
||||||
|
|
||||||
|
extern AllocaInst* DemoteRegToStack(Instruction& X);
|
Loading…
Reference in New Issue
Block a user