| /arkcompiler/runtime_core/libpandabase/mem/ |
| D | gc_barrier.h | 29 * Represents Pre and Post barrier 37 * Indicates if barrier for store or load 45 constexpr uint8_t BARRIER_POS_OFFSET = 0U; // offset in bits for encoding position of barrier… 57 * Should help to encode barrier for the compiler. 58 * PreWrite barrier can be used for avoiding lost object problem. 59 * PostWrite barrier used for tracking intergenerational or interregion references 67 * Pre barrier for SATB. 76 * store obj.field <- new_val // STORE for which barrier generated 84 …* Post barrier. Intergenerational barrier for GCs with explicit continuous young gen space. Uncond… 87 * store obj.field <- new_val // STORE for which barrier generated [all …]
|
| /arkcompiler/runtime_core/static_core/libpandabase/mem/ |
| D | gc_barrier.h | 28 /// Represents Pre and Post barrier 34 /// Indicates if barrier for store or load 41 constexpr uint8_t BARRIER_POS_OFFSET = 0U; // offset in bits for encoding position of barrier… 53 * Should help to encode barrier for the compiler. 54 * PreWrite barrier can be used for avoiding lost object problem. 55 * PostWrite barrier used for tracking intergenerational or interregion references 63 * Pre barrier for SATB. 72 * store obj.field <- new_val // STORE for which barrier generated 81 …* Post barrier. Intergenerational barrier for GCs with explicit continuous young gen space. Uncond… 84 * store obj.field <- new_val // STORE for which barrier generated [all …]
|
| /arkcompiler/runtime_core/libabckit/src/ |
| D | abckit_compiler_intrinsics.yaml | 46 clear_flags: [ "require_state", "call", "heap_inv", "acc_read", "no_dce", "barrier" ] 66 clear_flags: [ "require_state", "call", "heap_inv", "acc_write", "barrier" ] 86 …clear_flags: [ "require_state", "call", "heap_inv", "barrier", "can_throw", "no_dce", "no_hoist", … 126 clear_flags: [ "require_state", "call", "heap_inv", "barrier", "acc_read", "acc_write" ] 146 clear_flags: [ "require_state", "call", "heap_inv", "barrier", "acc_read", "acc_write" ] 166 clear_flags: [ "require_state", "call", "heap_inv", "barrier", "acc_read"] 186 clear_flags: [ "require_state", "call", "heap_inv", "barrier", "acc_read"] 206 clear_flags: [ "require_state", "call", "heap_inv", "barrier", "acc_read"] 226 … "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_read"] 246 … "can_throw", "no_dce", "require_state", "call", "runtime_call", "heap_inv", "barrier", "acc_read"] [all …]
|
| /arkcompiler/runtime_core/static_core/runtime/mem/gc/ |
| D | gc_barrier_set.h | 26 /// Base barrier set 60 * Pre barrier. Used by interpreter. 66 * Post barrier. Used by interpeter. 74 * Post barrier for range write. Used by interpeter. 82 … * Get barrier operand (literal, function pointer, address etc. See enum BarrierType for details. 83 * Should be used for barrier generation in Compiler. 85 * @return barrier operand (value is address or literal) 93 * Add barrier operand if there are no operands with this name 94 * @param barrier_position - pre or post position of barrier with added operand 111 BarrierType preType_; // Type of PRE barrier. [all …]
|
| D | gc_barrier_set.cpp | 76 LOG(FATAL, GC) << "Operand " << name << " not found for pre barrier"; in GetBarrierOperand() 81 LOG(FATAL, GC) << "Operand " << name << " not found for post barrier"; in GetBarrierOperand() 141 // StoreLoad barrier is required to guarantee order of previous reference store and card load in PostBarrier() 147 … LOG(DEBUG, GC) << "GC Interregion barrier write to " << objAddr << " value " << storedValAddr; in PostBarrier() 158 // Force post inter-region barrier in PostBarrier() 166 // StoreLoad barrier is required to guarantee order of previous reference store and card load in PostBarrier() 177 …LOG(DEBUG, GC) << "GC Interregion barrier write for memory range from " << cardTable_->GetCardSta… in Invalidate() 201 ASSERT(thread->GetPreBuff() != nullptr); // write barrier cant be called after Terminate in Enqueue()
|
| /arkcompiler/runtime_core/static_core/compiler/optimizer/ir/ |
| D | instructions.yaml | 113 flags: [no_dce, no_hoist, no_cse, barrier, acc_read, require_state, can_deoptimize] 313 …flags: [can_throw, no_dce, no_hoist, no_cse, barrier, alloc, require_state, runtime_call, acc_writ… 451 …flags: [store, can_throw, no_dce, no_hoist, no_cse, barrier, require_state, runtime_call, implicit… 487 flags: [load, can_throw, no_hoist, no_dce, no_cse, require_state, barrier, runtime_call] 505 …flags: [store, no_hoist, no_dce, no_cse, no_dst, require_state, barrier, runtime_call, require_tmp] 517 flags: [load, can_throw, no_dce, no_hoist, barrier, no_cse, require_state, runtime_call] 544 flags: [can_throw, no_hoist, barrier, no_dce, require_state, runtime_call] 552 flags: [can_throw, no_hoist, barrier, no_dce, require_state, runtime_call] 560 flags: [can_throw, no_dce, no_hoist, barrier, require_state, runtime_call] 568 flags: [can_throw, no_dce, no_cse, no_hoist, barrier, require_state, runtime_call] [all …]
|
| /arkcompiler/runtime_core/compiler/ |
| D | intrinsics.yaml | 31 clear_flags: ["no_dce", "no_hoist", "no_cse", "barrier", "require_state", "runtime_call"] 51 clear_flags: ["no_dce", "no_hoist", "no_cse", "barrier", "require_state", "runtime_call"] 71 clear_flags: ["no_dce", "no_hoist", "no_cse", "barrier", "require_state", "runtime_call"] 91 clear_flags: ["no_dce", "no_hoist", "no_cse", "barrier", "require_state", "runtime_call"] 111 clear_flags: ["no_dce", "no_hoist", "no_cse", "barrier", "require_state", "runtime_call"] 131 clear_flags: ["no_dce", "no_hoist", "no_cse", "barrier", "require_state", "runtime_call"] 151 clear_flags: ["no_dce", "no_hoist", "no_cse", "barrier", "require_state", "runtime_call"] 171 clear_flags: ["no_dce", "no_hoist", "no_cse", "barrier", "require_state", "runtime_call"] 191 clear_flags: ["no_dce", "no_hoist", "no_cse", "barrier", "require_state", "runtime_call"] 211 clear_flags: ["no_dce", "no_hoist", "no_cse", "barrier", "require_state", "runtime_call"] [all …]
|
| /arkcompiler/runtime_core/static_core/compiler/docs/ |
| D | scheduler_doc.md | 22 * No liveness analysis, only calculating dependencies using barrier/users/alias information 47 void Scheduler::AddDep(uint32_t* prio, Inst* from, Inst* to, uint32_t latency, Inst* barrier) { 50 // Do not add cross-barrier dependencies into deps_ 51 if (barrier == nullptr || old_[to] > old_[barrier]) { 74 // Dependency to the barrier 77 // Dependency from barrier 78 if (barrier) { 103 bool barrier = inst->IsBarrier(); 107 if (barrier || inst == bb->GetLastInst()) { 109 if (barrier) { [all …]
|
| D | memory_barriers_doc.md | 6 We can remove the barrier if we prove that the created object cannot be passed to another thread be… 25 So we will only set the barrier in the last instruction before potentially passing the created obje… 29 …the instructions NewObject, NewArray and NewMultiArray and encode memory barrier if the flag `true`
|
| /arkcompiler/ets_runtime/test/moduletest/barrier/ |
| D | BUILD.gn | 16 host_moduletest_action("barrier") { 19 entry_point = "--entry-point=barrier"
|
| D | barrier.ts | 17 * @tc.name:barrier 18 * @tc.desc:test barrier
|
| /arkcompiler/runtime_core/compiler/optimizer/ir/ |
| D | instructions.yaml | 106 flags: [cf, no_dce, no_hoist, no_cse, barrier, acc_read, terminator] 112 flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call] 141 flags: [cf, no_dce, no_hoist, no_cse, barrier, low_level, acc_read] 147 flags: [cf, no_dce, no_hoist, no_cse, barrier, acc_read] 153 flags: [no_dce, no_hoist, no_cse, barrier] 257 barrier: Instruction is a barrier for scheduling 267 mem_barrier: we need encode memory barrier after the instruction(for return.void before)
|
| /arkcompiler/ets_runtime/ecmascript/compiler/codegen/llvm/x64/ |
| D | x64_builder.cpp | 32 // input registers are same with the sign of runtime check barrier stub. in GetASMBarrierCall() 36 // input registers, first is the runtime check barrier stub. in GetASMBarrierCall() 37 // others are same with the sign of runtime check barrier stub. in GetASMBarrierCall() 48 …paramTys.push_back(llvmModule->GetRawPtrT()); // add the runtime check barrier stub as the first a… in GetASMBarrierCall()
|
| /arkcompiler/runtime_core/docs/diagrams/ |
| D | g1-concurrent-marking-activity.puactivity | 20 :Enable pre-barrier; 25 :Disable pre-barrier;
|
| /arkcompiler/runtime_core/static_core/docs/diagrams/ |
| D | g1-concurrent-marking-activity.plantuml | 20 :Enable pre-barrier; 25 :Disable pre-barrier;
|
| /arkcompiler/ets_runtime/ecmascript/compiler/codegen/llvm/aarch64/ |
| D | aarch64_builder.cpp | 32 // input registers are same with the sign of runtime check barrier stub. in GetASMBarrierCall() 36 // input registers, first is the runtime check barrier stub. in GetASMBarrierCall() 37 // others are same with the sign of runtime check barrier stub. in GetASMBarrierCall() 50 …paramTys.push_back(llvmModule->GetRawPtrT()); // add the runtime check barrier stub as the first a… in GetASMBarrierCall()
|
| /arkcompiler/ets_runtime/ecmascript/compiler/ |
| D | mcr_gate_meta_data.h | 356 enum Barrier { enum 403 void SetBarrier(Barrier barrier) in SetBarrier() argument 405 BarrierField::Set<uint32_t>(barrier, &value_); in SetBarrier() 408 Barrier GetBarrier() const in GetBarrier() 439 …static MemoryAttribute Create(Order order, Barrier barrier = UNKNOWN_BARRIER, ShareFlag share = UN… 441 …uint32_t value = OrderField::Encode(order) | BarrierField::Encode(barrier) | ShareField::Encode(sh… 449 using BarrierField = OrderField::NextField<Barrier, BARRIER_BITS>;
|
| D | post_schedule.cpp | 396 MemoryAttribute::Barrier kind = GetWriteBarrierKind(gate); in VisitStore() 398 case MemoryAttribute::Barrier::UNKNOWN_BARRIER: { in VisitStore() 406 case MemoryAttribute::Barrier::NEED_BARRIER: { in VisitStore() 411 case MemoryAttribute::Barrier::NO_BARRIER: { in VisitStore() 424 MemoryAttribute::Barrier PostSchedule::GetWriteBarrierKind(GateRef gate) in GetWriteBarrierKind() 428 return MemoryAttribute::Barrier::NO_BARRIER; in GetWriteBarrierKind() 441 comment = "asm store barrier\0"; in SelectBarrier() 445 comment = "store barrier\0"; in SelectBarrier() 451 comment = "store share barrier\0"; in SelectBarrier() 456 comment = "store not share barrier\0"; in SelectBarrier() [all …]
|
| /arkcompiler/runtime_core/static_core/compiler/optimizer/optimizations/ |
| D | scheduler.cpp | 29 * 3. No liveness analysis, only calculating dependencies using barrier/users/alias information. 51 void Scheduler::AddDep(uint32_t *prio, Inst *from, Inst *to, uint32_t latency, Inst *barrier) in AddDep() argument 64 // Do not add cross-barrier dependencies into deps_ in AddDep() 65 if (barrier == nullptr || old_[to] > old_[barrier]) { in AddDep() 111 bool barrier = inst->IsBarrier(); in ProcessInst() local 119 // Dependency to the barrier in ProcessInst() 124 // Dependency from barrier in ProcessInst() 125 if (barrier) { in ProcessInst() 285 bool barrier = inst->IsBarrier(); in ScheduleBasicBlock() local 291 if (barrier || inst == bb->GetLastInst()) { in ScheduleBasicBlock() [all …]
|
| /arkcompiler/runtime_core/static_core/runtime/coretypes/ |
| D | array.cpp | 65 …// Witout full memory barrier it is possible that architectures with weak memory order can try fet… in Create() 83 …// Without full memory barrier it is possible that architectures with weak memory order can try fe… in Create() 102 …// Witout full memory barrier it is possible that architectures with weak memory order can try fet… in Create() 125 …// Witout full memory barrier it is possible that architectures with weak memory order can try fet… in CreateTagged()
|
| D | string.cpp | 52 // After memcpy we should have a full barrier, so this writes should happen-before barrier in CreateFromString() 78 // After copying we should have a full barrier, so this writes should happen-before barrier in CreateFromMUtf8() 160 // After copying we should have a full barrier, so this writes should happen-before barrier in CreateFromUtf16() 217 // After copying we should have a full barrier, so this writes should happen-before barrier in CreateNewStringFromChars() 255 // After copying we should have a full barrier, so this writes should happen-before barrier in CreateNewStringFromBytes() 906 // After replacing we should have a full barrier, so this writes should happen-before barrier in DoReplace() 956 // After copying we should have a full barrier, so this writes should happen-before barrier in FastSubString() 1003 // After copying we should have a full barrier, so this writes should happen-before barrier in Concat() 1052 … // After setting length we should have a full barrier, so this write should happens-before barrier in AllocStringObject() 1057 …// Witout full memory barrier it is possible that architectures with weak memory order can try fet… in AllocStringObject()
|
| /arkcompiler/ets_runtime/ecmascript/ |
| D | runtime.cpp | 176 SuspendBarrier barrier; in SuspendAllThreadsImpl() local 189 barrier.Initialize(threads_.size() - 1); in SuspendAllThreadsImpl() 194 thread->SuspendThread(+1, &barrier); in SuspendAllThreadsImpl() 199 … // passing barrier will be triggered. When the thread-I switches from NON_RUNNING to RUNNING, in SuspendAllThreadsImpl() 200 … // it will firstly pass the barrier and then be blocked by the SUSPEND_REQUEST flag. If the in SuspendAllThreadsImpl() 202 … // barrier. If the thread-I go to checkpoint in RUNNING state, it will act on the barrier in SuspendAllThreadsImpl() 210 // is not data-race for passing barrier. in SuspendAllThreadsImpl() 229 barrier.Wait(); in SuspendAllThreadsImpl()
|
| /arkcompiler/runtime_core/static_core/runtime/mem/gc/g1/ |
| D | g1-helpers.cpp | 40 LOG(DEBUG, GC) << "G1GC pre barrier val = " << std::hex << oldval; in PreWrbFuncEntrypoint() 42 …// thread can't be null here because pre-barrier is called only in concurrent-mark, but we don't p… in PreWrbFuncEntrypoint() 70 // StoreLoad barrier is required to guarantee order of previous reference store and card load in PostWrbUpdateCardFuncEntrypoint()
|
| /arkcompiler/runtime_core/static_core/runtime/arch/x86/ |
| D | memory.h | 20 // X86 has strict memory order, only compiler barrier is required
|
| /arkcompiler/runtime_core/static_core/runtime/arch/amd64/ |
| D | memory.h | 20 // AMD64 has strict memory order, only compiler barrier is required
|