Home
last modified time | relevance | path

Searched full:instructions (Results 1 – 25 of 991) sorted by relevance

12345678910>>...40

/arkcompiler/runtime_core/compiler/docs/
Dir_builder.md10 form, without dead phi instructions, but it has various drawbacks, such as significant overhead, si…
18 - some instructions don't specify its type, f.e. `mov` instruction may produce int32 as well as flo…
21 IR ConstInst instructions.
39 3. Fixing the type uncertainties of the instructions.
43 1. Iterate over all bytecode instructions and make basic block for all target instructions, i.e. in…
51 2. If basic block is a loop header, create SafePoint and OsrSaveState instructions.
52 3. Create phi instructions for the live registers.
55 - create auxiliary instructions (SaveState, NullCheck, etc) if needed
63 **Fixing the type uncertainties of the instructions**
66 1. Split constants: for all constants that are used in instructions with different types, split con…
[all …]
Dvn_doc.md5 …umbering sets special numbers(`vn`) to all instructions. If two instruction has equal VN, so the i…
6 At the case we move users from second instruction to first instructions(first instruction is domina…
10 Reducing the number of instructions.
18 All instructions have field `vn_`.
19 We pass through all instructions in PRO order. If the instruction has attribute NO_Cse, we set next…
20 For other instructions we save information: opcode, type, `vn` of instruction inputs, advanced prop…
21 Based on the collected information, we are looking for a equivalent instructions in the hash map.
23 1. If equivalent instructions were found:
25 …b. If all equivalent instructions do not dominate current instruction, we insert the instruction i…
26 2. If equivalent instructions weren't found, we set next `vn` to the current instruction field and …
[all …]
/arkcompiler/runtime_core/static_core/compiler/docs/
Dir_builder.md10 form, without dead phi instructions, but it has various drawbacks, such as significant overhead, si…
18 - some instructions don't specify its type, f.e. `mov` instruction may produce int32 as well as flo…
21 IR ConstInst instructions.
39 3. Fixing the type uncertainties of the instructions.
43 1. Iterate over all bytecode instructions and make basic block for all target instructions, i.e. in…
51 2. If basic block is a loop header, create SafePoint and OsrSaveState instructions.
52 3. Create phi instructions for the live registers.
55 - create auxiliary instructions (SaveState, NullCheck, etc) if needed
63 **Fixing the type uncertainties of the instructions**
66 1. Split constants: for all constants that are used in instructions with different types, split con…
[all …]
Dvn_doc.md5 …umbering sets special numbers(`vn`) to all instructions. If two instruction has equal VN, so the i…
6 At the case we move users from second instruction to first instructions(first instruction is domina…
10 Reducing the number of instructions.
18 All instructions have field `vn_`.
19 We pass through all instructions in PRO order. If the instruction has attribute NO_Cse, we set next…
20 For other instructions we save information: opcode, type, `vn` of instruction inputs, advanced prop…
21 Based on the collected information, we are looking for a equivalent instructions in the hash map.
23 1. If equivalent instructions were found:
25 …b. If all equivalent instructions do not dominate current instruction, we insert the instruction i…
26 2. If equivalent instructions weren't found, we set next `vn` to the current instruction field and …
[all …]
Descape_analysis.md14 …ithm initially marks all the allocations as virtual and iterates over instructions in the basic bl…
18 …virtual state (VirtualState) or implicit materialized state. Multiple instructions can share the s…
20 …truction it was originally created for and mapping between fields and instructions whose values we…
22 - avoid materialization on StoreObject/LoadObject instructions;
32 * set of phi instructions that should be inserted into each block;
39 * Allocates all required phi instructions;
41 * Replace all aliased instructions using alias mapping;
42 * Resolve inputs of all newly created phi instructions;
44 * Remove dead allocations, loads/stores and alias instructions.
78 materialize instructions associated with field
[all …]
Dmemory_barriers_doc.md5 We need to encode barriers after the instructions NewArray, NewObject, NewMultiArray so that if the…
11 Reducing the number of instructions and speed up execution.
19 There is instruction flag `MEM_BARRIER`. The flag is set to `true` for the instructions NewObject, …
21 We pass through all instructions in PRO order. If the instruction has flag `MEM_BARRIER` we add the…
29 Codegen checks the flag `MEM_BARRIER` for the instructions NewObject, NewArray and NewMultiArray an…
93 Instructions `2.ref NewArray`, `5.ref NewObject` and `10.ref NewObject` have flag `MEM_BARRIER` …
94 `7.void CallStatic` don't have the instructions `2.ref NewArray`, `5.ref NewObject` as inputs.
95 So the pass `OptimizeMemoryBarriers` will remove the flag from these instructions and skip in `10.r…
Dlse_doc.md4 …ion is to delete store instructions that store a value to memory that has been already written as …
8 Elimination of load and store instructions generally reduces the number of long latency memory inst…
18 …that two memory instructions access the same memory address. This can be done using alias analysi…
19 * `MUST_ALIAS` if the instructions definitely access the same memory address
20 * `NO_ALIAS` if the instructions definitely access different memory addresses.
21 * `MAY_ALIAS` if analysis can't say with confidence whether the instructions access the same memor…
27instructions write values on the heap, load instructions read values from the heap. But if a load …
33 Once a heap is initialized for a basic block we iterate over instructions and update heap by applyi…
36 …then the new stored value is written into heap. The values of memory instructions that `MUST_ALIA…
38 …we update heap value for this load with the result of this load. All instructions that `MUST_ALIA…
[all …]
Dpeephole_doc.md6 Reducing the number of instructions.
14 Visit all instructions in PRO order.
24 * Putting constant input on second place for commutative instructions (ex. Add, Mul, ...)
25 * Grouping instructions (ex. b=a+2, c=b-4 -> c=a-2)
26 * Remove redundant instructions (ex. b=a+0, b=a&1)
27 * Replace instructions for equal but more cheap (ex. a*=4 - > a<<=2, b*=-1 -> b = -b )
28 * De Morgan rules for `and` and `or` instructions.
/arkcompiler/runtime_core/isa/
Dasserts.rb33 assert('Unique opcodes') { Panda.instructions.map(&:opcode).uniq? }
36 Panda.instructions.reject(&:prefix).size + Panda.prefixes.size <= 256
40 Panda.instructions.reject(&:prefix).sorted_by?(&:opcode_idx)
47 assert('All instructions for a prefix should fit one byte') do
49 … Panda.instructions.select { |insn| insn.prefix && (insn.prefix.name == prefix.name) }.size <= 256
54 Panda.instructions.map do |insn|
60 Panda.instructions.map do |insn|
85 uses = Panda.instructions.flat_map(&type.to_proc).uniq
93 uses = Panda.instructions.flat_map(&type.to_proc).uniq
99 assert('Format operands are parseable') { Panda.instructions.each(&:operands) }
[all …]
/arkcompiler/runtime_core/static_core/isa/
Dasserts.rb33 assert('Unique opcodes') { Panda.instructions.map(&:opcode).uniq? }
36 Panda.instructions.reject(&:prefix).size + Panda.prefixes.size <= 256
40 Panda.instructions.reject(&:prefix).sorted_by?(&:opcode_idx)
47 assert('All instructions for a prefix should fit one byte') do
49 … Panda.instructions.select { |insn| insn.prefix && (insn.prefix.name == prefix.name) }.size <= 256
54 Panda.instructions.map do |insn|
60 Panda.instructions.map do |insn|
85 uses = Panda.instructions.flat_map(&type.to_proc).uniq
93 uses = Panda.instructions.flat_map(&type.to_proc).uniq
99 assert('Format operands are parseable') { Panda.instructions.each(&:operands) }
[all …]
/arkcompiler/runtime_core/compiler/tests/
Diterators_test.cpp92 // Check InstForwardValidIterator with erasing instructions in Check()
120 // Check InstBackwardValidIterator with erasing instructions in Check()
154 void InitExpectData(std::vector<Inst *> &instructions) in InitExpectData() argument
160 for (auto inst : instructions) { in InitExpectData()
171 void PopulateBlock(BasicBlock *block, std::vector<Inst *> &instructions) in PopulateBlock() argument
173 for (auto inst : instructions) { in PopulateBlock()
197 std::vector<Inst *> instructions; in TEST_F() local
198 Check(instructions); in TEST_F()
210 std::vector<Inst *> instructions(IteratorsTest::INST_COUNT); in TEST_F() local
211 for (auto &inst : instructions) { in TEST_F()
[all …]
/arkcompiler/runtime_core/docs/
Dir_format.md5 * Support all the features and instructions of Panda bytecode
7 * Compiler overhead about 100000 native instructions per a bytecode instruction(standard for JIT co…
63 * Common properties will be introduced for the instructions, making it easier to add new instructio…
71 Panda bytecode has more than 200 instructions. We need to convert all Bytecode instructions in IR i…
72 The specifics and properties of instructions should be taken into account in optimizations and code…
76 …zations. For this, need to support ARMv8-M Instruction Set(only those instructions that are needed)
80 IR contains high- and low-level instructions with a single interface.
82 At the second step, the instructions will be split on several low level instructions(close to assem…
87 Typically, an overhead is considered to be the average number of 'native' instructions(ARM) that ar…
93 The goal is overhead about 100000 native instructions per guest (standard for JIT compilers)
[all …]
Dirtoc.md13 …ove the `IrConstructor`. It reads compiler's `instructions.yaml` file to get information about ins…
15 Each opcode in the IR instructions has corresponding token in the irtoc lang. For example, IR instr…
33 ### Pseudo instructions
34 Pseudo instructions are not a real IR instructions in terms of compiler, those instructions are nee…
37 Pseudo instructions are described like regular instructions in the `instructions.yaml` file, but in…
41 …e `var` holds the newly created instruction `Add` and it can be input for the further instructions.
/arkcompiler/runtime_core/static_core/irtoc/lang/
Dbasic_block.rb19 attr_reader :index, :function, :preds, :instructions accessor in BasicBlock
23 @instructions = []
33 @instructions[-1]
37 @instructions.empty?
41 !empty? && @instructions[-1].terminator?
47 @instructions.prepend(inst)
49 @instructions << inst
82 @instructions.each(&:emit_ir)
87 @instructions.each(&:generate_builder)
Dinstructions_data.rb19 @@instructions = {}
25 yaml_data['instructions'].each do |inst|
27 @@instructions[inst["opcode"].to_sym] = inst
31 @@instructions[inst["opcode"].to_sym] = inst
39 def self.instructions; @@instructions; end singletonMethod in InstructionsData
/arkcompiler/runtime_core/static_core/compiler/tests/
Diterators_test.cpp168 // Check InstForwardValidIterator with erasing instructions in Check()
170 // Check InstBackwardValidIterator with erasing instructions in Check()
175 void InitExpectData(std::vector<Inst *> &instructions) in InitExpectData() argument
181 for (auto inst : instructions) { in InitExpectData()
192 void PopulateBlock(BasicBlock *block, std::vector<Inst *> &instructions) in PopulateBlock() argument
194 for (auto inst : instructions) { in PopulateBlock()
218 std::vector<Inst *> instructions; in TEST_F() local
219 Check(instructions); in TEST_F()
231 std::vector<Inst *> instructions(IteratorsTest::INST_COUNT); in TEST_F() local
232 for (auto &inst : instructions) { in TEST_F()
[all …]
/arkcompiler/runtime_core/static_core/docs/
Dir_format.md5 * Support all the features and instructions of Panda bytecode
7 * Compiler overhead about 100000 native instructions per a bytecode instruction(standard for JIT co…
72 * Common properties will be introduced for the instructions, making it easier to add new instructio…
80 Panda bytecode has more than 200 instructions. We need to convert all Bytecode instructions in IR i…
81 The specifics and properties of instructions should be taken into account in optimizations and code…
85 …zations. For this, need to support ARMv8-M Instruction Set(only those instructions that are needed)
89 IR contains high- and low-level instructions with a single interface.
91 At the second step, the instructions will be split on several low level instructions(close to assem…
96 Typically, an overhead is considered to be the average number of 'native' instructions(ARM) that ar…
102 The goal is overhead about 100000 native instructions per guest (standard for JIT compilers)
[all …]
Dirtoc.md13 …ove the `IrConstructor`. It reads compiler's `instructions.yaml` file to get information about ins…
15 Each opcode in the IR instructions has corresponding token in the irtoc lang. For example, IR instr…
33 ### Pseudo instructions
34 Pseudo instructions are not a real IR instructions in terms of compiler, those instructions are nee…
37 Pseudo instructions are described like regular instructions in the `instructions.yaml` file, but in…
41 …e `var` holds the newly created instruction `Add` and it can be input for the further instructions.
/arkcompiler/runtime_core/docs/changelogs/
D2023-12-31-isa-changelog.md6 * Bytecode instructions
11 ## Bytecode instructions
12 …5593c94d5/zh-cn/application-dev/arkts-utils/arkts-sendable.md), 12 bytecode instructions are added.
14 …ch will use define semantic instead of set semantic, the following bytecode instructions are added:
19 2. To support private properties in class and access to them, the following bytecode instructions a…
34 6. To support sendable class, the following bytecode instructions are added:
D2024-05-24-isa-changelog.md6 * Bytecode instructions
11 ## Bytecode instructions
12 …he performance of "istrue" and "isfalse" bytecode instructions, the following two bytecode instruc…
D2024-03-20-isa-changelog.md6 * Bytecode instructions
11 ## Bytecode instructions
12 To support lazy loading of module variables in sendable class, the following bytecode instructions
/arkcompiler/runtime_core/static_core/verification/absint/tests/
Dexec_context_test.cpp36 … RegContext &ctx3, uint8_t const instructions[128U]) // NOLINT(modernize-avoid-c-arrays) in ProcessAbsIntExecContext()
38 const uint8_t *ep = &instructions[0]; in ProcessAbsIntExecContext()
108 uint8_t instructions[128U]; in TEST_F() local
110 ExecContext execCtx {&instructions[0], &instructions[127U], &typeSystem}; in TEST_F()
112 std::array<const uint8_t *, 6> cp = {&instructions[8U], &instructions[17U], &instructions[23U], in TEST_F()
113 … &instructions[49U], &instructions[73U], &instructions[103U]}; in TEST_F()
144 ProcessAbsIntExecContext(execCtx, cp, ctx2, ctx3, instructions); in TEST_F()
/arkcompiler/runtime_core/static_core/plugins/ets/bytecode_optimizer/templates/
Dets_codegen_intrinsics_gen.inc.erb18 % instructions = Panda::instructions.select{ |b| b.namespace == "ets" && b.intrinsic_name }
19 % if instructions.first
20 % instructions = instructions.group_by(&:intrinsic_name)
26 % instructions.each do |intrinsic_name, group|
/arkcompiler/runtime_core/static_core/libllvmbackend/transforms/
Dpipeline.cfg42 instcombine, # Combine redundant instructions
58 # wrap-speculative-execution, # Speculatively execute instructions if target has divergen…
62 instcombine, # Combine redundant instructions
80 instcombine, # Combine redundant instructions
95 instcombine, # Combine redundant instructions
108 instcombine # Combine redundant instructions
132 # wrap-speculative-execution, # Speculatively execute instructions if target has divergent br…
136 instcombine, # Combine redundant instructions
150 instcombine, # Combine redundant instructions
162 instcombine, # Combine redundant instructions
[all …]
Dpipeline_irtoc.cfg45 instcombine, # Combine redundant instructions
60 … wrap-speculative-execution, # Speculatively execute instructions if target has divergent branches
64 instcombine, # Combine redundant instructions
82 instcombine, # Combine redundant instructions
96 instcombine, # Combine redundant instructions
109 instcombine # Combine redundant instructions
137 instcombine, # Combine redundant instructions
147 instcombine, # Combine redundant instructions
151 instcombine, # Combine redundant instructions
167 instsimplify, # Remove redundant instructions
[all …]

12345678910>>...40