Skip to content

Commit 8cbd07e

Browse files
authored
[TypeAnalysis] create gep with type (rust-lang#231)
1 parent 43c0a9c commit 8cbd07e

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

enzyme/Enzyme/TypeAnalysis/TypeAnalysis.cpp

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -226,8 +226,8 @@ getConstantAnalysis(Constant *Val, TypeAnalyzer &TA,
226226
ConstantInt::get(Type::getInt32Ty(Val->getContext()), i),
227227
};
228228
auto g2 = GetElementPtrInst::Create(
229-
nullptr, UndefValue::get(PointerType::getUnqual(Val->getType())),
230-
vec);
229+
Val->getType(),
230+
UndefValue::get(PointerType::getUnqual(Val->getType())), vec);
231231
#if LLVM_VERSION_MAJOR > 6
232232
APInt ai(DL.getIndexSizeInBits(g2->getPointerAddressSpace()), 0);
233233
#else
@@ -273,8 +273,8 @@ getConstantAnalysis(Constant *Val, TypeAnalyzer &TA,
273273
ConstantInt::get(Type::getInt32Ty(Val->getContext()), i),
274274
};
275275
auto g2 = GetElementPtrInst::Create(
276-
nullptr, UndefValue::get(PointerType::getUnqual(Val->getType())),
277-
vec);
276+
Val->getType(),
277+
UndefValue::get(PointerType::getUnqual(Val->getType())), vec);
278278
#if LLVM_VERSION_MAJOR > 6
279279
APInt ai(DL.getIndexSizeInBits(g2->getPointerAddressSpace()), 0);
280280
#else
@@ -1188,7 +1188,8 @@ void TypeAnalyzer::visitGetElementPtrInst(GetElementPtrInst &gep) {
11881188
auto pointerData0 = pointerAnalysis.Data0();
11891189

11901190
for (auto vec : getSet(idnext, idnext.size() - 1)) {
1191-
auto g2 = GetElementPtrInst::Create(nullptr, gep.getOperand(0), vec);
1191+
auto g2 = GetElementPtrInst::Create(gep.getSourceElementType(),
1192+
gep.getOperand(0), vec);
11921193
#if LLVM_VERSION_MAJOR > 6
11931194
APInt ai(DL.getIndexSizeInBits(gep.getPointerAddressSpace()), 0);
11941195
#else
@@ -1702,7 +1703,7 @@ void TypeAnalyzer::visitShuffleVectorInst(ShuffleVectorInst &I) {
17021703
ConstantInt::get(Type::getInt64Ty(I.getContext()), i)};
17031704
auto ud =
17041705
UndefValue::get(PointerType::getUnqual(I.getOperand(0)->getType()));
1705-
auto g2 = GetElementPtrInst::Create(nullptr, ud, vec);
1706+
auto g2 = GetElementPtrInst::Create(I.getOperand(0)->getType(), ud, vec);
17061707
#if LLVM_VERSION_MAJOR > 6
17071708
APInt ai(dl.getIndexSizeInBits(g2->getPointerAddressSpace()), 0);
17081709
#else
@@ -1738,7 +1739,8 @@ void TypeAnalyzer::visitShuffleVectorInst(ShuffleVectorInst &I) {
17381739
ConstantInt::get(Type::getInt64Ty(I.getContext()), mask[i])};
17391740
auto ud =
17401741
UndefValue::get(PointerType::getUnqual(I.getOperand(0)->getType()));
1741-
auto g2 = GetElementPtrInst::Create(nullptr, ud, vec);
1742+
auto g2 =
1743+
GetElementPtrInst::Create(I.getOperand(0)->getType(), ud, vec);
17421744
#if LLVM_VERSION_MAJOR > 6
17431745
APInt ai(dl.getIndexSizeInBits(g2->getPointerAddressSpace()), 0);
17441746
#else
@@ -1770,7 +1772,8 @@ void TypeAnalyzer::visitShuffleVectorInst(ShuffleVectorInst &I) {
17701772
mask[i] - numFirst)};
17711773
auto ud =
17721774
UndefValue::get(PointerType::getUnqual(I.getOperand(0)->getType()));
1773-
auto g2 = GetElementPtrInst::Create(nullptr, ud, vec);
1775+
auto g2 =
1776+
GetElementPtrInst::Create(I.getOperand(0)->getType(), ud, vec);
17741777
#if LLVM_VERSION_MAJOR > 6
17751778
APInt ai(dl.getIndexSizeInBits(g2->getPointerAddressSpace()), 0);
17761779
#else
@@ -1817,7 +1820,7 @@ void TypeAnalyzer::visitExtractValueInst(ExtractValueInst &I) {
18171820
vec.push_back(ConstantInt::get(Type::getInt32Ty(I.getContext()), ind));
18181821
}
18191822
auto ud = UndefValue::get(PointerType::getUnqual(I.getOperand(0)->getType()));
1820-
auto g2 = GetElementPtrInst::Create(nullptr, ud, vec);
1823+
auto g2 = GetElementPtrInst::Create(I.getOperand(0)->getType(), ud, vec);
18211824
#if LLVM_VERSION_MAJOR > 6
18221825
APInt ai(dl.getIndexSizeInBits(g2->getPointerAddressSpace()), 0);
18231826
#else
@@ -1851,7 +1854,7 @@ void TypeAnalyzer::visitInsertValueInst(InsertValueInst &I) {
18511854
vec.push_back(ConstantInt::get(Type::getInt32Ty(I.getContext()), ind));
18521855
}
18531856
auto ud = UndefValue::get(PointerType::getUnqual(I.getOperand(0)->getType()));
1854-
auto g2 = GetElementPtrInst::Create(nullptr, ud, vec);
1857+
auto g2 = GetElementPtrInst::Create(I.getOperand(0)->getType(), ud, vec);
18551858
#if LLVM_VERSION_MAJOR > 6
18561859
APInt ai(dl.getIndexSizeInBits(g2->getPointerAddressSpace()), 0);
18571860
#else

0 commit comments

Comments
 (0)