forked from OSchip/llvm-project
[mlir] Placeholder used in predicate should be the base type
Added a notification in the placeholder section. While writing things like preciate of an attribute, we may embed certain placeholder in the C expression. Note that the type of the placeholder is only guaranteed to be the base type like mlir::Type, it's better not to use the derived type which is based on the implementation. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D112396
This commit is contained in:
parent
560dd1cdad
commit
2fa22488d5
|
@ -77,6 +77,11 @@ class Pred;
|
|||
// type constraints directly to an operand/result, $_self will be replaced
|
||||
// by the operand/result's type. E.g., for `F32` in `F32:$operand`, its
|
||||
// `$_self` will be expanded as `getOperand(...).getType()`.
|
||||
//
|
||||
// One thing to be noticed, while using these placeholders in the C expression,
|
||||
// the type of placeholder is only guaranteed to be the base type. For example,
|
||||
// if you have a predicate in the form `CPred<"CheckType($_self)">, the argument
|
||||
// type of the function `CheckType` should be `mlir::Type`.
|
||||
class CPred<code pred> : Pred {
|
||||
code predExpr = "(" # pred # ")";
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue