Go to the source code of this file.
|
namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations.
|
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "called-value-propagation" |
◆ runCVP()
Definition at line 375 of file CalledValuePropagation.cpp.
References llvm::CallingConv::C, llvm::canTrackArgumentsInterprocedurally(), llvm::MDBuilder::createCallees(), F, llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::getExistingValueState(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::MarkBlockExecutable(), and llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::Solve().
Referenced by llvm::CalledValuePropagationPass::run().
◆ MaxFunctionsPerValue
The maximum number of functions to track per lattice value.
Once the number of functions a call site can possibly target exceeds this threshold, it's lattice value becomes overdefined. The number of possible lattice values is bounded by Ch(F, M), where F is the number of functions in the module and M is MaxFunctionsPerValue. As such, this value should be kept very small. We likely can't do anything useful for call sites with a large number of possible targets, anyway.