[llvm] MCExpr-ify SIProgramInfo (PR #88257)
Pierre van Houtryve via llvm-commits
llvm-commits at lists.llvm.org
Tue Apr 16 00:20:36 PDT 2024
================
@@ -113,3 +284,53 @@ MCFragment *AMDGPUVariadicMCExpr::findAssociatedFragment() const {
}
return nullptr;
}
+
+/// Allow delayed MCExpr resolve of ExtraSGPRs (in case VCCUsed or FlatScrUsed
+/// are unresolvable but needed for further MCExprs). Derived from
+/// implementation of IsaInfo::getNumExtraSGPRs in AMDGPUBaseInfo.cpp.
+///
+const AMDGPUVariadicMCExpr *AMDGPUVariadicMCExpr::createExtraSGPRs(
+ const MCExpr *VCCUsed, const MCExpr *FlatScrUsed, unsigned MajorVersion,
+ bool hasArchitectedFlatScratch, bool XNACKUsed, MCContext &Ctx) {
+ auto GetConstantExpr = [&Ctx](int64_t Value) {
+ return MCConstantExpr::create(Value, Ctx);
+ };
+
+ return create(AGVK_ExtraSGPRs,
+ {GetConstantExpr(MajorVersion), VCCUsed, FlatScrUsed,
+ GetConstantExpr(XNACKUsed),
+ GetConstantExpr(hasArchitectedFlatScratch)},
+ Ctx);
+}
+
+const AMDGPUVariadicMCExpr *AMDGPUVariadicMCExpr::createTotalNumVGPR(
+ bool has90AInsts, const MCExpr *NumAGPR, const MCExpr *NumVGPR,
----------------
Pierre-vh wrote:
`has90AInsts` -> `Has90AInsts`.
https://github.com/llvm/llvm-project/pull/88257
More information about the llvm-commits
mailing list