mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
[C++11] Make this interface accept const Use pointers and use override
to ensure we don't mess up any of the overrides. Necessary for cleaning up the Value use iterators and enabling range-based traversing of use lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@202958 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -28,7 +28,7 @@ using namespace llvm;
|
||||
|
||||
CaptureTracker::~CaptureTracker() {}
|
||||
|
||||
bool CaptureTracker::shouldExplore(Use *U) { return true; }
|
||||
bool CaptureTracker::shouldExplore(const Use *U) { return true; }
|
||||
|
||||
namespace {
|
||||
struct SimpleCaptureTracker : public CaptureTracker {
|
||||
@@ -37,7 +37,7 @@ namespace {
|
||||
|
||||
void tooManyUses() override { Captured = true; }
|
||||
|
||||
bool captured(Use *U) override {
|
||||
bool captured(const Use *U) override {
|
||||
if (isa<ReturnInst>(U->getUser()) && !ReturnCaptures)
|
||||
return false;
|
||||
|
||||
@@ -81,8 +81,8 @@ static int const Threshold = 20;
|
||||
|
||||
void llvm::PointerMayBeCaptured(const Value *V, CaptureTracker *Tracker) {
|
||||
assert(V->getType()->isPointerTy() && "Capture is for pointers only!");
|
||||
SmallVector<Use*, Threshold> Worklist;
|
||||
SmallSet<Use*, Threshold> Visited;
|
||||
SmallVector<const Use *, Threshold> Worklist;
|
||||
SmallSet<const Use *, Threshold> Visited;
|
||||
int Count = 0;
|
||||
|
||||
for (Value::const_use_iterator UI = V->use_begin(), UE = V->use_end();
|
||||
@@ -99,7 +99,7 @@ void llvm::PointerMayBeCaptured(const Value *V, CaptureTracker *Tracker) {
|
||||
}
|
||||
|
||||
while (!Worklist.empty()) {
|
||||
Use *U = Worklist.pop_back_val();
|
||||
const Use *U = Worklist.pop_back_val();
|
||||
Instruction *I = cast<Instruction>(U->getUser());
|
||||
V = U->get();
|
||||
|
||||
|
Reference in New Issue
Block a user