[llvm] [AMDGPU] MCExpr printing helper with KnownBits support (PR #95951)

Pierre van Houtryve via llvm-commits llvm-commits at lists.llvm.org
Tue Aug 13 04:29:33 PDT 2024


================
@@ -329,24 +335,17 @@ void AMDGPUTargetAsmStreamer::EmitAmdhsaKernelDescriptor(
 
   auto PrintField = [&](const MCExpr *Expr, uint32_t Shift, uint32_t Mask,
                         StringRef Directive) {
-    int64_t IVal;
     OS << "\t\t" << Directive << ' ';
-    const MCExpr *pgm_rsrc1_bits =
+    const MCExpr *ShiftedAndMaskedExpr =
         MCKernelDescriptor::bits_get(Expr, Shift, Mask, getContext());
-    if (pgm_rsrc1_bits->evaluateAsAbsolute(IVal))
-      OS << static_cast<uint64_t>(IVal);
-    else
-      pgm_rsrc1_bits->print(OS, MAI);
+    const MCExpr *New = llvm::TryFold(ShiftedAndMaskedExpr, getContext());
+    llvm::AMDGPUMCExprPrint(New, OS, MAI);
     OS << '\n';
   };
 
   auto EmitMCExpr = [&](const MCExpr *Value) {
-    int64_t evaluatableValue;
-    if (Value->evaluateAsAbsolute(evaluatableValue)) {
-      OS << static_cast<uint64_t>(evaluatableValue);
-    } else {
-      Value->print(OS, MAI);
-    }
+    const MCExpr *NewExpr = llvm::TryFold(Value, getContext());
----------------
Pierre-vh wrote:

same here and below, do we need `llvm::`?

https://github.com/llvm/llvm-project/pull/95951


More information about the llvm-commits mailing list