aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/CodeGen/MachineFunctionCloner.cpp
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-01 17:58:12 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-01 17:58:12 +0800
commit6e09614afd2a589690d107b41308f6fe6614c266 (patch)
treee7f6bdcbe23eae1d53d610be2683e06a4831997c /backend/lib/CodeGen/MachineFunctionCloner.cpp
parent787f3a7a20958bfa6f231abccc617f4d8de25c4d (diff)
downloadrcc-project-6e09614afd2a589690d107b41308f6fe6614c266.tar.gz
rcc-project-6e09614afd2a589690d107b41308f6fe6614c266.tar.xz
[CodeGen] Add machine function records
Represent callee-saved registers, call-site information, called globals, and prefetch targets in the core MachineIR model. Verify target and instruction references and remap StableIDs during explicit function cloning.
Diffstat (limited to 'backend/lib/CodeGen/MachineFunctionCloner.cpp')
-rw-r--r--backend/lib/CodeGen/MachineFunctionCloner.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/backend/lib/CodeGen/MachineFunctionCloner.cpp b/backend/lib/CodeGen/MachineFunctionCloner.cpp
index 971ef3c..aae74ff 100644
--- a/backend/lib/CodeGen/MachineFunctionCloner.cpp
+++ b/backend/lib/CodeGen/MachineFunctionCloner.cpp
@@ -616,6 +616,10 @@ Expected<MachineFunctionCloneResult> cloneMachineFunction(const MachineFunction
if (!CompilationStatus)
return std::unexpected(CompilationStatus.error());
Result.ClonedFunction->compilationStatus() = std::move(*CompilationStatus);
+ auto Records = Source.records().clone(CloneContext);
+ if (!Records)
+ return std::unexpected(Records.error());
+ Result.ClonedFunction->records() = std::move(*Records);
Result.ClonedFunction->properties() = Source.properties();
Result.ClonedFunction->attributes() = Source.attributes();
auto DestinationVerification = MachineVerifier::verify(*Result.ClonedFunction, Target);