aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/Target/RISCV/RISCVMCTargetLowering.cpp
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-13 06:52:15 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-13 06:52:15 +0800
commitaa7c85ca71859aab15bdf1e6dc1ea3a5aa5d1e28 (patch)
tree20d94c4debfe4900e362c6c7f8443bcfbd58ec28 /backend/lib/Target/RISCV/RISCVMCTargetLowering.cpp
parentd62f022c92fcc3ebe2269273628943a0089683fd (diff)
downloadrcc-project-aa7c85ca71859aab15bdf1e6dc1ea3a5aa5d1e28.tar.gz
rcc-project-aa7c85ca71859aab15bdf1e6dc1ea3a5aa5d1e28.tar.xz
[Support] Split APInt and APFloat ownership
Diffstat (limited to 'backend/lib/Target/RISCV/RISCVMCTargetLowering.cpp')
-rw-r--r--backend/lib/Target/RISCV/RISCVMCTargetLowering.cpp10
1 files changed, 5 insertions, 5 deletions
diff --git a/backend/lib/Target/RISCV/RISCVMCTargetLowering.cpp b/backend/lib/Target/RISCV/RISCVMCTargetLowering.cpp
index ee41d47..0db51f0 100644
--- a/backend/lib/Target/RISCV/RISCVMCTargetLowering.cpp
+++ b/backend/lib/Target/RISCV/RISCVMCTargetLowering.cpp
@@ -252,7 +252,7 @@ struct TypeLayout final {
return mc::MCOperand::expression(std::move(*TargetExpression));
}
-[[nodiscard]] Expected<std::int64_t> lowerIntegerImmediate(const IntegerImmediate &Value) {
+[[nodiscard]] Expected<std::int64_t> lowerIntegerImmediate(const APInt &Value) {
if (Value.bitWidth() > 64 || Value.words().size() != 1) {
return makeUnexpected(ErrorCode::AssemblyLoweringFailed,
"RISC-V instruction has an integer immediate wider than 64 bits");
@@ -714,14 +714,14 @@ struct TypeLayout final {
}
switch (Initializer.kind()) {
case GlobalInitializer::Kind::Integer: {
- const auto *Value = Initializer.getIf<IntegerImmediate>();
+ const auto *Value = Initializer.getIf<APInt>();
if (Value == nullptr)
return makeUnexpected(ErrorCode::InternalError, "integer initializer has no value");
const std::uint64_t Size = (static_cast<std::uint64_t>(Value->bitWidth()) + 7U) / 8U;
return Streamer.emitBytes(bytesFromWords(Value->words(), Size));
}
case GlobalInitializer::Kind::Floating: {
- const auto *Value = Initializer.getIf<FloatingPointBits>();
+ const auto *Value = Initializer.getIf<APFloat>();
if (Value == nullptr)
return makeUnexpected(ErrorCode::InternalError, "floating initializer has no value");
const std::uint64_t Size = (static_cast<std::uint64_t>(Value->bitWidth()) + 7U) / 8U;
@@ -839,12 +839,12 @@ struct TypeLayout final {
return false;
switch (Initializer.kind()) {
case GlobalInitializer::Kind::Integer: {
- const auto *Value = Initializer.getIf<IntegerImmediate>();
+ const auto *Value = Initializer.getIf<APInt>();
return Value != nullptr &&
std::ranges::all_of(Value->words(), [](std::uint64_t Word) { return Word == 0; });
}
case GlobalInitializer::Kind::Floating: {
- const auto *Value = Initializer.getIf<FloatingPointBits>();
+ const auto *Value = Initializer.getIf<APFloat>();
return Value != nullptr &&
std::ranges::all_of(Value->words(), [](std::uint64_t Word) { return Word == 0; });
}