mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
[unroll] Replace a linear time check for no uses with a constant time
check. Also hoist this into the enqueue process as it is faster even than testing the worklist set, we should just directly filter these out much like we filter out constants and such. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@229056 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -519,7 +519,8 @@ public:
|
||||
auto EnqueueOperands = [&](Instruction &I) {
|
||||
for (auto *Op : I.operand_values())
|
||||
if (auto *OpI = dyn_cast<Instruction>(Op))
|
||||
Worklist.insert(OpI);
|
||||
if (!OpI->use_empty())
|
||||
Worklist.insert(OpI);
|
||||
};
|
||||
|
||||
// Start by initializing worklist with simplified instructions.
|
||||
@@ -541,8 +542,6 @@ public:
|
||||
continue;
|
||||
if (DeadInstructions.count(I))
|
||||
continue;
|
||||
if (I->getNumUses() == 0)
|
||||
continue;
|
||||
bool AllUsersFolded = true;
|
||||
for (User *U : I->users()) {
|
||||
Instruction *UI = dyn_cast<Instruction>(U);
|
||||
|
Reference in New Issue
Block a user