Home
last modified time | relevance | path

Searched full:barrier (Results 1 – 25 of 107) sorted by relevance

12345

/arkcompiler/runtime_core/libpandabase/mem/
Dgc_barrier.h29 * 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/
Dgc_barrier.h28 /// 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/
Dabckit_compiler_intrinsics.yaml46 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/
Dgc_barrier_set.h26 /// 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 …]
Dgc_barrier_set.cpp76 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/
Dinstructions.yaml113 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/
Dintrinsics.yaml31 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/
Dscheduler_doc.md22 * 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 …]
Dmemory_barriers_doc.md6 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/
DBUILD.gn16 host_moduletest_action("barrier") {
19 entry_point = "--entry-point=barrier"
Dbarrier.ts17 * @tc.name:barrier
18 * @tc.desc:test barrier
/arkcompiler/runtime_core/compiler/optimizer/ir/
Dinstructions.yaml106 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/
Dx64_builder.cpp32 // 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/
Dg1-concurrent-marking-activity.puactivity20 :Enable pre-barrier;
25 :Disable pre-barrier;
/arkcompiler/runtime_core/static_core/docs/diagrams/
Dg1-concurrent-marking-activity.plantuml20 :Enable pre-barrier;
25 :Disable pre-barrier;
/arkcompiler/ets_runtime/ecmascript/compiler/codegen/llvm/aarch64/
Daarch64_builder.cpp32 // 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/
Dmcr_gate_meta_data.h356 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>;
Dpost_schedule.cpp396 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/
Dscheduler.cpp29 * 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/
Darray.cpp65 …// 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()
Dstring.cpp52 // 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/
Druntime.cpp176 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/
Dg1-helpers.cpp40 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/
Dmemory.h20 // X86 has strict memory order, only compiler barrier is required
/arkcompiler/runtime_core/static_core/runtime/arch/amd64/
Dmemory.h20 // AMD64 has strict memory order, only compiler barrier is required

12345