diff options
author | Chris Lattner <sabre@nondot.org> | 2006-03-03 02:32:46 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-03-03 02:32:46 +0000 |
commit | c313d0b712eb1afc11eac533de6e97543f98092d (patch) | |
tree | 6417ff2952c002581f7ebc3680bcbaba48465b75 /llvm/utils/TableGen/CodeGenIntrinsics.h | |
parent | 101a959531c09b91253b4a4bf025862d299f05b6 (diff) | |
download | llvm-c313d0b712eb1afc11eac533de6e97543f98092d.zip llvm-c313d0b712eb1afc11eac533de6e97543f98092d.tar.gz llvm-c313d0b712eb1afc11eac533de6e97543f98092d.tar.bz2 |
initial implementation of intrinsic parsing
llvm-svn: 26495
Diffstat (limited to 'llvm/utils/TableGen/CodeGenIntrinsics.h')
-rw-r--r-- | llvm/utils/TableGen/CodeGenIntrinsics.h | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/llvm/utils/TableGen/CodeGenIntrinsics.h b/llvm/utils/TableGen/CodeGenIntrinsics.h new file mode 100644 index 0000000..7152996 --- /dev/null +++ b/llvm/utils/TableGen/CodeGenIntrinsics.h @@ -0,0 +1,42 @@ +//===- CodeGenIntrinsic.h - Intrinsic Class Wrapper ------------*- C++ -*--===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by the LLVM research group and is distributed under +// the University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines a wrapper class for the 'Intrinsic' TableGen class. +// +//===----------------------------------------------------------------------===// + +#ifndef CODEGEN_INTRINSIC_H +#define CODEGEN_INTRINSIC_H + +#include <string> +#include <vector> + +namespace llvm { + class Record; + class RecordKeeper; + + struct CodeGenIntrinsic { + Record *TheDef; // The actual record defining this instruction. + std::string Name; // The name of the LLVM function "llvm.bswap.i32" + std::string EnumName; // The name of the enum "bswap_i32" + + // Memory mod/ref behavior of this intrinsic. + enum { + NoMem, ReadArgMem, ReadMem, WriteArgMem, WriteMem + } ModRef; + + CodeGenIntrinsic(Record *R); + }; + + /// LoadIntrinsics - Read all of the intrinsics defined in the specified + /// .td file. + std::vector<CodeGenIntrinsic> LoadIntrinsics(const RecordKeeper &RC); +} + +#endif |