Skip to content

Commit a0262f5

Browse files
committed
Address review feedback
1 parent 256f055 commit a0262f5

File tree

4 files changed

+16
-17
lines changed

4 files changed

+16
-17
lines changed

clang/lib/CIR/CodeGen/CIRGenBuilder.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ class CIRGenBuilderTy : public cir::CIRBaseBuilderTy {
289289
}
290290
cir::ConstantOp getSInt64(uint64_t c, mlir::Location loc) {
291291
cir::IntType sInt64Ty = getSInt64Ty();
292-
return create<cir::ConstantOp>(loc, cir::IntAttr::get(sInt64Ty, c));
292+
return cir::ConstantOp::create(*this, loc, cir::IntAttr::get(sInt64Ty, c));
293293
}
294294

295295
// Creates constant nullptr for pointer type ty.
@@ -401,7 +401,7 @@ class CIRGenBuilderTy : public cir::CIRBaseBuilderTy {
401401
ptr = createPtrBitcast(ptr, ty);
402402
uint64_t alignment = align ? align->value() : 0;
403403
mlir::IntegerAttr alignAttr = getAlignmentAttr(alignment);
404-
return create<cir::LoadOp>(loc, ptr, /*isDeref=*/false,
404+
return cir::LoadOp::create(*this, loc, ptr, /*isDeref=*/false,
405405
/*isVolatile=*/false, alignAttr,
406406
/*mem_order=*/cir::MemOrderAttr{});
407407
}

clang/lib/CIR/CodeGen/CIRGenClass.cpp

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -339,12 +339,10 @@ static Address applyNonVirtualAndVirtualOffset(
339339

340340
mlir::Value ptr = addr.getPointer();
341341
mlir::Type charPtrType = cgf.cgm.UInt8PtrTy;
342-
mlir::Value charPtr =
343-
cgf.getBuilder().createCast(cir::CastKind::bitcast, ptr, charPtrType);
342+
mlir::Value charPtr = cgf.getBuilder().createBitcast(ptr, charPtrType);
344343
mlir::Value adjusted = cir::PtrStrideOp::create(
345344
cgf.getBuilder(), loc, charPtrType, charPtr, baseOffset);
346-
ptr = cgf.getBuilder().createCast(cir::CastKind::bitcast, adjusted,
347-
ptr.getType());
345+
ptr = cgf.getBuilder().createBitcast(adjusted, ptr.getType());
348346

349347
// If we have a virtual component, the alignment of the result will
350348
// be relative only to the known alignment of that vbase.
@@ -846,13 +844,13 @@ mlir::Value CIRGenFunction::getVTTParameter(GlobalDecl gd, bool forVirtualBase,
846844
if (cgm.getCXXABI().needsVTTParameter(curGD)) {
847845
// A VTT parameter was passed to the constructor, use it.
848846
mlir::Value vtt = loadCXXVTT();
849-
return cgm.getBuilder().createVTTAddrPoint(loc, vtt.getType(), vtt,
847+
return builder.createVTTAddrPoint(loc, vtt.getType(), vtt,
850848
subVTTIndex);
851849
} else {
852850
// We're the complete constructor, so get the VTT by name.
853851
cir::GlobalOp vtt = cgm.getVTables().getAddrOfVTT(rd);
854-
return cgm.getBuilder().createVTTAddrPoint(
855-
loc, cgm.getBuilder().getPointerTo(cgm.VoidPtrTy),
852+
return builder.createVTTAddrPoint(
853+
loc, builder.getPointerTo(cgm.VoidPtrTy),
856854
mlir::FlatSymbolRefAttr::get(vtt.getSymNameAttr()), subVTTIndex);
857855
}
858856
}

clang/lib/CIR/CodeGen/CIRGenFunction.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -638,8 +638,8 @@ class CIRGenFunction : public CIRGenTypeCache {
638638
llvm::iterator_range<CastExpr::path_const_iterator> path,
639639
bool nullCheckValue, SourceLocation loc);
640640

641-
/// GetVTTParameter - Return the VTT parameter that should be passed to a
642-
/// base constructor/destructor with virtual bases.
641+
/// Return the VTT parameter that should be passed to a base
642+
/// constructor/destructor with virtual bases.
643643
/// FIXME: VTTs are Itanium ABI-specific, so the definition should move
644644
/// to ItaniumCXXABI.cpp together with all the references to VTT.
645645
mlir::Value getVTTParameter(GlobalDecl gd, bool forVirtualBase,

clang/lib/CIR/CodeGen/CIRGenItaniumCXXABI.cpp

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -656,26 +656,27 @@ bool CIRGenItaniumCXXABI::isVirtualOffsetNeededForVTableField(
656656
mlir::Value CIRGenItaniumCXXABI::getVirtualBaseClassOffset(
657657
mlir::Location loc, CIRGenFunction &cgf, Address thisAddr,
658658
const CXXRecordDecl *classDecl, const CXXRecordDecl *baseClassDecl) {
659+
CIRGenBuilderTy &builder = cgf.getBuilder();
659660
mlir::Value vtablePtr = cgf.getVTablePtr(loc, thisAddr, classDecl);
660661
mlir::Value vtableBytePtr =
661-
cgf.getBuilder().createBitcast(vtablePtr, cgm.UInt8PtrTy);
662+
builder.createBitcast(vtablePtr, cgm.UInt8PtrTy);
662663
CharUnits vbaseOffsetOffset =
663664
cgm.getItaniumVTableContext().getVirtualBaseOffsetOffset(classDecl,
664665
baseClassDecl);
665666
mlir::Value offsetVal =
666-
cgf.getBuilder().getSInt64(vbaseOffsetOffset.getQuantity(), loc);
667+
builder.getSInt64(vbaseOffsetOffset.getQuantity(), loc);
667668
auto vbaseOffsetPtr =
668-
cir::PtrStrideOp::create(cgf.getBuilder(), loc, cgm.UInt8PtrTy,
669+
cir::PtrStrideOp::create(builder, loc, cgm.UInt8PtrTy,
669670
vtableBytePtr, offsetVal); // vbase.offset.ptr
670671

671672
mlir::Value vbaseOffset;
672673
if (cgm.getItaniumVTableContext().isRelativeLayout()) {
673674
assert(!cir::MissingFeatures::vtableRelativeLayout());
674675
cgm.errorNYI(loc, "getVirtualBaseClassOffset: relative layout");
675676
} else {
676-
mlir::Value offsetPtr = cgf.getBuilder().createBitcast(
677-
vbaseOffsetPtr, cgf.getBuilder().getPointerTo(cgm.PtrDiffTy));
678-
vbaseOffset = cgf.getBuilder().createLoad(
677+
mlir::Value offsetPtr = builder.createBitcast(
678+
vbaseOffsetPtr, builder.getPointerTo(cgm.PtrDiffTy));
679+
vbaseOffset = builder.createLoad(
679680
loc, Address(offsetPtr, cgm.PtrDiffTy,
680681
cgf.getPointerAlign())); // vbase.offset
681682
}

0 commit comments

Comments
 (0)