Home
last modified time | relevance | path

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

1234

/arkcompiler/runtime_core/static_core/runtime/
Druntime.yaml46 clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
58 clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
70 clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
82 clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
93 clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
104 clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
115 clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
126 clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
137 clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
148 clear_flags: [no_dce, no_hoist, no_cse, barrier, require_state, runtime_call]
[all …]
/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/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.cpp75 LOG(FATAL, GC) << "Operand " << name << " not found for pre barrier"; in GetBarrierOperand()
80 LOG(FATAL, GC) << "Operand " << name << " not found for post barrier"; in GetBarrierOperand()
132 … LOG(DEBUG, GC) << "GC Interregion barrier write to " << objAddr << " value " << storedValAddr; in PostBarrier()
143 // Force post inter-region barrier in PostBarrier()
155 …LOG(DEBUG, GC) << "GC Interregion barrier write for memory range from " << ToVoidPtr(begin) << " … in Invalidate()
176 ASSERT(thread->GetPreBuff() != nullptr); // write barrier cant be called after Terminate in Enqueue()
/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/optimizer/ir/
Dinstructions.yaml113 flags: [no_dce, no_hoist, no_cse, barrier, acc_read, require_state, can_deoptimize]
311 …flags: [can_throw, no_dce, no_hoist, no_cse, barrier, alloc, require_state, runtime_call, acc_writ…
449 …flags: [store, can_throw, no_dce, no_hoist, no_cse, barrier, require_state, runtime_call, implicit…
485 flags: [load, can_throw, no_hoist, no_dce, no_cse, require_state, barrier, runtime_call]
503 …flags: [store, no_hoist, no_dce, no_cse, no_dst, require_state, barrier, runtime_call, require_tmp]
515 flags: [load, can_throw, no_dce, no_hoist, barrier, no_cse, require_state, runtime_call]
542 flags: [can_throw, no_hoist, barrier, no_dce, require_state, runtime_call]
550 flags: [can_throw, no_hoist, barrier, no_dce, require_state, runtime_call]
558 flags: [can_throw, no_dce, no_hoist, barrier, require_state, runtime_call]
566 flags: [can_throw, no_dce, no_cse, no_hoist, 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/runtime_core/static_core/runtime/mem/gc/g1/
Dg1-helpers.cpp38 LOG(DEBUG, GC) << "G1GC pre barrier val = " << std::hex << oldval; in PreWrbFuncEntrypoint()
40 …// thread can't be null here because pre-barrier is called only in concurrent-mark, but we don't p… in PreWrbFuncEntrypoint()
65 // NOTE(dtrubenkov): remove !card->IsYoung() after it will be encoded in compiler barrier in PostWrbUpdateCardFuncEntrypoint()
67 …// NOTE(dtrubenkov): either encode this in compiler barrier or remove from Interpreter barrier (if… in PostWrbUpdateCardFuncEntrypoint()
/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/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 depenedencies 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()
261 bool barrier = inst->IsBarrier(); in ScheduleBasicBlock() local
267 if (barrier || inst == bb->GetLastInst()) { in ScheduleBasicBlock()
[all …]
/arkcompiler/ets_runtime/ecmascript/compiler/
Dmcr_gate_meta_data.h388 enum Barrier { enum
398 static MemoryOrder Create(Order order, Barrier barrier = NO_BARRIER)
400 uint32_t value = OrderField::Encode(order) | BarrierField::Encode(barrier);
404 void SetBarrier(Barrier barrier) in SetBarrier() argument
406 BarrierField::Set<uint32_t>(barrier, &value_); in SetBarrier()
409 Barrier GetBarrier() const in GetBarrier()
433 using BarrierField = OrderField::NextField<Barrier, BARRIER_BITS>;
/arkcompiler/runtime_core/static_core/plugins/ets/runtime/
Dets_libbase_runtime.yaml57 clear_flags: [ no_dce, no_hoist, no_cse, barrier, require_state, runtime_call ]
68 clear_flags: [ no_dce, no_hoist, no_cse, barrier, require_state, runtime_call ]
79 clear_flags: [ no_dce, no_hoist, no_cse, barrier, require_state, runtime_call ]
90 clear_flags: [ no_dce, no_hoist, no_cse, barrier, require_state, runtime_call ]
101 clear_flags: [ no_dce, no_hoist, no_cse, barrier, require_state, runtime_call ]
112 clear_flags: [ no_dce, no_hoist, no_cse, barrier, require_state, runtime_call ]
123 clear_flags: [ no_dce, no_hoist, no_cse, barrier, require_state, runtime_call ]
134 clear_flags: [ no_dce, no_hoist, no_cse, barrier, require_state, runtime_call ]
145 clear_flags: [ no_dce, no_hoist, no_cse, barrier, require_state, runtime_call ]
156 clear_flags: [ no_dce, no_hoist, no_cse, barrier, require_state, runtime_call ]
[all …]
/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/runtime_core/static_core/runtime/coretypes/
Darray.cpp62 …// Witout full memory barrier it is possible that architectures with weak memory order can try fet… in Create()
80 …// Without full memory barrier it is possible that architectures with weak memory order can try fe… in Create()
99 …// Witout full memory barrier it is possible that architectures with weak memory order can try fet… in Create()
122 …// 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()
77 // After copying we should have a full barrier, so this writes should happen-before barrier in CreateFromMUtf8()
144 // After copying we should have a full barrier, so this writes should happen-before barrier in CreateFromUtf16()
202 // After copying we should have a full barrier, so this writes should happen-before barrier in CreateNewStringFromChars()
241 // After copying we should have a full barrier, so this writes should happen-before barrier in CreateNewStringFromBytes()
891 // After replacing we should have a full barrier, so this writes should happen-before barrier in DoReplace()
941 // After copying we should have a full barrier, so this writes should happen-before barrier in FastSubString()
988 // After copying we should have a full barrier, so this writes should happen-before barrier in Concat()
1036 … // After setting length we should have a full barrier, so this write should happens-before barrier in AllocStringObject()
1041 …// Witout full memory barrier it is possible that architectures with weak memory order can try fet… in AllocStringObject()
/arkcompiler/runtime_core/docs/
Dmemory-management.md540 GC barrier is a block on writing to(write barrier) or reading from(read barrier) certain memory by …
549 Besides addressing of heap inconsistency problem, write barrier can be used for maintaining incomin…
551 So we can solve these issues with GC WRB(write barrier). GC WRB can be _pre_(inserted before the st…
553 _Pre_ barrier usually used to solve issue with lost alive object during concurrent marking. Pseudoc…
561 obj.field = new_val; // STORE for which barrier generated
564 _Post_ barrier can be used to solve issue with tracking references from tenured generation to the y…
566 obj.field = new_val; // STORE for which barrier generated
595 …1. To describe barrier use some meta-language or IR which can be interpreted/encoded by all compil…
596 …ions here, so consider this as an idea) One compiler knows how to encode barrier using runtime int…
597 …1. The compiler knows for each barrier type how it should be encoded (see pseudocode in `libpandab…
[all …]
/arkcompiler/runtime_core/static_core/docs/
Dmemory-management.md540 GC barrier is a block on writing to(write barrier) or reading from(read barrier) certain memory by …
549 Besides addressing of heap inconsistency problem, write barrier can be used for maintaining incomin…
551 So we can solve these issues with GC WRB(write barrier). GC WRB can be _pre_(inserted before the st…
553 _Pre_ barrier usually used to solve issue with lost alive object during concurrent marking. Pseudoc…
561 obj.field = new_val; // STORE for which barrier generated
564 _Post_ barrier can be used to solve issue with tracking references from tenured generation to the y…
566 obj.field = new_val; // STORE for which barrier generated
595 …1. To describe barrier use some meta-language or IR which can be interpreted/encoded by all compil…
596 …ions here, so consider this as an idea) One compiler knows how to encode barrier using runtime int…
597 …1. The compiler knows for each barrier type how it should be encoded (see pseudocode in `libpandab…
[all …]
/arkcompiler/runtime_core/static_core/irtoc/
Dintrinsics.yaml155 …nnerShareable Full (ACQUIRE + RELEASE) barrier. Ensures the order of memory accesses before and af…
/arkcompiler/runtime_core/static_core/tests/checked/
Dmemory-barrier.pa15 #! CHECKER Constructor has memory barrier before return
/arkcompiler/runtime_core/static_core/runtime/arch/amd64/
Dmemory.h20 // AMD64 has strict memory order, only compiler barrier is required
/arkcompiler/runtime_core/static_core/runtime/mem/gc/epsilon/
Depsilon_barrier.cpp24 LOG(DEBUG, GC) << "EpsilonGC barrier"; in CallEpsilonBarrier()
/arkcompiler/runtime_core/static_core/runtime/arch/x86/
Dmemory.h20 // X86 has strict memory order, only compiler barrier is required

1234