[llvm] [RFC][RISCV] Support the large code model. (PR #70308)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 12 22:39:14 PST 2023
================
@@ -0,0 +1,93 @@
+//===------- RISCVConstantPoolValue.cpp - RISC-V constantpool value -------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+//
+// This file implements the RISC-V specific constantpool value class.
+//
+//===----------------------------------------------------------------------===//
+
+#include "RISCVConstantPoolValue.h"
+#include "llvm/ADT/FoldingSet.h"
+#include "llvm/IR/Constants.h"
+#include "llvm/IR/DerivedTypes.h"
+#include "llvm/IR/GlobalValue.h"
+#include "llvm/IR/Type.h"
+#include "llvm/Support/Casting.h"
+#include "llvm/Support/raw_ostream.h"
+
+using namespace llvm;
+
+RISCVConstantPoolValue::RISCVConstantPoolValue(LLVMContext &C,
+ RISCVCP::RISCVCPKind Kind)
+ : MachineConstantPoolValue((Type *)Type::getInt64Ty(C)), Kind(Kind) {}
+
+RISCVConstantPoolValue::RISCVConstantPoolValue(Type *Ty,
+ RISCVCP::RISCVCPKind Kind)
+ : MachineConstantPoolValue(Ty), Kind(Kind) {}
+
+int RISCVConstantPoolValue::getExistingMachineCPValue(MachineConstantPool *CP,
+ Align Alignment) {
+ llvm_unreachable("Shouldn't be calling this directly!");
+}
+
+RISCVConstantPoolConstant::RISCVConstantPoolConstant(Type *Ty,
+ const Constant *GV,
+ RISCVCP::RISCVCPKind Kind)
+ : RISCVConstantPoolValue(Ty, Kind), CVal(GV) {}
+
+RISCVConstantPoolConstant *
+RISCVConstantPoolConstant::Create(const GlobalValue *GV,
+ RISCVCP::RISCVCPKind Kind) {
----------------
topperc wrote:
Why does the caller need to pass the RISCVCPKind? Don't we know the Kind based on which Create function was used?
https://github.com/llvm/llvm-project/pull/70308
More information about the llvm-commits
mailing list