aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGabor Greif <ggreif@gmail.com>2010-07-16 20:35:19 +0000
committerGabor Greif <ggreif@gmail.com>2010-07-16 20:35:19 +0000
commit345ce549a9f79cb4c8f513564bb710a61cc8483f (patch)
tree323f6bbd6d71597061adcb634059e02ddde09133
parent32bb4dfd19b9816a6380ec7e7fdb879dd28c78f8 (diff)
downloadexternal_llvm-345ce549a9f79cb4c8f513564bb710a61cc8483f.zip
external_llvm-345ce549a9f79cb4c8f513564bb710a61cc8483f.tar.gz
external_llvm-345ce549a9f79cb4c8f513564bb710a61cc8483f.tar.bz2
get the first few tags from a precomputed table (count can be increased if desired)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108549 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/VMCore/Use.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/VMCore/Use.cpp b/lib/VMCore/Use.cpp
index b7fd92f..af38a2d 100644
--- a/lib/VMCore/Use.cpp
+++ b/lib/VMCore/Use.cpp
@@ -86,6 +86,15 @@ const Use *Use::getImpliedUser() const {
//===----------------------------------------------------------------------===//
Use *Use::initTags(Use * const Start, Use *Stop, ptrdiff_t Done) {
+ while (Done < 6) {
+ if (Start == Stop--)
+ return Start;
+ static const PrevPtrTag tags[6] = { fullStopTag, oneDigitTag, stopTag,
+ oneDigitTag, oneDigitTag, stopTag };
+ Stop->Prev.setFromOpaqueValue(reinterpret_cast<Use**>(tags[Done++]));
+ Stop->Val = 0;
+ }
+
ptrdiff_t Count = Done;
while (Start != Stop) {
--Stop;