diff options
author | Chris Lattner <sabre@nondot.org> | 2007-04-22 06:22:05 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2007-04-22 06:22:05 +0000 |
commit | b35ca9db9ce25e6b61aa3eaee41464f647d34899 (patch) | |
tree | f7fa51149c7ee469f4be9c0e3dbcc378525fd1a8 /include/llvm/Bitcode/BitCodes.h | |
parent | 749456dee45fe65ebb57a60e7e2099097a2bff23 (diff) |
Define the content-independent interfaces to read/write bitcode files and
the high-level interface to read/write LLVM IR bitcode files.
This is a work in progress.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36329 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Bitcode/BitCodes.h')
-rw-r--r-- | include/llvm/Bitcode/BitCodes.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/include/llvm/Bitcode/BitCodes.h b/include/llvm/Bitcode/BitCodes.h new file mode 100644 index 0000000000..a3b741b2e9 --- /dev/null +++ b/include/llvm/Bitcode/BitCodes.h @@ -0,0 +1,46 @@ +//===- BitCodes.h - Enum values for the bitcode format ----------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file was developed by Chris Lattner and is distributed under +// the University of Illinois Open Source License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This header Bitcode enum values. +// +// The enum values defined in this file should be considered permanent. If +// new features are added, they should have values added at the end of the +// respective lists. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_BITCODE_BITCODES_H +#define LLVM_BITCODE_BITCODES_H + +namespace llvm { +namespace bitc { + enum StandardWidths { + BlockIDWidth = 8, // We use VBR-8 for block IDs. + CodeLenWidth = 4, // Codelen are VBR-4. + BlockSizeWidth = 32 // BlockSize up to 2^32 32-bit words = 32GB per block. + }; + + // The standard code namespace always has a way to exit a block, enter a + // nested block, define abbrevs, and define an unabbreviated record. + enum FixedCodes { + END_BLOCK = 0, // Must be zero to guarantee termination for broken bitcode. + ENTER_SUBBLOCK = 1, + + // Two codes are reserved for defining abbrevs and for emitting an + // unabbreviated record. + DEFINE_ABBREVS = 2, + UNABBREV_RECORD = 3, + + // This is not a code, this is a marker for the first abbrev assignment. + FIRST_ABBREV = 4 + }; +} // End bitc namespace +} // End llvm namespace + +#endif |