mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-15 05:24:01 +00:00
Code Custodian:
- Widespread trailing space removal - A dash of OCD spacing to block align enums - joined a line that probably needed 80 cols a while back git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168566 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -50,10 +50,10 @@ class ArchiveMember : public ilist_node<ArchiveMember> {
|
||||
SVR4SymbolTableFlag = 1, ///< Member is a SVR4 symbol table
|
||||
BSD4SymbolTableFlag = 2, ///< Member is a BSD4 symbol table
|
||||
LLVMSymbolTableFlag = 4, ///< Member is an LLVM symbol table
|
||||
BitcodeFlag = 8, ///< Member is bitcode
|
||||
HasPathFlag = 16, ///< Member has a full or partial path
|
||||
BitcodeFlag = 8, ///< Member is bitcode
|
||||
HasPathFlag = 16, ///< Member has a full or partial path
|
||||
HasLongFilenameFlag = 32, ///< Member uses the long filename syntax
|
||||
StringTableFlag = 64 ///< Member is an ar(1) format string table
|
||||
StringTableFlag = 64 ///< Member is an ar(1) format string table
|
||||
};
|
||||
|
||||
/// @}
|
||||
|
@ -26,8 +26,8 @@
|
||||
namespace llvm {
|
||||
namespace bitc {
|
||||
enum StandardWidths {
|
||||
BlockIDWidth = 8, // We use VBR-8 for block IDs.
|
||||
CodeLenWidth = 4, // Codelen are VBR-4.
|
||||
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 = 16GB per block.
|
||||
};
|
||||
|
||||
@ -69,10 +69,11 @@ namespace bitc {
|
||||
enum BlockInfoCodes {
|
||||
// DEFINE_ABBREV has magic semantics here, applying to the current SETBID'd
|
||||
// block, instead of the BlockInfo block.
|
||||
|
||||
BLOCKINFO_CODE_SETBID = 1, // SETBID: [blockid#]
|
||||
BLOCKINFO_CODE_BLOCKNAME = 2, // BLOCKNAME: [name]
|
||||
BLOCKINFO_CODE_SETRECORDNAME = 3 // BLOCKINFO_CODE_SETRECORDNAME: [id, name]
|
||||
|
||||
BLOCKINFO_CODE_SETBID = 1, // SETBID: [blockid#]
|
||||
BLOCKINFO_CODE_BLOCKNAME = 2, // BLOCKNAME: [name]
|
||||
BLOCKINFO_CODE_SETRECORDNAME = 3 // BLOCKINFO_CODE_SETRECORDNAME:
|
||||
// [id, name]
|
||||
};
|
||||
|
||||
} // End bitc namespace
|
||||
@ -99,7 +100,7 @@ public:
|
||||
explicit BitCodeAbbrevOp(Encoding E, uint64_t Data = 0)
|
||||
: Val(Data), IsLiteral(false), Enc(E) {}
|
||||
|
||||
bool isLiteral() const { return IsLiteral; }
|
||||
bool isLiteral() const { return IsLiteral; }
|
||||
bool isEncoding() const { return !IsLiteral; }
|
||||
|
||||
// Accessors for literals.
|
||||
@ -138,18 +139,18 @@ public:
|
||||
if (C >= 'a' && C <= 'z') return C-'a';
|
||||
if (C >= 'A' && C <= 'Z') return C-'A'+26;
|
||||
if (C >= '0' && C <= '9') return C-'0'+26+26;
|
||||
if (C == '.') return 62;
|
||||
if (C == '_') return 63;
|
||||
if (C == '.') return 62;
|
||||
if (C == '_') return 63;
|
||||
llvm_unreachable("Not a value Char6 character!");
|
||||
}
|
||||
|
||||
static char DecodeChar6(unsigned V) {
|
||||
assert((V & ~63) == 0 && "Not a Char6 encoded character!");
|
||||
if (V < 26) return V+'a';
|
||||
if (V < 26+26) return V-26+'A';
|
||||
if (V < 26) return V+'a';
|
||||
if (V < 26+26) return V-26+'A';
|
||||
if (V < 26+26+10) return V-26-26+'0';
|
||||
if (V == 62) return '.';
|
||||
if (V == 63) return '_';
|
||||
if (V == 62) return '.';
|
||||
if (V == 63) return '_';
|
||||
llvm_unreachable("Not a value Char6 character!");
|
||||
}
|
||||
|
||||
|
@ -35,12 +35,12 @@ public:
|
||||
unsigned BlockID;
|
||||
std::vector<BitCodeAbbrev*> Abbrevs;
|
||||
std::string Name;
|
||||
|
||||
|
||||
std::vector<std::pair<unsigned, std::string> > RecordNames;
|
||||
};
|
||||
private:
|
||||
OwningPtr<StreamableMemoryObject> BitcodeBytes;
|
||||
|
||||
|
||||
std::vector<BlockInfo> BlockInfoRecords;
|
||||
|
||||
/// IgnoreBlockInfoNames - This is set to true if we don't care about the
|
||||
@ -86,7 +86,7 @@ public:
|
||||
/// name information.
|
||||
void CollectBlockInfoNames() { IgnoreBlockInfoNames = false; }
|
||||
bool isIgnoringBlockInfoNames() { return IgnoreBlockInfoNames; }
|
||||
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
// Block Manipulation
|
||||
//===--------------------------------------------------------------------===//
|
||||
@ -95,7 +95,7 @@ public:
|
||||
/// block info block for this Bitstream. We only process it for the first
|
||||
/// cursor that walks over it.
|
||||
bool hasBlockInfoRecords() const { return !BlockInfoRecords.empty(); }
|
||||
|
||||
|
||||
/// getBlockInfo - If there is block info for the specified ID, return it,
|
||||
/// otherwise return null.
|
||||
const BlockInfo *getBlockInfo(unsigned BlockID) const {
|
||||
@ -126,74 +126,74 @@ class BitstreamCursor {
|
||||
friend class Deserializer;
|
||||
BitstreamReader *BitStream;
|
||||
size_t NextChar;
|
||||
|
||||
|
||||
/// CurWord - This is the current data we have pulled from the stream but have
|
||||
/// not returned to the client.
|
||||
uint32_t CurWord;
|
||||
|
||||
|
||||
/// BitsInCurWord - This is the number of bits in CurWord that are valid. This
|
||||
/// is always from [0...31] inclusive.
|
||||
unsigned BitsInCurWord;
|
||||
|
||||
|
||||
// CurCodeSize - This is the declared size of code values used for the current
|
||||
// block, in bits.
|
||||
unsigned CurCodeSize;
|
||||
|
||||
|
||||
/// CurAbbrevs - Abbrevs installed at in this block.
|
||||
std::vector<BitCodeAbbrev*> CurAbbrevs;
|
||||
|
||||
|
||||
struct Block {
|
||||
unsigned PrevCodeSize;
|
||||
std::vector<BitCodeAbbrev*> PrevAbbrevs;
|
||||
explicit Block(unsigned PCS) : PrevCodeSize(PCS) {}
|
||||
};
|
||||
|
||||
|
||||
/// BlockScope - This tracks the codesize of parent blocks.
|
||||
SmallVector<Block, 8> BlockScope;
|
||||
|
||||
|
||||
public:
|
||||
BitstreamCursor() : BitStream(0), NextChar(0) {
|
||||
}
|
||||
BitstreamCursor(const BitstreamCursor &RHS) : BitStream(0), NextChar(0) {
|
||||
operator=(RHS);
|
||||
}
|
||||
|
||||
|
||||
explicit BitstreamCursor(BitstreamReader &R) : BitStream(&R) {
|
||||
NextChar = 0;
|
||||
CurWord = 0;
|
||||
BitsInCurWord = 0;
|
||||
CurCodeSize = 2;
|
||||
}
|
||||
|
||||
|
||||
void init(BitstreamReader &R) {
|
||||
freeState();
|
||||
|
||||
|
||||
BitStream = &R;
|
||||
NextChar = 0;
|
||||
CurWord = 0;
|
||||
BitsInCurWord = 0;
|
||||
CurCodeSize = 2;
|
||||
}
|
||||
|
||||
|
||||
~BitstreamCursor() {
|
||||
freeState();
|
||||
}
|
||||
|
||||
|
||||
void operator=(const BitstreamCursor &RHS) {
|
||||
freeState();
|
||||
|
||||
|
||||
BitStream = RHS.BitStream;
|
||||
NextChar = RHS.NextChar;
|
||||
CurWord = RHS.CurWord;
|
||||
BitsInCurWord = RHS.BitsInCurWord;
|
||||
CurCodeSize = RHS.CurCodeSize;
|
||||
|
||||
|
||||
// Copy abbreviations, and bump ref counts.
|
||||
CurAbbrevs = RHS.CurAbbrevs;
|
||||
for (unsigned i = 0, e = static_cast<unsigned>(CurAbbrevs.size());
|
||||
i != e; ++i)
|
||||
CurAbbrevs[i]->addRef();
|
||||
|
||||
|
||||
// Copy block scope and bump ref counts.
|
||||
BlockScope = RHS.BlockScope;
|
||||
for (unsigned S = 0, e = static_cast<unsigned>(BlockScope.size());
|
||||
@ -204,14 +204,14 @@ public:
|
||||
Abbrevs[i]->addRef();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void freeState() {
|
||||
// Free all the Abbrevs.
|
||||
for (unsigned i = 0, e = static_cast<unsigned>(CurAbbrevs.size());
|
||||
i != e; ++i)
|
||||
CurAbbrevs[i]->dropRef();
|
||||
CurAbbrevs.clear();
|
||||
|
||||
|
||||
// Free all the Abbrevs in the block scope.
|
||||
for (unsigned S = 0, e = static_cast<unsigned>(BlockScope.size());
|
||||
S != e; ++S) {
|
||||
@ -222,10 +222,10 @@ public:
|
||||
}
|
||||
BlockScope.clear();
|
||||
}
|
||||
|
||||
|
||||
/// GetAbbrevIDWidth - Return the number of bits used to encode an abbrev #.
|
||||
unsigned GetAbbrevIDWidth() const { return CurCodeSize; }
|
||||
|
||||
|
||||
bool isEndPos(size_t pos) {
|
||||
return BitStream->getBitcodeBytes().isObjectEnd(static_cast<uint64_t>(pos));
|
||||
}
|
||||
@ -255,37 +255,37 @@ public:
|
||||
bool AtEndOfStream() {
|
||||
return isEndPos(NextChar) && BitsInCurWord == 0;
|
||||
}
|
||||
|
||||
|
||||
/// GetCurrentBitNo - Return the bit # of the bit we are reading.
|
||||
uint64_t GetCurrentBitNo() const {
|
||||
return NextChar*CHAR_BIT - BitsInCurWord;
|
||||
}
|
||||
|
||||
|
||||
BitstreamReader *getBitStreamReader() {
|
||||
return BitStream;
|
||||
}
|
||||
const BitstreamReader *getBitStreamReader() const {
|
||||
return BitStream;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/// JumpToBit - Reset the stream to the specified bit number.
|
||||
void JumpToBit(uint64_t BitNo) {
|
||||
uintptr_t ByteNo = uintptr_t(BitNo/8) & ~3;
|
||||
uintptr_t WordBitNo = uintptr_t(BitNo) & 31;
|
||||
assert(canSkipToPos(ByteNo) && "Invalid location");
|
||||
|
||||
|
||||
// Move the cursor to the right word.
|
||||
NextChar = ByteNo;
|
||||
BitsInCurWord = 0;
|
||||
CurWord = 0;
|
||||
|
||||
|
||||
// Skip over any bits that are already consumed.
|
||||
if (WordBitNo)
|
||||
Read(static_cast<unsigned>(WordBitNo));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
uint32_t Read(unsigned NumBits) {
|
||||
assert(NumBits <= 32 && "Cannot return more than 32 bits!");
|
||||
// If the field is fully contained by CurWord, return it quickly.
|
||||
@ -473,7 +473,7 @@ private:
|
||||
// If the abbrev specifies the literal value to use, use it.
|
||||
Vals.push_back(Op.getLiteralValue());
|
||||
}
|
||||
|
||||
|
||||
void ReadAbbreviatedField(const BitCodeAbbrevOp &Op,
|
||||
SmallVectorImpl<uint64_t> &Vals) {
|
||||
assert(!Op.isLiteral() && "Use ReadAbbreviatedLiteral for literals!");
|
||||
@ -494,13 +494,13 @@ private:
|
||||
}
|
||||
public:
|
||||
|
||||
/// getAbbrev - Return the abbreviation for the specified AbbrevId.
|
||||
/// getAbbrev - Return the abbreviation for the specified AbbrevId.
|
||||
const BitCodeAbbrev *getAbbrev(unsigned AbbrevID) {
|
||||
unsigned AbbrevNo = AbbrevID-bitc::FIRST_APPLICATION_ABBREV;
|
||||
assert(AbbrevNo < CurAbbrevs.size() && "Invalid abbrev #!");
|
||||
return CurAbbrevs[AbbrevNo];
|
||||
}
|
||||
|
||||
|
||||
unsigned ReadRecord(unsigned AbbrevID, SmallVectorImpl<uint64_t> &Vals,
|
||||
const char **BlobStart = 0, unsigned *BlobLen = 0) {
|
||||
if (AbbrevID == bitc::UNABBREV_RECORD) {
|
||||
@ -516,7 +516,7 @@ public:
|
||||
for (unsigned i = 0, e = Abbv->getNumOperandInfos(); i != e; ++i) {
|
||||
const BitCodeAbbrevOp &Op = Abbv->getOperandInfo(i);
|
||||
if (Op.isLiteral()) {
|
||||
ReadAbbreviatedLiteral(Op, Vals);
|
||||
ReadAbbreviatedLiteral(Op, Vals);
|
||||
} else if (Op.getEncoding() == BitCodeAbbrevOp::Array) {
|
||||
// Array case. Read the number of elements as a vbr6.
|
||||
unsigned NumElts = ReadVBR(6);
|
||||
@ -535,7 +535,7 @@ public:
|
||||
|
||||
// Figure out where the end of this blob will be including tail padding.
|
||||
size_t NewEnd = NextChar+((NumElts+3)&~3);
|
||||
|
||||
|
||||
// If this would read off the end of the bitcode file, just set the
|
||||
// record to empty and return.
|
||||
if (!canSkipToPos(NewEnd)) {
|
||||
@ -543,7 +543,7 @@ public:
|
||||
NextChar = BitStream->getBitcodeBytes().getExtent();
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
// Otherwise, read the number of bytes. If we can return a reference to
|
||||
// the data, do so to avoid copying it.
|
||||
if (BlobStart) {
|
||||
@ -571,7 +571,7 @@ public:
|
||||
return ReadRecord(AbbrevID, Vals, &BlobStart, &BlobLen);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
// Abbrev Processing
|
||||
//===--------------------------------------------------------------------===//
|
||||
@ -594,14 +594,14 @@ public:
|
||||
}
|
||||
CurAbbrevs.push_back(Abbv);
|
||||
}
|
||||
|
||||
|
||||
public:
|
||||
|
||||
bool ReadBlockInfoBlock() {
|
||||
// If this is the second stream to get to the block info block, skip it.
|
||||
if (BitStream->hasBlockInfoRecords())
|
||||
return SkipBlock();
|
||||
|
||||
|
||||
if (EnterSubBlock(bitc::BLOCKINFO_BLOCK_ID)) return true;
|
||||
|
||||
SmallVector<uint64_t, 64> Record;
|
||||
@ -662,7 +662,7 @@ public:
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
} // End llvm namespace
|
||||
|
||||
#endif
|
||||
|
@ -273,7 +273,7 @@ public:
|
||||
|
||||
private:
|
||||
/// EmitAbbreviatedLiteral - Emit a literal value according to its abbrev
|
||||
/// record. This is a no-op, since the abbrev specifies the literal to use.
|
||||
/// record. This is a no-op, since the abbrev specifies the literal to use.
|
||||
template<typename uintty>
|
||||
void EmitAbbreviatedLiteral(const BitCodeAbbrevOp &Op, uintty V) {
|
||||
assert(Op.isLiteral() && "Not a literal");
|
||||
@ -282,13 +282,13 @@ private:
|
||||
assert(V == Op.getLiteralValue() &&
|
||||
"Invalid abbrev for record!");
|
||||
}
|
||||
|
||||
|
||||
/// EmitAbbreviatedField - Emit a single scalar field value with the specified
|
||||
/// encoding.
|
||||
template<typename uintty>
|
||||
void EmitAbbreviatedField(const BitCodeAbbrevOp &Op, uintty V) {
|
||||
assert(!Op.isLiteral() && "Literals should use EmitAbbreviatedLiteral!");
|
||||
|
||||
|
||||
// Encode the value as we are commanded.
|
||||
switch (Op.getEncoding()) {
|
||||
default: llvm_unreachable("Unknown encoding!");
|
||||
@ -305,7 +305,7 @@ private:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// EmitRecordWithAbbrevImpl - This is the core implementation of the record
|
||||
/// emission code. If BlobData is non-null, then it specifies an array of
|
||||
/// data that should be emitted as part of the Blob or Array operand that is
|
||||
@ -341,11 +341,11 @@ private:
|
||||
"Blob data and record entries specified for array!");
|
||||
// Emit a vbr6 to indicate the number of elements present.
|
||||
EmitVBR(static_cast<uint32_t>(BlobLen), 6);
|
||||
|
||||
|
||||
// Emit each field.
|
||||
for (unsigned i = 0; i != BlobLen; ++i)
|
||||
EmitAbbreviatedField(EltEnc, (unsigned char)BlobData[i]);
|
||||
|
||||
|
||||
// Know that blob data is consumed for assertion below.
|
||||
BlobData = 0;
|
||||
} else {
|
||||
@ -359,7 +359,7 @@ private:
|
||||
} else if (Op.getEncoding() == BitCodeAbbrevOp::Blob) {
|
||||
// If this record has blob data, emit it, otherwise we must have record
|
||||
// entries to encode this way.
|
||||
|
||||
|
||||
// Emit a vbr6 to indicate the number of elements present.
|
||||
if (BlobData) {
|
||||
EmitVBR(static_cast<uint32_t>(BlobLen), 6);
|
||||
@ -368,7 +368,7 @@ private:
|
||||
} else {
|
||||
EmitVBR(static_cast<uint32_t>(Vals.size()-RecordIdx), 6);
|
||||
}
|
||||
|
||||
|
||||
// Flush to a 32-bit alignment boundary.
|
||||
FlushToWord();
|
||||
|
||||
@ -376,7 +376,7 @@ private:
|
||||
if (BlobData) {
|
||||
for (unsigned i = 0; i != BlobLen; ++i)
|
||||
WriteByte((unsigned char)BlobData[i]);
|
||||
|
||||
|
||||
// Know that blob data is consumed for assertion below.
|
||||
BlobData = 0;
|
||||
} else {
|
||||
@ -399,7 +399,7 @@ private:
|
||||
assert(BlobData == 0 &&
|
||||
"Blob data specified for record that doesn't use it!");
|
||||
}
|
||||
|
||||
|
||||
public:
|
||||
|
||||
/// EmitRecord - Emit the specified record to the stream, using an abbrev if
|
||||
@ -420,10 +420,10 @@ public:
|
||||
|
||||
// Insert the code into Vals to treat it uniformly.
|
||||
Vals.insert(Vals.begin(), Code);
|
||||
|
||||
|
||||
EmitRecordWithAbbrev(Abbrev, Vals);
|
||||
}
|
||||
|
||||
|
||||
/// EmitRecordWithAbbrev - Emit a record with the specified abbreviation.
|
||||
/// Unlike EmitRecord, the code for the record should be included in Vals as
|
||||
/// the first entry.
|
||||
@ -431,7 +431,7 @@ public:
|
||||
void EmitRecordWithAbbrev(unsigned Abbrev, SmallVectorImpl<uintty> &Vals) {
|
||||
EmitRecordWithAbbrevImpl(Abbrev, Vals, StringRef());
|
||||
}
|
||||
|
||||
|
||||
/// EmitRecordWithBlob - Emit the specified record to the stream, using an
|
||||
/// abbrev that includes a blob at the end. The blob data to emit is
|
||||
/// specified by the pointer and length specified at the end. In contrast to
|
||||
@ -461,7 +461,7 @@ public:
|
||||
return EmitRecordWithAbbrevImpl(Abbrev, Vals, StringRef(ArrayData,
|
||||
ArrayLen));
|
||||
}
|
||||
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
// Abbrev Emission
|
||||
//===--------------------------------------------------------------------===//
|
||||
|
Reference in New Issue
Block a user