6666#include "llvm/Support/ScopedPrinter.h"
6767#include "llvm/TargetParser/AArch64TargetParser.h"
6868#include "llvm/TargetParser/RISCVISAInfo.h"
69- #include "llvm/TargetParser/RISCVTargetParser.h"
7069#include "llvm/TargetParser/X86TargetParser.h"
7170#include <optional>
7271#include <utility>
@@ -22694,47 +22693,6 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID,
2269422693 return nullptr;
2269522694}
2269622695
22697- Value *CodeGenFunction::EmitRISCVCpuIs(const CallExpr *E) {
22698- const Expr *CPUExpr = E->getArg(0)->IgnoreParenCasts();
22699- StringRef CPUStr = cast<clang::StringLiteral>(CPUExpr)->getString();
22700- return EmitRISCVCpuIs(CPUStr);
22701- }
22702-
22703- Value *CodeGenFunction::EmitRISCVCpuIs(StringRef CPUStr) {
22704- llvm::Type *Int32Ty = Builder.getInt32Ty();
22705- llvm::Type *Int64Ty = Builder.getInt64Ty();
22706- llvm::StructType *StructTy = llvm::StructType::get(Int32Ty, Int64Ty, Int64Ty);
22707- llvm::Constant *RISCVCPUModel =
22708- CGM.CreateRuntimeVariable(StructTy, "__riscv_cpu_model");
22709- cast<llvm::GlobalValue>(RISCVCPUModel)->setDSOLocal(true);
22710-
22711- auto loadRISCVCPUID = [&](unsigned Index) {
22712- Value *Ptr = Builder.CreateStructGEP(StructTy, RISCVCPUModel, Index);
22713- Value *CPUID = Builder.CreateAlignedLoad(StructTy->getTypeAtIndex(Index),
22714- Ptr, llvm::MaybeAlign());
22715- return CPUID;
22716- };
22717-
22718- const llvm::RISCV::CPUModel Model = llvm::RISCV::getCPUModel(CPUStr);
22719-
22720- // Compare mvendorid.
22721- Value *VendorID = loadRISCVCPUID(0);
22722- Value *Result =
22723- Builder.CreateICmpEQ(VendorID, Builder.getInt32(Model.MVendorID));
22724-
22725- // Compare marchid.
22726- Value *ArchID = loadRISCVCPUID(1);
22727- Result = Builder.CreateAnd(
22728- Result, Builder.CreateICmpEQ(ArchID, Builder.getInt64(Model.MArchID)));
22729-
22730- // Compare mimpid.
22731- Value *ImpID = loadRISCVCPUID(2);
22732- Result = Builder.CreateAnd(
22733- Result, Builder.CreateICmpEQ(ImpID, Builder.getInt64(Model.MImpID)));
22734-
22735- return Result;
22736- }
22737-
2273822696Value *CodeGenFunction::EmitRISCVBuiltinExpr(unsigned BuiltinID,
2273922697 const CallExpr *E,
2274022698 ReturnValueSlot ReturnValue) {
@@ -22743,8 +22701,6 @@ Value *CodeGenFunction::EmitRISCVBuiltinExpr(unsigned BuiltinID,
2274322701 return EmitRISCVCpuSupports(E);
2274422702 if (BuiltinID == Builtin::BI__builtin_cpu_init)
2274522703 return EmitRISCVCpuInit();
22746- if (BuiltinID == Builtin::BI__builtin_cpu_is)
22747- return EmitRISCVCpuIs(E);
2274822704
2274922705 SmallVector<Value *, 4> Ops;
2275022706 llvm::Type *ResultType = ConvertType(E->getType());
0 commit comments