[llvm] d202bc7 - Revert "Revert "InstSimplify: Remove null parent checks""
Arthur Eubanks via llvm-commits
llvm-commits at lists.llvm.org
Fri Jun 16 13:53:57 PDT 2023
Author: Arthur Eubanks
Date: 2023-06-16T13:53:31-07:00
New Revision: d202bc7235515f678ab89af48c67fc4d415c27fa
URL: https://github.com/llvm/llvm-project/commit/d202bc7235515f678ab89af48c67fc4d415c27fa
DIFF: https://github.com/llvm/llvm-project/commit/d202bc7235515f678ab89af48c67fc4d415c27fa.diff
LOG: Revert "Revert "InstSimplify: Remove null parent checks""
This reverts commit 935c8b6f3a4dda0ff881ed86faaad9fe5b276d70.
Going to fix forward size regression instead due to more dependent patches needing to be reverted otherwise.
Added:
Modified:
llvm/lib/Analysis/InstructionSimplify.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Analysis/InstructionSimplify.cpp b/llvm/lib/Analysis/InstructionSimplify.cpp
index 13a4553b702d5..616873f87f313 100644
--- a/llvm/lib/Analysis/InstructionSimplify.cpp
+++ b/llvm/lib/Analysis/InstructionSimplify.cpp
@@ -218,12 +218,6 @@ static bool valueDominatesPHI(Value *V, PHINode *P, const DominatorTree *DT) {
// Arguments and constants dominate all instructions.
return true;
- // If we are processing instructions (and/or basic blocks) that have not been
- // fully added to a function, the parent nodes may still be null. Simply
- // return the conservative answer in these cases.
- if (!I->getParent() || !P->getParent() || !I->getFunction())
- return false;
-
// If we have a DominatorTree then do a precise test.
if (DT)
return DT->dominates(I, P);
@@ -2638,7 +2632,7 @@ static bool isAllocDisjoint(const Value *V) {
// that might be resolve lazily to symbols in another dynamically-loaded
// library (and, thus, could be malloc'ed by the implementation).
if (const AllocaInst *AI = dyn_cast<AllocaInst>(V))
- return AI->getParent() && AI->getFunction() && AI->isStaticAlloca();
+ return AI->isStaticAlloca();
if (const GlobalValue *GV = dyn_cast<GlobalValue>(V))
return (GV->hasLocalLinkage() || GV->hasHiddenVisibility() ||
GV->hasProtectedVisibility() || GV->hasGlobalUnnamedAddr()) &&
@@ -3669,7 +3663,7 @@ static Value *simplifyICmpWithDominatingAssume(CmpInst::Predicate Predicate,
Value *LHS, Value *RHS,
const SimplifyQuery &Q) {
// Gracefully handle instructions that have not been inserted yet.
- if (!Q.AC || !Q.CxtI || !Q.CxtI->getParent())
+ if (!Q.AC || !Q.CxtI)
return nullptr;
for (Value *AssumeBaseOp : {LHS, RHS}) {
@@ -6475,9 +6469,6 @@ static Value *simplifyIntrinsic(CallBase *Call, Value *Callee,
if (!NumOperands) {
switch (IID) {
case Intrinsic::vscale: {
- // Call may not be inserted into the IR yet at point of calling simplify.
- if (!Call->getParent() || !Call->getParent()->getParent())
- return nullptr;
auto Attr = Call->getFunction()->getFnAttribute(Attribute::VScaleRange);
if (!Attr.isValid())
return nullptr;
@@ -6925,10 +6916,7 @@ static bool replaceAndRecursivelySimplifyImpl(
// Replace the instruction with its simplified value.
I->replaceAllUsesWith(SimpleV);
- // Gracefully handle edge cases where the instruction is not wired into any
- // parent block.
- if (I->getParent() && !I->isEHPad() && !I->isTerminator() &&
- !I->mayHaveSideEffects())
+ if (!I->isEHPad() && !I->isTerminator() && !I->mayHaveSideEffects())
I->eraseFromParent();
} else {
Worklist.insert(I);
@@ -6957,10 +6945,7 @@ static bool replaceAndRecursivelySimplifyImpl(
// Replace the instruction with its simplified value.
I->replaceAllUsesWith(SimpleV);
- // Gracefully handle edge cases where the instruction is not wired into any
- // parent block.
- if (I->getParent() && !I->isEHPad() && !I->isTerminator() &&
- !I->mayHaveSideEffects())
+ if (!I->isEHPad() && !I->isTerminator() && !I->mayHaveSideEffects())
I->eraseFromParent();
}
return Simplified;
More information about the llvm-commits
mailing list