diff options
| author | Daniel Sanders <daniel_l_sanders@apple.com> | 2017-11-18 00:16:44 +0000 |
|---|---|---|
| committer | Daniel Sanders <daniel_l_sanders@apple.com> | 2017-11-18 00:16:44 +0000 |
| commit | c54aa9c844e15e1fc35c6dbf73392bd54aec45ed (patch) | |
| tree | bafd3f55452f77d1cd5c2558f8352079a38f5b5f /llvm/utils/TableGen/CodeGenInstruction.h | |
| parent | 0b44f44bcf70b15ba89e23a6a31440e2c4e6600e (diff) | |
| download | bcm5719-llvm-c54aa9c844e15e1fc35c6dbf73392bd54aec45ed.tar.gz bcm5719-llvm-c54aa9c844e15e1fc35c6dbf73392bd54aec45ed.zip | |
[globalisel][tablegen] Generalize pointer-type inference by introducing ptypeN. NFC
ptypeN is functionally the same as typeN except that it informs the
SelectionDAG importer that an operand should be treated as a pointer even
if it was written as iN. This is important for patterns that use iN instead
of iPTR to represent pointers. E.g.:
(set GPR64:$dst, (load GPR64:$addr))
Previously, this was handled as a hardcoded special case for the appropriate
operands to G_LOAD and G_STORE.
llvm-svn: 318574
Diffstat (limited to 'llvm/utils/TableGen/CodeGenInstruction.h')
| -rw-r--r-- | llvm/utils/TableGen/CodeGenInstruction.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenInstruction.h b/llvm/utils/TableGen/CodeGenInstruction.h index e173e153879..9cff95b1247 100644 --- a/llvm/utils/TableGen/CodeGenInstruction.h +++ b/llvm/utils/TableGen/CodeGenInstruction.h @@ -284,6 +284,12 @@ template <typename T> class ArrayRef; /// include text from the specified variant, returning the new string. static std::string FlattenAsmStringVariants(StringRef AsmString, unsigned Variant); + + // Is the specified operand in a generic instruction implicitly a pointer. + // This can be used on intructions that use typeN or ptypeN to identify + // operands that should be considered as pointers even though SelectionDAG + // didn't make a distinction between integer and pointers. + bool isOperandAPointer(unsigned i) const; }; |

