Lines Matching refs:descriptor

261 static uint64_t GetNextTimestamp(JITDescriptor& descriptor) {  in GetNextTimestamp()  argument
262 return std::max(descriptor.timestamp_ + 1, NanoTime()); in GetNextTimestamp()
266 static void Seqlock(JITDescriptor& descriptor) { in Seqlock() argument
267 DCHECK_EQ(descriptor.seqlock_.load(kNonRacingRelaxed) & 1, 0u) << "Already locked"; in Seqlock()
268 descriptor.seqlock_.fetch_add(1, std::memory_order_relaxed); in Seqlock()
274 static void Sequnlock(JITDescriptor& descriptor) { in Sequnlock() argument
275 DCHECK_EQ(descriptor.seqlock_.load(kNonRacingRelaxed) & 1, 1u) << "Already unlocked"; in Sequnlock()
278 descriptor.seqlock_.fetch_add(1, std::memory_order_relaxed); in Sequnlock()
286 JITDescriptor& descriptor = NativeInfo::Descriptor(); in InsertNewEntry() local
287 const JITCodeEntry* prev = (next != nullptr ? next->prev_ : descriptor.tail_); in InsertNewEntry()
296 descriptor.tail_ = entry; in InsertNewEntry()
302 descriptor.head_.store(entry, std::memory_order_release); in InsertNewEntry()
313 JITDescriptor& descriptor = NativeInfo::Descriptor(); in CreateJITCodeEntryInternal() local
316 if (descriptor.free_entries_ == nullptr) { in CreateJITCodeEntryInternal()
323 descriptor.free_entries_ = reinterpret_cast<const JITCodeEntry*>(memory); in CreateJITCodeEntryInternal()
337 uint64_t timestamp = GetNextTimestamp(descriptor); in CreateJITCodeEntryInternal()
340 const JITCodeEntry* next = descriptor.head_.load(kNonRacingRelaxed); // Insert at the head. in CreateJITCodeEntryInternal()
341 if (descriptor.zygote_head_entry_ != nullptr && Runtime::Current()->IsZygote()) { in CreateJITCodeEntryInternal()
346 const JITCodeEntry* entry = descriptor.free_entries_; in CreateJITCodeEntryInternal()
347 descriptor.free_entries_ = descriptor.free_entries_->next_.load(kNonRacingRelaxed); in CreateJITCodeEntryInternal()
359 Seqlock(descriptor); in CreateJITCodeEntryInternal()
361 descriptor.relevant_entry_ = entry; in CreateJITCodeEntryInternal()
362 descriptor.action_flag_ = JIT_REGISTER_FN; in CreateJITCodeEntryInternal()
363 descriptor.timestamp_ = timestamp; in CreateJITCodeEntryInternal()
364 Sequnlock(descriptor); in CreateJITCodeEntryInternal()
374 JITDescriptor& descriptor = NativeInfo::Descriptor(); in DeleteJITCodeEntryInternal() local
377 Seqlock(descriptor); in DeleteJITCodeEntryInternal()
383 descriptor.tail_ = prev; in DeleteJITCodeEntryInternal()
388 descriptor.head_.store(next, std::memory_order_relaxed); in DeleteJITCodeEntryInternal()
390 descriptor.relevant_entry_ = entry; in DeleteJITCodeEntryInternal()
391 descriptor.action_flag_ = JIT_UNREGISTER_FN; in DeleteJITCodeEntryInternal()
392 descriptor.timestamp_ = GetNextTimestamp(descriptor); in DeleteJITCodeEntryInternal()
393 Sequnlock(descriptor); in DeleteJITCodeEntryInternal()
411 writable_entry->next_.store(descriptor.free_entries_, kNonRacingRelaxed); in DeleteJITCodeEntryInternal()
413 descriptor.free_entries_ = entry; in DeleteJITCodeEntryInternal()
469 JITDescriptor& descriptor = JitNativeInfo::Descriptor(); in NativeDebugInfoPreFork() local
470 if (descriptor.zygote_head_entry_ != nullptr) { in NativeDebugInfoPreFork()
481 InsertNewEntry<JitNativeInfo>(zygote_head, descriptor.head_); in NativeDebugInfoPreFork()
482 descriptor.zygote_head_entry_ = zygote_head; in NativeDebugInfoPreFork()
486 InsertNewEntry<JitNativeInfo>(&descriptor.application_tail_entry_, descriptor.head_); in NativeDebugInfoPreFork()
491 JITDescriptor& descriptor = JitNativeInfo::Descriptor(); in NativeDebugInfoPostFork() local
492 descriptor.free_entries_ = nullptr; // Don't reuse zygote's entries. in NativeDebugInfoPostFork()
505 JITDescriptor& descriptor = __jit_debug_descriptor; in RepackEntries() local
511 for (const JITCodeEntry* it = descriptor.head_; it != nullptr; it = it->next_) { in RepackEntries()
512 if (it == descriptor.zygote_head_entry_ && !is_zygote) { in RepackEntries()