mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2026-04-26 12:20:42 +00:00
Changes to the V2 bytecode format:
- Null values are implicitly encoded instead of explicitly, this makes
things more compact!
- More compactly represent ConstantPointerRefs
- Bytecode files are represented as:
Header|GlobalTypes|GlobalVars/Function Protos|Constants|Functions|SymTab
instead of
Header|GlobalTypes|Constants|GlobalVars/Function Protos|Functions|SymTab
which makes a lot of things simpler.
Writer changes:
- We now explictly encode versioning information in the bytecode files.
- This allows new code to read bytecode files produced by old code, but
new bytecode files can have enhancements such as the above. Although this
makes the reader a bit more complex (having to deal with old formats), the
writer only needs to be able to produce the most recent version.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5749 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -25,8 +25,8 @@ public:
|
||||
BytecodeWriter(std::deque<unsigned char> &o, const Module *M);
|
||||
|
||||
protected:
|
||||
void outputConstants(bool isMethod);
|
||||
void processMethod(const Function *F);
|
||||
void outputConstants(bool isFunction);
|
||||
void outputFunction(const Function *F);
|
||||
void processBasicBlock(const BasicBlock &BB);
|
||||
void processInstruction(const Instruction &I);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user