diff options
Diffstat (limited to 'include/llvm/Bitcode')
-rw-r--r-- | include/llvm/Bitcode/BitCodes.h | 4 | ||||
-rw-r--r-- | include/llvm/Bitcode/BitcodeWriterPass.h | 2 | ||||
-rw-r--r-- | include/llvm/Bitcode/BitstreamReader.h | 2 | ||||
-rw-r--r-- | include/llvm/Bitcode/BitstreamWriter.h | 17 | ||||
-rw-r--r-- | include/llvm/Bitcode/LLVMBitCodes.h | 10 | ||||
-rw-r--r-- | include/llvm/Bitcode/ReaderWriter.h | 20 |
6 files changed, 24 insertions, 31 deletions
diff --git a/include/llvm/Bitcode/BitCodes.h b/include/llvm/Bitcode/BitCodes.h index 96c420151858..6b23eb966ed9 100644 --- a/include/llvm/Bitcode/BitCodes.h +++ b/include/llvm/Bitcode/BitCodes.h @@ -77,7 +77,7 @@ namespace bitc { // [id, name] }; -} // End bitc namespace +} // namespace bitc /// BitCodeAbbrevOp - This describes one or more operands in an abbreviation. /// This is actually a union of two different things: @@ -180,6 +180,6 @@ public: OperandList.push_back(OpInfo); } }; -} // End llvm namespace +} // namespace llvm #endif diff --git a/include/llvm/Bitcode/BitcodeWriterPass.h b/include/llvm/Bitcode/BitcodeWriterPass.h index ae915c688ba0..cc742f19b590 100644 --- a/include/llvm/Bitcode/BitcodeWriterPass.h +++ b/include/llvm/Bitcode/BitcodeWriterPass.h @@ -56,6 +56,6 @@ public: static StringRef name() { return "BitcodeWriterPass"; } }; -} +} // namespace llvm #endif diff --git a/include/llvm/Bitcode/BitstreamReader.h b/include/llvm/Bitcode/BitstreamReader.h index 4c040a7f3e22..9201daf936d7 100644 --- a/include/llvm/Bitcode/BitstreamReader.h +++ b/include/llvm/Bitcode/BitstreamReader.h @@ -512,6 +512,6 @@ public: bool ReadBlockInfoBlock(); }; -} // End llvm namespace +} // namespace llvm #endif diff --git a/include/llvm/Bitcode/BitstreamWriter.h b/include/llvm/Bitcode/BitstreamWriter.h index f7487a05bdb7..eef6076d6a45 100644 --- a/include/llvm/Bitcode/BitstreamWriter.h +++ b/include/llvm/Bitcode/BitstreamWriter.h @@ -18,6 +18,7 @@ #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringRef.h" #include "llvm/Bitcode/BitCodes.h" +#include "llvm/Support/Endian.h" #include <vector> namespace llvm { @@ -63,10 +64,7 @@ class BitstreamWriter { // BackpatchWord - Backpatch a 32-bit word in the output with the specified // value. void BackpatchWord(unsigned ByteNo, unsigned NewWord) { - Out[ByteNo++] = (unsigned char)(NewWord >> 0); - Out[ByteNo++] = (unsigned char)(NewWord >> 8); - Out[ByteNo++] = (unsigned char)(NewWord >> 16); - Out[ByteNo ] = (unsigned char)(NewWord >> 24); + support::endian::write32le(&Out[ByteNo], NewWord); } void WriteByte(unsigned char Value) { @@ -74,12 +72,9 @@ class BitstreamWriter { } void WriteWord(unsigned Value) { - unsigned char Bytes[4] = { - (unsigned char)(Value >> 0), - (unsigned char)(Value >> 8), - (unsigned char)(Value >> 16), - (unsigned char)(Value >> 24) }; - Out.append(&Bytes[0], &Bytes[4]); + Value = support::endian::byte_swap<uint32_t, support::little>(Value); + Out.append(reinterpret_cast<const char *>(&Value), + reinterpret_cast<const char *>(&Value + 1)); } unsigned GetBufferOffset() const { @@ -525,6 +520,6 @@ public: }; -} // End llvm namespace +} // namespace llvm #endif diff --git a/include/llvm/Bitcode/LLVMBitCodes.h b/include/llvm/Bitcode/LLVMBitCodes.h index 3a6b5c704d19..41aa148b2564 100644 --- a/include/llvm/Bitcode/LLVMBitCodes.h +++ b/include/llvm/Bitcode/LLVMBitCodes.h @@ -342,7 +342,7 @@ namespace bitc { // align, vol, // ordering, synchscope] FUNC_CODE_INST_RESUME = 39, // RESUME: [opval] - FUNC_CODE_INST_LANDINGPAD = 40, // LANDINGPAD: [ty,val,val,num,id0,val0...] + FUNC_CODE_INST_LANDINGPAD_OLD = 40, // LANDINGPAD: [ty,val,val,num,id0,val0...] FUNC_CODE_INST_LOADATOMIC = 41, // LOAD: [opty, op, align, vol, // ordering, synchscope] FUNC_CODE_INST_STOREATOMIC_OLD = 42, // STORE: [ptrty,ptr,val, align, vol @@ -352,6 +352,7 @@ namespace bitc { FUNC_CODE_INST_STOREATOMIC = 45, // STORE: [ptrty,ptr,val, align, vol FUNC_CODE_INST_CMPXCHG = 46, // CMPXCHG: [ptrty,ptr,valty,cmp,new, align, // vol,ordering,synchscope] + FUNC_CODE_INST_LANDINGPAD = 47, // LANDINGPAD: [ty,val,num,id0,val0...] }; enum UseListCodes { @@ -403,7 +404,8 @@ namespace bitc { ATTR_KIND_JUMP_TABLE = 40, ATTR_KIND_DEREFERENCEABLE = 41, ATTR_KIND_DEREFERENCEABLE_OR_NULL = 42, - ATTR_KIND_CONVERGENT = 43 + ATTR_KIND_CONVERGENT = 43, + ATTR_KIND_SAFESTACK = 44, }; enum ComdatSelectionKindCodes { @@ -414,7 +416,7 @@ namespace bitc { COMDAT_SELECTION_KIND_SAME_SIZE = 5, }; -} // End bitc namespace -} // End llvm namespace +} // namespace bitc +} // namespace llvm #endif diff --git a/include/llvm/Bitcode/ReaderWriter.h b/include/llvm/Bitcode/ReaderWriter.h index 9d30098fddee..d158569b810a 100644 --- a/include/llvm/Bitcode/ReaderWriter.h +++ b/include/llvm/Bitcode/ReaderWriter.h @@ -15,6 +15,7 @@ #define LLVM_BITCODE_READERWRITER_H #include "llvm/IR/DiagnosticInfo.h" +#include "llvm/Support/Endian.h" #include "llvm/Support/ErrorOr.h" #include "llvm/Support/MemoryBuffer.h" #include <memory> @@ -32,7 +33,7 @@ namespace llvm { /// deserialization of function bodies. If ShouldLazyLoadMetadata is true, /// lazily load metadata as well. If successful, this moves Buffer. On /// error, this *does not* move Buffer. - ErrorOr<Module *> + ErrorOr<std::unique_ptr<Module>> getLazyBitcodeModule(std::unique_ptr<MemoryBuffer> &&Buffer, LLVMContext &Context, DiagnosticHandlerFunction DiagnosticHandler = nullptr, @@ -41,7 +42,8 @@ namespace llvm { /// Read the header of the specified stream and prepare for lazy /// deserialization and streaming of function bodies. ErrorOr<std::unique_ptr<Module>> getStreamedBitcodeModule( - StringRef Name, DataStreamer *Streamer, LLVMContext &Context, + StringRef Name, std::unique_ptr<DataStreamer> Streamer, + LLVMContext &Context, DiagnosticHandlerFunction DiagnosticHandler = nullptr); /// Read the header of the specified bitcode buffer and extract just the @@ -52,7 +54,7 @@ namespace llvm { DiagnosticHandlerFunction DiagnosticHandler = nullptr); /// Read the specified bitcode file, returning the module. - ErrorOr<Module *> + ErrorOr<std::unique_ptr<Module>> parseBitcodeFile(MemoryBufferRef Buffer, LLVMContext &Context, DiagnosticHandlerFunction DiagnosticHandler = nullptr); @@ -132,14 +134,8 @@ namespace llvm { // Must contain the header! if (BufEnd-BufPtr < KnownHeaderSize) return true; - unsigned Offset = ( BufPtr[OffsetField ] | - (BufPtr[OffsetField+1] << 8) | - (BufPtr[OffsetField+2] << 16) | - (BufPtr[OffsetField+3] << 24)); - unsigned Size = ( BufPtr[SizeField ] | - (BufPtr[SizeField +1] << 8) | - (BufPtr[SizeField +2] << 16) | - (BufPtr[SizeField +3] << 24)); + unsigned Offset = support::endian::read32le(&BufPtr[OffsetField]); + unsigned Size = support::endian::read32le(&BufPtr[SizeField]); // Verify that Offset+Size fits in the file. if (VerifyBufferSize && Offset+Size > unsigned(BufEnd-BufPtr)) @@ -170,7 +166,7 @@ namespace llvm { } }; -} // End llvm namespace +} // namespace llvm namespace std { template <> struct is_error_code_enum<llvm::BitcodeError> : std::true_type {}; |