Skip to content

Commit

Permalink
[NFC][Opaque Pointer][clang] Remove code within ifndef INTEL_SYCL_OPA…
Browse files Browse the repository at this point in the history
…QUEPOINTER_READY (#11059)

- Remove code in INTEL_SYCL_OPAQUEPOINTER_READY==0
- clang-format

This should be NFC, as INTEL_SYCL_OPAQUEPOINTER_READY is always 1 since
#10888 .
  • Loading branch information
jsji authored Sep 6, 2023
1 parent a92bbec commit cb34ea9
Show file tree
Hide file tree
Showing 52 changed files with 35 additions and 2,285 deletions.
4 changes: 0 additions & 4 deletions clang/include/clang/Basic/CodeGenOptions.def
Original file line number Diff line number Diff line change
Expand Up @@ -519,10 +519,6 @@ ENUM_CODEGENOPT(ZeroCallUsedRegs, llvm::ZeroCallUsedRegs::ZeroCallUsedRegsKind,
/// checksum calculations or not.
CODEGENOPT(SYCLUseMainFileName, 1, 0)

#ifndef INTEL_SYCL_OPAQUEPOINTER_READY
/// Whether to use opaque pointers.
CODEGENOPT(OpaquePointers, 1, 0)
#endif // INTEL_SYCL_OPAQUEPOINTER_READY

/// Modify C++ ABI to returning `this` pointer from constructors and
/// non-deleting destructors. (No effect on Microsoft ABI.)
Expand Down
9 changes: 0 additions & 9 deletions clang/include/clang/Driver/Options.td
Original file line number Diff line number Diff line change
Expand Up @@ -7236,15 +7236,6 @@ defm enable_noundef_analysis : BoolOption<"",
PosFlag<SetTrue, [], [ClangOption], "Enable">,
NegFlag<SetFalse, [], [ClangOption], "Disable">,
BothFlags<[], [ClangOption], " analyzing function argument and return types for mandatory definedness">>;
#ifndef INTEL_SYCL_OPAQUEPOINTER_READY
defm opaque_pointers : BoolOption<"",
"opaque-pointers",
CodeGenOpts<"OpaquePointers">,
DefaultTrue,
PosFlag<SetTrue, [], [ClangOption], "Enable">,
NegFlag<SetFalse, [], [ClangOption], "Disable">,
BothFlags<[], [ClangOption], " opaque pointers">>;
#endif // INTEL_SYCL_OPAQUEPOINTER_READY
def discard_value_names : Flag<["-"], "discard-value-names">,
HelpText<"Discard value names in LLVM IR">,
MarshallingInfoFlag<CodeGenOpts<"DiscardValueNames">>;
Expand Down
9 changes: 0 additions & 9 deletions clang/lib/CodeGen/ABIInfoImpl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -170,11 +170,7 @@ CodeGen::emitVoidPtrDirectVAArg(CodeGenFunction &CGF, Address VAListAddr,
// Cast the element type to i8* if necessary. Some platforms define
// va_list as a struct containing an i8* instead of just an i8*.
if (VAListAddr.getElementType() != CGF.Int8PtrTy)
#ifndef INTEL_SYCL_OPAQUEPOINTER_READY
VAListAddr = CGF.Builder.CreateElementBitCast(VAListAddr, CGF.Int8PtrTy);
#else
VAListAddr = VAListAddr.withElementType(CGF.Int8PtrTy);
#endif

llvm::Value *Ptr = CGF.Builder.CreateLoad(VAListAddr, "argp.cur");

Expand All @@ -200,12 +196,7 @@ CodeGen::emitVoidPtrDirectVAArg(CodeGenFunction &CGF, Address VAListAddr,
Addr = CGF.Builder.CreateConstInBoundsByteGEP(Addr, SlotSize - DirectSize);
}

#ifndef INTEL_SYCL_OPAQUEPOINTER_READY
Addr = CGF.Builder.CreateElementBitCast(Addr, DirectTy);
return Addr;
#else
return Addr.withElementType(DirectTy);
#endif
}

Address CodeGen::emitVoidPtrVAArg(CodeGenFunction &CGF, Address VAListAddr,
Expand Down
75 changes: 0 additions & 75 deletions clang/lib/CodeGen/CGAtomic.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,6 @@ namespace {
AtomicSizeInBits = C.toBits(
C.toCharUnitsFromBits(Offset + OrigBFI.Size + C.getCharWidth() - 1)
.alignTo(lvalue.getAlignment()));
#ifdef INTEL_SYCL_OPAQUEPOINTER_READY
llvm::Value *BitFieldPtr = lvalue.getBitFieldPointer();
auto OffsetInChars =
(C.toCharUnitsFromBits(OrigBFI.Offset) / lvalue.getAlignment()) *
Expand All @@ -90,33 +89,15 @@ namespace {
StoragePtr = CGF.Builder.CreateAddrSpaceCast(
StoragePtr, llvm::PointerType::getUnqual(CGF.getLLVMContext()),
"atomic_bitfield_base");
#else // INTEL_SYCL_OPAQUEPOINTER_READY
auto VoidPtrAddr = CGF.EmitCastToVoidPtr(lvalue.getBitFieldPointer());
auto OffsetInChars =
(C.toCharUnitsFromBits(OrigBFI.Offset) / lvalue.getAlignment()) *
lvalue.getAlignment();
VoidPtrAddr = CGF.Builder.CreateConstGEP1_64(
CGF.Int8Ty, VoidPtrAddr, OffsetInChars.getQuantity());
llvm::Type *IntTy = CGF.Builder.getIntNTy(AtomicSizeInBits);
auto Addr = CGF.Builder.CreatePointerBitCastOrAddrSpaceCast(

VoidPtrAddr, IntTy->getPointerTo(), "atomic_bitfield_base");
#endif // INTEL_SYCL_OPAQUEPOINTER_READY
BFI = OrigBFI;
BFI.Offset = Offset;
BFI.StorageSize = AtomicSizeInBits;
BFI.StorageOffset += OffsetInChars;
#ifdef INTEL_SYCL_OPAQUEPOINTER_READY
llvm::Type *StorageTy = CGF.Builder.getIntNTy(AtomicSizeInBits);
LVal = LValue::MakeBitfield(
Address(StoragePtr, StorageTy, lvalue.getAlignment()), BFI,
lvalue.getType(), lvalue.getBaseInfo(), lvalue.getTBAAInfo());

#else
LVal = LValue::MakeBitfield(Address(Addr, IntTy, lvalue.getAlignment()),
BFI, lvalue.getType(), lvalue.getBaseInfo(),
lvalue.getTBAAInfo());
#endif // INTEL_SYCL_OPAQUEPOINTER_READY
AtomicTy = C.getIntTypeForBitwidth(AtomicSizeInBits, OrigBFI.IsSigned);
if (AtomicTy.isNull()) {
llvm::APInt Size(
Expand Down Expand Up @@ -817,25 +798,15 @@ AddDirectArgument(CodeGenFunction &CGF, CallArgList &Args,
ValTy =
CGF.getContext().getIntTypeForBitwidth(SizeInBits, /*Signed=*/false);
llvm::Type *ITy = llvm::IntegerType::get(CGF.getLLVMContext(), SizeInBits);
#ifdef INTEL_SYCL_OPAQUEPOINTER_READY
Address Ptr = Address(Val, ITy, Align);
#else // INTEL_SYCL_OPAQUEPOINTER_READY
Address Ptr = Address(CGF.Builder.CreateBitCast(Val, ITy->getPointerTo()),
ITy, Align);
#endif // INTEL_SYCL_OPAQUEPOINTER_READY
Val = CGF.EmitLoadOfScalar(Ptr, false,
CGF.getContext().getPointerType(ValTy),
Loc);
// Coerce the value into an appropriately sized integer type.
Args.add(RValue::get(Val), ValTy);
} else {
// Non-optimized functions always take a reference.
#ifdef INTEL_SYCL_OPAQUEPOINTER_READY
Args.add(RValue::get(Val), CGF.getContext().VoidPtrTy);
#else
Args.add(RValue::get(CGF.EmitCastToVoidPtr(Val)),
CGF.getContext().VoidPtrTy);
#endif // INTEL_SYCL_OPAQUEPOINTER_READY
}
}

Expand Down Expand Up @@ -1126,26 +1097,15 @@ RValue CodeGenFunction::EmitAtomicExpr(AtomicExpr *E) {
if (AS == LangAS::opencl_generic)
return V;
auto DestAS = getContext().getTargetAddressSpace(LangAS::opencl_generic);
#ifdef INTEL_SYCL_OPAQUEPOINTER_READY
auto *DestType = llvm::PointerType::get(getLLVMContext(), DestAS);
#else
auto T = llvm::cast<llvm::PointerType>(V->getType());
auto *DestType = llvm::PointerType::getWithSamePointeeType(T, DestAS);
#endif // INTEL_SYCL_OPAQUEPOINTER_READY

return getTargetHooks().performAddrSpaceCast(
*this, V, AS, LangAS::opencl_generic, DestType, false);
};

#ifdef INTEL_SYCL_OPAQUEPOINTER_READY
Args.add(RValue::get(CastToGenericAddrSpace(Ptr.getPointer(),
E->getPtr()->getType())),
getContext().VoidPtrTy);
#else
Args.add(RValue::get(CastToGenericAddrSpace(
EmitCastToVoidPtr(Ptr.getPointer()), E->getPtr()->getType())),
getContext().VoidPtrTy);
#endif // INTEL_SYCL_OPAQUEPOINTER_READY

std::string LibCallName;
QualType LoweredMemTy =
Expand Down Expand Up @@ -1177,17 +1137,10 @@ RValue CodeGenFunction::EmitAtomicExpr(AtomicExpr *E) {
LibCallName = "__atomic_compare_exchange";
RetTy = getContext().BoolTy;
HaveRetTy = true;
#ifdef INTEL_SYCL_OPAQUEPOINTER_READY
Args.add(RValue::get(CastToGenericAddrSpace(Val1.getPointer(),
E->getVal1()->getType())),
getContext().VoidPtrTy);

#else
Args.add(
RValue::get(CastToGenericAddrSpace(
EmitCastToVoidPtr(Val1.getPointer()), E->getVal1()->getType())),
getContext().VoidPtrTy);
#endif // INTEL_SYCL_OPAQUEPOINTER_READY
AddDirectArgument(*this, Args, UseOptimizedLibcall, Val2.getPointer(),
MemTy, E->getExprLoc(), TInfo.Width);
Args.add(RValue::get(Order), getContext().IntTy);
Expand Down Expand Up @@ -1349,12 +1302,7 @@ RValue CodeGenFunction::EmitAtomicExpr(AtomicExpr *E) {
} else {
// Value is returned through parameter before the order.
RetTy = getContext().VoidTy;
#ifdef INTEL_SYCL_OPAQUEPOINTER_READY
Args.add(RValue::get(Dest.getPointer()), getContext().VoidPtrTy);
#else
Args.add(RValue::get(EmitCastToVoidPtr(Dest.getPointer())),
getContext().VoidPtrTy);
#endif // INTEL_SYCL_OPAQUEPOINTER_READY
}
}
// order is always the last parameter
Expand Down Expand Up @@ -1622,15 +1570,8 @@ void AtomicInfo::EmitAtomicLoadLibcall(llvm::Value *AddForLoaded,
// void __atomic_load(size_t size, void *mem, void *return, int order);
CallArgList Args;
Args.add(RValue::get(getAtomicSizeValue()), CGF.getContext().getSizeType());
#ifdef INTEL_SYCL_OPAQUEPOINTER_READY
Args.add(RValue::get(getAtomicPointer()), CGF.getContext().VoidPtrTy);
Args.add(RValue::get(AddForLoaded), CGF.getContext().VoidPtrTy);
#else
Args.add(RValue::get(CGF.EmitCastToVoidPtr(getAtomicPointer())),
CGF.getContext().VoidPtrTy);
Args.add(RValue::get(CGF.EmitCastToVoidPtr(AddForLoaded)),
CGF.getContext().VoidPtrTy);
#endif // INTEL_SYCL_OPAQUEPOINTER_READY
Args.add(
RValue::get(llvm::ConstantInt::get(CGF.IntTy, (int)llvm::toCABI(AO))),
CGF.getContext().IntTy);
Expand Down Expand Up @@ -1824,18 +1765,9 @@ AtomicInfo::EmitAtomicCompareExchangeLibcall(llvm::Value *ExpectedAddr,
// void *desired, int success, int failure);
CallArgList Args;
Args.add(RValue::get(getAtomicSizeValue()), CGF.getContext().getSizeType());
#ifdef INTEL_SYCL_OPAQUEPOINTER_READY
Args.add(RValue::get(getAtomicPointer()), CGF.getContext().VoidPtrTy);
Args.add(RValue::get(ExpectedAddr), CGF.getContext().VoidPtrTy);
Args.add(RValue::get(DesiredAddr), CGF.getContext().VoidPtrTy);
#else
Args.add(RValue::get(CGF.EmitCastToVoidPtr(getAtomicPointer())),
CGF.getContext().VoidPtrTy);
Args.add(RValue::get(CGF.EmitCastToVoidPtr(ExpectedAddr)),
CGF.getContext().VoidPtrTy);
Args.add(RValue::get(CGF.EmitCastToVoidPtr(DesiredAddr)),
CGF.getContext().VoidPtrTy);
#endif // INTEL_SYCL_OPAQUEPOINTER_READY
Args.add(RValue::get(
llvm::ConstantInt::get(CGF.IntTy, (int)llvm::toCABI(Success))),
CGF.getContext().IntTy);
Expand Down Expand Up @@ -2138,15 +2070,8 @@ void CodeGenFunction::EmitAtomicStore(RValue rvalue, LValue dest,
CallArgList args;
args.add(RValue::get(atomics.getAtomicSizeValue()),
getContext().getSizeType());
#ifdef INTEL_SYCL_OPAQUEPOINTER_READY
args.add(RValue::get(atomics.getAtomicPointer()), getContext().VoidPtrTy);
args.add(RValue::get(srcAddr.getPointer()), getContext().VoidPtrTy);
#else
args.add(RValue::get(EmitCastToVoidPtr(atomics.getAtomicPointer())),
getContext().VoidPtrTy);
args.add(RValue::get(EmitCastToVoidPtr(srcAddr.getPointer())),
getContext().VoidPtrTy);
#endif // INTEL_SYCL_OPAQUEPOINTER_READY
args.add(
RValue::get(llvm::ConstantInt::get(IntTy, (int)llvm::toCABI(AO))),
getContext().IntTy);
Expand Down
Loading

0 comments on commit cb34ea9

Please sign in to comment.