[llvm] [TableGen][Target] Add documentation to `Constraints`. (PR #85951)
Jason Eckhardt via llvm-commits
llvm-commits at lists.llvm.org
Wed Mar 20 08:44:01 PDT 2024
https://github.com/nvjle created https://github.com/llvm/llvm-project/pull/85951
None
>From 1db92728049ca15d795b4fb3d0574c5d91c94d38 Mon Sep 17 00:00:00 2001
From: Jason Eckhardt <jeckhardt at nvidia.com>
Date: Wed, 20 Mar 2024 10:29:15 -0500
Subject: [PATCH] [TableGen][Target] Add documentation to `Constraints`.
---
llvm/include/llvm/Target/Target.td | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/llvm/include/llvm/Target/Target.td b/llvm/include/llvm/Target/Target.td
index 1e40cc49040d6f..cb1c0ed2513d45 100644
--- a/llvm/include/llvm/Target/Target.td
+++ b/llvm/include/llvm/Target/Target.td
@@ -697,7 +697,20 @@ class Instruction : InstructionEncoding {
// Scheduling information from TargetSchedule.td.
list<SchedReadWrite> SchedRW;
- string Constraints = ""; // OperandConstraint, e.g. $src = $dst.
+ /// Support for operand constraints. There are currently two kinds:
+ /// "$src = $dst"
+ /// Ensures that the operands are allocated to the same register.
+ ///
+ /// "@earlyclobber $rd"
+ /// Ensures that LLVM will not use the same register for any inputs (other
+ /// than an input tied to this output).
+ ///
+ /// See also:
+ /// - MC/MCInstrDesc.h:OperandConstraint::{TIED_TO, EARLY_CLOBBER}.
+ /// - CodeGen/MachineOperand.h:MachineOperand::{TiedTo, IsEarlyClobber}.
+ /// - The LLVM IR specification: Section `Output constraints` in the
+ /// discussion of inline assembly constraint strings.
+ string Constraints = "";
/// DisableEncoding - List of operand names (e.g. "$op1,$op2") that should not
/// be encoded into the output machineinstr.
More information about the llvm-commits
mailing list