#include "llvm/Constants.h"
#include <algorithm>
-const Type *BytecodeParser::parseTypeConstant(const uchar *&Buf,
- const uchar *EndBuf) {
+const Type *BytecodeParser::parseTypeConstant(const unsigned char *&Buf,
+ const unsigned char *EndBuf) {
unsigned PrimType;
if (read_vbr(Buf, EndBuf, PrimType)) return 0;
// with a new resolved concrete type.
//
void debug_type_tables();
-bool BytecodeParser::parseTypeConstants(const uchar *&Buf, const uchar *EndBuf,
+bool BytecodeParser::parseTypeConstants(const unsigned char *&Buf,
+ const unsigned char *EndBuf,
TypeValuesListTy &Tab,
unsigned NumEntries) {
assert(Tab.size() == 0 && "should not have read type constants in before!");
}
-bool BytecodeParser::parseConstantValue(const uchar *&Buf, const uchar *EndBuf,
+bool BytecodeParser::parseConstantValue(const unsigned char *&Buf,
+ const unsigned char *EndBuf,
const Type *Ty, Constant *&V) {
// We must check for a ConstantExpr before switching by type because
return false;
}
-bool BytecodeParser::ParseGlobalTypes(const uchar *&Buf, const uchar *EndBuf) {
+bool BytecodeParser::ParseGlobalTypes(const unsigned char *&Buf,
+ const unsigned char *EndBuf) {
ValueTable T;
return ParseConstantPool(Buf, EndBuf, T, ModuleTypeValues);
}
-bool BytecodeParser::ParseConstantPool(const uchar *&Buf, const uchar *EndBuf,
+bool BytecodeParser::ParseConstantPool(const unsigned char *&Buf,
+ const unsigned char *EndBuf,
ValueTable &Tab,
TypeValuesListTy &TypeTab) {
while (Buf < EndBuf) {
#include "llvm/iPHINode.h"
#include "llvm/iOther.h"
-bool BytecodeParser::ParseRawInst(const uchar *&Buf, const uchar *EndBuf,
+bool BytecodeParser::ParseRawInst(const unsigned char *&Buf,
+ const unsigned char *EndBuf,
RawInst &Result) {
unsigned Op, Typ;
if (read(Buf, EndBuf, Op)) return true;
}
-bool BytecodeParser::ParseInstruction(const uchar *&Buf, const uchar *EndBuf,
+bool BytecodeParser::ParseInstruction(const unsigned char *&Buf,
+ const unsigned char *EndBuf,
Instruction *&Res,
BasicBlock *BB /*HACK*/) {
RawInst Raw;
return Error;
}
-bool BytecodeParser::ParseBasicBlock(const uchar *&Buf, const uchar *EndBuf,
+bool BytecodeParser::ParseBasicBlock(const unsigned char *&Buf,
+ const unsigned char *EndBuf,
BasicBlock *&BB) {
BB = new BasicBlock();
return false;
}
-bool BytecodeParser::ParseSymbolTable(const uchar *&Buf, const uchar *EndBuf,
+bool BytecodeParser::ParseSymbolTable(const unsigned char *&Buf,
+ const unsigned char *EndBuf,
SymbolTable *ST) {
while (Buf < EndBuf) {
// Symtab block header: [num entries][type id number]
}
-bool BytecodeParser::ParseFunction(const uchar *&Buf, const uchar *EndBuf) {
+bool BytecodeParser::ParseFunction(const unsigned char *&Buf,
+ const unsigned char *EndBuf) {
// Clear out the local values table...
if (FunctionSignatureList.empty()) {
Error = "Function found, but FunctionSignatureList empty!";
return false;
}
-bool BytecodeParser::ParseModuleGlobalInfo(const uchar *&Buf, const uchar *End){
+bool BytecodeParser::ParseModuleGlobalInfo(const unsigned char *&Buf,
+ const unsigned char *End){
if (!FunctionSignatureList.empty()) {
Error = "Two ModuleGlobalInfo packets found!";
return true; // Two ModuleGlobal blocks?
return false;
}
-bool BytecodeParser::ParseVersionInfo(const uchar *&Buf, const uchar *EndBuf) {
+bool BytecodeParser::ParseVersionInfo(const unsigned char *&Buf,
+ const unsigned char *EndBuf) {
unsigned Version;
if (read_vbr(Buf, EndBuf, Version)) return true;
return false;
}
-bool BytecodeParser::ParseModule(const uchar *Buf, const uchar *EndBuf) {
+bool BytecodeParser::ParseModule(const unsigned char *Buf,
+ const unsigned char *EndBuf) {
unsigned Type, Size;
if (readBlock(Buf, EndBuf, Type, Size)) return true;
if (Type != BytecodeFormat::Module || Buf+Size != EndBuf) {
return 0;
}
-Module *BytecodeParser::ParseBytecode(const uchar *Buf, const uchar *EndBuf,
+Module *BytecodeParser::ParseBytecode(const unsigned char *Buf,
+ const unsigned char *EndBuf,
const std::string &ModuleID) {
unsigned Sig;
// Read and check signature...
munmap((char*)Buffer, Length);
} else { // Read from stdin
int BlockSize;
- uchar Buffer[4096*4];
+ unsigned char Buffer[4096*4];
std::vector<unsigned char> FileData;
// Read in all of the data from stdin, we cannot mmap stdin...
#define ALIGN_PTRS 0
#if ALIGN_PTRS
- uchar *Buf = (uchar*)mmap(0, FileData.size(), PROT_READ|PROT_WRITE,
- MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
- assert((Buf != (uchar*)-1) && "mmap returned error!");
+ unsigned char *Buf =
+ (unsigned char*)mmap(0, FileData.size(), PROT_READ|PROT_WRITE,
+ MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+ assert((Buf != (unsigned char*)-1) && "mmap returned error!");
memcpy(Buf, &FileData[0], FileData.size());
#else
unsigned char *Buf = &FileData[0];
#define BCR_TRACE(n, X)
#endif
-typedef unsigned char uchar;
-
struct RawInst { // The raw fields out of the bytecode stream...
unsigned NumOperands;
unsigned Opcode;
freeTable(ModuleValues);
}
- Module *ParseBytecode(const uchar *Buf, const uchar *EndBuf,
+ Module *ParseBytecode(const unsigned char *Buf, const unsigned char *EndBuf,
const std::string &ModuleID);
std::string getError() const { return Error; }
}
}
- bool ParseModule (const uchar * Buf, const uchar *End);
- bool ParseVersionInfo (const uchar *&Buf, const uchar *End);
- bool ParseModuleGlobalInfo(const uchar *&Buf, const uchar *End);
- bool ParseSymbolTable (const uchar *&Buf, const uchar *End, SymbolTable *);
- bool ParseFunction (const uchar *&Buf, const uchar *End);
- bool ParseBasicBlock (const uchar *&Buf, const uchar *End, BasicBlock *&);
- bool ParseInstruction (const uchar *&Buf, const uchar *End, Instruction *&,
- BasicBlock *BB /*HACK*/);
- bool ParseRawInst (const uchar *&Buf, const uchar *End, RawInst &);
-
- bool ParseGlobalTypes(const uchar *&Buf, const uchar *EndBuf);
- bool ParseConstantPool(const uchar *&Buf, const uchar *EndBuf,
+ bool ParseModule (const unsigned char * Buf, const unsigned char *End);
+ bool ParseVersionInfo (const unsigned char *&Buf, const unsigned char *End);
+ bool ParseModuleGlobalInfo(const unsigned char *&Buf, const unsigned char *E);
+ bool ParseSymbolTable (const unsigned char *&Buf, const unsigned char *End,
+ SymbolTable *);
+ bool ParseFunction (const unsigned char *&Buf, const unsigned char *End);
+ bool ParseBasicBlock (const unsigned char *&Buf, const unsigned char *End,
+ BasicBlock *&);
+ bool ParseInstruction (const unsigned char *&Buf, const unsigned char *End,
+ Instruction *&, BasicBlock *BB /*HACK*/);
+ bool ParseRawInst (const unsigned char *&Buf, const unsigned char *End,
+ RawInst &);
+
+ bool ParseGlobalTypes(const unsigned char *&Buf, const unsigned char *EndBuf);
+ bool ParseConstantPool(const unsigned char *&Buf, const unsigned char *EndBuf,
ValueTable &Tab, TypeValuesListTy &TypeTab);
- bool parseConstantValue(const uchar *&Buf, const uchar *End,
+ bool parseConstantValue(const unsigned char *&Buf, const unsigned char *End,
const Type *Ty, Constant *&V);
- bool parseTypeConstants(const uchar *&Buf, const uchar *EndBuf,
+ bool parseTypeConstants(const unsigned char *&Buf,
+ const unsigned char *EndBuf,
TypeValuesListTy &Tab, unsigned NumEntries);
- const Type *parseTypeConstant(const uchar *&Buf, const uchar *EndBuf);
+ const Type *parseTypeConstant(const unsigned char *&Buf,
+ const unsigned char *EndBuf);
Value *getValue(const Type *Ty, unsigned num, bool Create = true);
const Type *getType(unsigned ID);
}
}
-static inline bool readBlock(const uchar *&Buf, const uchar *EndBuf,
+static inline bool readBlock(const unsigned char *&Buf,
+ const unsigned char *EndBuf,
unsigned &Type, unsigned &Size) {
#if DEBUG_OUTPUT
bool Result = read(Buf, EndBuf, Type) || read(Buf, EndBuf, Size);