diff options
author | Nandor Licker <n@ndor.email> | 2019-08-30 15:41:45 +0000 |
---|---|---|
committer | Nandor Licker <n@ndor.email> | 2019-08-30 15:41:45 +0000 |
commit | 5c8b94a672e78d92d058f146741277228f28f9dd (patch) | |
tree | f8d0851637cb87afc6da1f0149d47d0e395e614f /clang/lib/AST/Interp/Block.cpp | |
parent | 3fac668d837a92bfbabb1205027b830d709a3c42 (diff) | |
download | bcm5719-llvm-5c8b94a672e78d92d058f146741277228f28f9dd.tar.gz bcm5719-llvm-5c8b94a672e78d92d058f146741277228f28f9dd.zip |
Revert [Clang Interpreter] Initial patch for the constexpr interpreter
This reverts r370476 (git commit a5590950549719d0d9ea69ed164b0c8c0f4e02e6)
llvm-svn: 370481
Diffstat (limited to 'clang/lib/AST/Interp/Block.cpp')
-rw-r--r-- | clang/lib/AST/Interp/Block.cpp | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/clang/lib/AST/Interp/Block.cpp b/clang/lib/AST/Interp/Block.cpp deleted file mode 100644 index 5fc93eb39f4..00000000000 --- a/clang/lib/AST/Interp/Block.cpp +++ /dev/null @@ -1,87 +0,0 @@ -//===--- Block.cpp - Allocated blocks for the interpreter -------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// Defines the classes describing allocated blocks. -// -//===----------------------------------------------------------------------===// - -#include "Block.h" -#include "Pointer.h" - -using namespace clang; -using namespace clang::interp; - - - -void Block::addPointer(Pointer *P) { - if (IsStatic) - return; - if (Pointers) - Pointers->Prev = P; - P->Next = Pointers; - P->Prev = nullptr; - Pointers = P; -} - -void Block::removePointer(Pointer *P) { - if (IsStatic) - return; - if (Pointers == P) - Pointers = P->Next; - if (P->Prev) - P->Prev->Next = P->Next; - if (P->Next) - P->Next->Prev = P->Prev; -} - -void Block::cleanup() { - if (Pointers == nullptr && IsDead) - (reinterpret_cast<DeadBlock *>(this + 1) - 1)->free(); -} - -void Block::movePointer(Pointer *From, Pointer *To) { - if (IsStatic) - return; - To->Prev = From->Prev; - if (To->Prev) - To->Prev->Next = To; - To->Next = From->Next; - if (To->Next) - To->Next->Prev = To; - if (Pointers == From) - Pointers = To; - - From->Prev = nullptr; - From->Next = nullptr; -} - -DeadBlock::DeadBlock(DeadBlock *&Root, Block *Blk) - : Root(Root), B(Blk->Desc, Blk->IsStatic, Blk->IsExtern, /*isDead=*/true) { - // Add the block to the chain of dead blocks. - if (Root) - Root->Prev = this; - - Next = Root; - Prev = nullptr; - Root = this; - - // Transfer pointers. - B.Pointers = Blk->Pointers; - for (Pointer *P = Blk->Pointers; P; P = P->Next) - P->Pointee = &B; -} - -void DeadBlock::free() { - if (Prev) - Prev->Next = Next; - if (Next) - Next->Prev = Prev; - if (Root == this) - Root = Next; - ::free(this); -} |