This revision was landed with ongoing or failed builds. This revision was automatically updated to reflect the committed changes. Closed by commit rG9ac386495d3c: [ConstExpr] Don't create insertvalue expressions (authored by nikic). Herald added a project: clang. Herald added a subscriber: cfe-commits.
Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D128792/new/ https://reviews.llvm.org/D128792 Files: clang/lib/CodeGen/ItaniumCXXABI.cpp llvm/include/llvm/Analysis/TargetFolder.h llvm/include/llvm/IR/ConstantFolder.h llvm/lib/Analysis/ConstantFolding.cpp Index: llvm/lib/Analysis/ConstantFolding.cpp =================================================================== --- llvm/lib/Analysis/ConstantFolding.cpp +++ llvm/lib/Analysis/ConstantFolding.cpp @@ -1093,7 +1093,7 @@ case Instruction::InsertElement: return ConstantExpr::getInsertElement(Ops[0], Ops[1], Ops[2]); case Instruction::InsertValue: - return ConstantExpr::getInsertValue( + return ConstantFoldInsertValueInstruction( Ops[0], Ops[1], cast<InsertValueInst>(InstOrCE)->getIndices()); case Instruction::ShuffleVector: return ConstantExpr::getShuffleVector( Index: llvm/include/llvm/IR/ConstantFolder.h =================================================================== --- llvm/include/llvm/IR/ConstantFolder.h +++ llvm/include/llvm/IR/ConstantFolder.h @@ -123,7 +123,7 @@ auto *CAgg = dyn_cast<Constant>(Agg); auto *CVal = dyn_cast<Constant>(Val); if (CAgg && CVal) - return ConstantExpr::getInsertValue(CAgg, CVal, IdxList); + return ConstantFoldInsertValueInstruction(CAgg, CVal, IdxList); return nullptr; } Index: llvm/include/llvm/Analysis/TargetFolder.h =================================================================== --- llvm/include/llvm/Analysis/TargetFolder.h +++ llvm/include/llvm/Analysis/TargetFolder.h @@ -133,7 +133,7 @@ auto *CAgg = dyn_cast<Constant>(Agg); auto *CVal = dyn_cast<Constant>(Val); if (CAgg && CVal) - return Fold(ConstantExpr::getInsertValue(CAgg, CVal, IdxList)); + return ConstantFoldInsertValueInstruction(CAgg, CVal, IdxList); return nullptr; } Index: clang/lib/CodeGen/ItaniumCXXABI.cpp =================================================================== --- clang/lib/CodeGen/ItaniumCXXABI.cpp +++ clang/lib/CodeGen/ItaniumCXXABI.cpp @@ -962,7 +962,9 @@ else dstAdj = llvm::ConstantExpr::getNSWAdd(srcAdj, adj); - return llvm::ConstantExpr::getInsertValue(src, dstAdj, 1); + llvm::Constant *res = ConstantFoldInsertValueInstruction(src, dstAdj, 1); + assert(res != nullptr && "Folding must succeed"); + return res; } llvm::Constant *
Index: llvm/lib/Analysis/ConstantFolding.cpp =================================================================== --- llvm/lib/Analysis/ConstantFolding.cpp +++ llvm/lib/Analysis/ConstantFolding.cpp @@ -1093,7 +1093,7 @@ case Instruction::InsertElement: return ConstantExpr::getInsertElement(Ops[0], Ops[1], Ops[2]); case Instruction::InsertValue: - return ConstantExpr::getInsertValue( + return ConstantFoldInsertValueInstruction( Ops[0], Ops[1], cast<InsertValueInst>(InstOrCE)->getIndices()); case Instruction::ShuffleVector: return ConstantExpr::getShuffleVector( Index: llvm/include/llvm/IR/ConstantFolder.h =================================================================== --- llvm/include/llvm/IR/ConstantFolder.h +++ llvm/include/llvm/IR/ConstantFolder.h @@ -123,7 +123,7 @@ auto *CAgg = dyn_cast<Constant>(Agg); auto *CVal = dyn_cast<Constant>(Val); if (CAgg && CVal) - return ConstantExpr::getInsertValue(CAgg, CVal, IdxList); + return ConstantFoldInsertValueInstruction(CAgg, CVal, IdxList); return nullptr; } Index: llvm/include/llvm/Analysis/TargetFolder.h =================================================================== --- llvm/include/llvm/Analysis/TargetFolder.h +++ llvm/include/llvm/Analysis/TargetFolder.h @@ -133,7 +133,7 @@ auto *CAgg = dyn_cast<Constant>(Agg); auto *CVal = dyn_cast<Constant>(Val); if (CAgg && CVal) - return Fold(ConstantExpr::getInsertValue(CAgg, CVal, IdxList)); + return ConstantFoldInsertValueInstruction(CAgg, CVal, IdxList); return nullptr; } Index: clang/lib/CodeGen/ItaniumCXXABI.cpp =================================================================== --- clang/lib/CodeGen/ItaniumCXXABI.cpp +++ clang/lib/CodeGen/ItaniumCXXABI.cpp @@ -962,7 +962,9 @@ else dstAdj = llvm::ConstantExpr::getNSWAdd(srcAdj, adj); - return llvm::ConstantExpr::getInsertValue(src, dstAdj, 1); + llvm::Constant *res = ConstantFoldInsertValueInstruction(src, dstAdj, 1); + assert(res != nullptr && "Folding must succeed"); + return res; } llvm::Constant *
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits