diff options
Diffstat (limited to 'include/llvm/Support')
| -rw-r--r-- | include/llvm/Support/ARMBuildAttributes.h | 2 | ||||
| -rw-r--r-- | include/llvm/Support/DataExtractor.h | 2 | ||||
| -rw-r--r-- | include/llvm/Support/GenericDomTree.h | 18 | ||||
| -rw-r--r-- | include/llvm/Support/MemoryBuffer.h | 4 | ||||
| -rw-r--r-- | include/llvm/Support/SmallVectorMemoryBuffer.h | 4 | ||||
| -rw-r--r-- | include/llvm/Support/TargetOpcodes.def | 5 | ||||
| -rw-r--r-- | include/llvm/Support/xxhash.h | 2 | 
7 files changed, 23 insertions, 14 deletions
| diff --git a/include/llvm/Support/ARMBuildAttributes.h b/include/llvm/Support/ARMBuildAttributes.h index 6c83e447cb24..b8a03765a7c0 100644 --- a/include/llvm/Support/ARMBuildAttributes.h +++ b/include/llvm/Support/ARMBuildAttributes.h @@ -213,6 +213,8 @@ enum {    // Tag_ABI_VFP_args, (=28), uleb128    BaseAAPCS = 0,    HardFPAAPCS = 1, +  ToolChainFPPCS = 2, +  CompatibleFPAAPCS = 3,    // Tag_FP_HP_extension, (=36), uleb128    AllowHPFP = 1, // Allow use of Half Precision FP diff --git a/include/llvm/Support/DataExtractor.h b/include/llvm/Support/DataExtractor.h index 3a6ada6c77df..2b1639856e79 100644 --- a/include/llvm/Support/DataExtractor.h +++ b/include/llvm/Support/DataExtractor.h @@ -15,7 +15,7 @@  namespace llvm { -/// An auxiliary type to facilitate extraction of 3-byte entities.  +/// An auxiliary type to facilitate extraction of 3-byte entities.  struct Uint24 {    uint8_t Bytes[3];    Uint24(uint8_t U) { diff --git a/include/llvm/Support/GenericDomTree.h b/include/llvm/Support/GenericDomTree.h index 115abc23e2c6..c716e4a4d300 100644 --- a/include/llvm/Support/GenericDomTree.h +++ b/include/llvm/Support/GenericDomTree.h @@ -530,11 +530,10 @@ protected:    /// CFG about its children and inverse children. This implies that deletions    /// of CFG edges must not delete the CFG nodes before calling this function.    /// -  /// Batch updates should be generally faster when performing longer sequences -  /// of updates than calling insertEdge/deleteEdge manually multiple times, as -  /// it can reorder the updates and remove redundant ones internally. -  /// The batch updater is also able to detect sequences of zero and exactly one -  /// update -- it's optimized to do less work in these cases. +  /// The applyUpdates function can reorder the updates and remove redundant +  /// ones internally. The batch updater is also able to detect sequences of +  /// zero and exactly one update -- it's optimized to do less work in these +  /// cases.    ///    /// Note that for postdominators it automatically takes care of applying    /// updates on reverse edges internally (so there's no need to swap the @@ -854,10 +853,15 @@ protected:      assert(isReachableFromEntry(B));      assert(isReachableFromEntry(A)); +    const unsigned ALevel = A->getLevel();      const DomTreeNodeBase<NodeT> *IDom; -    while ((IDom = B->getIDom()) != nullptr && IDom != A && IDom != B) + +    // Don't walk nodes above A's subtree. When we reach A's level, we must +    // either find A or be in some other subtree not dominated by A. +    while ((IDom = B->getIDom()) != nullptr && IDom->getLevel() >= ALevel)        B = IDom;  // Walk up the tree -    return IDom != nullptr; + +    return B == A;    }    /// Wipe this tree's state without releasing any resources. diff --git a/include/llvm/Support/MemoryBuffer.h b/include/llvm/Support/MemoryBuffer.h index 535579ecff53..8933295d4ea4 100644 --- a/include/llvm/Support/MemoryBuffer.h +++ b/include/llvm/Support/MemoryBuffer.h @@ -43,7 +43,6 @@ class MemoryBuffer {    const char *BufferStart; // Start of the buffer.    const char *BufferEnd;   // End of the buffer. -  protected:    MemoryBuffer() = default; @@ -148,9 +147,6 @@ public:    virtual BufferKind getBufferKind() const = 0;    MemoryBufferRef getMemBufferRef() const; - -private: -  virtual void anchor();  };  /// This class is an extension of MemoryBuffer, which allows copy-on-write diff --git a/include/llvm/Support/SmallVectorMemoryBuffer.h b/include/llvm/Support/SmallVectorMemoryBuffer.h index f43c2fb8f826..c4a600e7f37d 100644 --- a/include/llvm/Support/SmallVectorMemoryBuffer.h +++ b/include/llvm/Support/SmallVectorMemoryBuffer.h @@ -49,6 +49,9 @@ public:      init(this->SV.begin(), this->SV.end(), false);    } +  // Key function. +  ~SmallVectorMemoryBuffer() override; +    StringRef getBufferIdentifier() const override { return BufferName; }    BufferKind getBufferKind() const override { return MemoryBuffer_Malloc; } @@ -56,7 +59,6 @@ public:  private:    SmallVector<char, 0> SV;    std::string BufferName; -  void anchor() override;  };  } // namespace llvm diff --git a/include/llvm/Support/TargetOpcodes.def b/include/llvm/Support/TargetOpcodes.def index 21f5c7e709b8..63491a5f01d2 100644 --- a/include/llvm/Support/TargetOpcodes.def +++ b/include/llvm/Support/TargetOpcodes.def @@ -470,12 +470,15 @@ HANDLE_TARGET_OPCODE(G_BSWAP)  /// Generic AddressSpaceCast.  HANDLE_TARGET_OPCODE(G_ADDRSPACE_CAST) +/// Generic block address +HANDLE_TARGET_OPCODE(G_BLOCK_ADDR) +  // TODO: Add more generic opcodes as we move along.  /// Marker for the end of the generic opcode.  /// This is used to check if an opcode is in the range of the  /// generic opcodes. -HANDLE_TARGET_OPCODE_MARKER(PRE_ISEL_GENERIC_OPCODE_END, G_ADDRSPACE_CAST) +HANDLE_TARGET_OPCODE_MARKER(PRE_ISEL_GENERIC_OPCODE_END, G_BLOCK_ADDR)  /// BUILTIN_OP_END - This must be the last enum value in this list.  /// The target-specific post-isel opcode values start here. diff --git a/include/llvm/Support/xxhash.h b/include/llvm/Support/xxhash.h index f7ca460188a2..6fd67ff9ce1c 100644 --- a/include/llvm/Support/xxhash.h +++ b/include/llvm/Support/xxhash.h @@ -38,10 +38,12 @@  #ifndef LLVM_SUPPORT_XXHASH_H  #define LLVM_SUPPORT_XXHASH_H +#include "llvm/ADT/ArrayRef.h"  #include "llvm/ADT/StringRef.h"  namespace llvm {  uint64_t xxHash64(llvm::StringRef Data); +uint64_t xxHash64(llvm::ArrayRef<uint8_t> Data);  }  #endif | 
