 který se zvuknil kámo být. Já jsem hlaví Neutulčenhaking, já vyskávám hodiného vás a měch vám hodiné hodiné závodiny a hodiné závodiny z největou díky. A mi je největou děláme. A co? A když jsme zvuknili největou díky? A? Nemožu se největou díky. Taky se to největou díky. A! To je velmi úplně. Mám to závodit? Tak, tak. To je tak. To je tak, že tak nezapravil. Já jsem závodit můj brzo. Ale to je velmi závodit. To je velmi závodit. Aby se závodit. Ok, tak se to závodit. Tak, vlastně jsem závodit, když jsem závodit, když jsem závodit, když jsem závodit, ok. To je velmi dvětně svůj vásד pistol i krokenel. To je závodit v GESTAID která može to velmi outputs a tak obhud je ná drowning weekends, může to přilet process. To vám umě earning fokus závodit persen�나. A výstavíme závoditě hodně. To je hodně nezávoditě. A než jsme závoditě s návoditěm. Mám závoditě jedna instrukačná v AMD64, ale výstavíme z hodně návoditě větká výstavitě. Závoditě s instrukačnou, a představíme nás nevětnější reprezentace. Až se optimálně optimálně optimálně. Až se reprezentáře. A co máme, je to návětnější ráč, který je zvědnit, by se představit do návětné kode. Až se nevětnější selektor. Vyének se oddělává kouka. Vyének se oddělává kouka než netivů, ale je nevýročné včasné zrůčne. No to je večasné zrůčnice, který je včasné zrůčnice, které je zrůčná a jsme závodat. Vyének se oddělává a jsme zrůčnice. Takže vůstředný režistřel, když jsem říkával, opravdu se zvukává zvukování a producí zvukování. Je to nejlepší mapy, protože máme mnohé zvukování, kteří nechci vytvořit na zvukování zvukování a režistřel je velmi optimální. Máme mnohé zvukování. Máme mnohé zvukování, kteří nechci vytvořit na zvukování zvukování. Vzložíme to, které je velmi optimální. To je zvukování, které je velmi optimální. Máme mnohé zvukování. Je to zvukování, které je velmi optimální. Vzložíme to, které je velmi optimální. Máme mnohé zvukování. Vzložíme to, které je velmi optimální. Máme dva dnes, které je velmi optimální. Máme mnohé zvukování, které je velmi optimální. Máme mnohé zvukování, které je velmi optimální. za jednou basic block, 10 než 20 elementů, to je nejvědělejší. Až jsme stavili spilslots, vždyž jsme stavili spilslots, a v finačném první první první instrukci 1 v 1, stavili mapy, vždyž v VRX a VRX, a vytvořili finační kout. když je to nezvědětné, takže je to nezvědětné, nebo je to nezvědětné. Až máme spilslot, který je spětnější stát. Když je to spětnější stát, když je to spětnější stát, když je to spětnější stát, když je to spětnější stát. Vyřeč je tady vždyčný. Až se závodujíte rík R10. A to je to. Až se závodujíte... Až se závodujíte... Představíme návršené mapy a zvukujíme návršené mapy na VR68. Je to největné science. Představíme návršené partice, když jsme zvukovat něco. Představíme návršené partice, když jsme zvukovat něco, když jsme zvukovat něco, když jsme zvukovat něco, když jsme zvukovat něco. Představíme návršené partice, když jsme zvukovat něco, když jsme zvukovat něco, když jsme zvukovat něco, když jsme zvukovat něco. Vyrec was assigned to R9, so we spil Vyrec 70 to its spil slot, free the rear rack R9 and VR then free to use it for VR15. Když jsme zvukovat něco, když jsme zvukovat něco, když jsme zvukovat něco. To jsou simple ones, no, nothing very complicated because it needs to be fast. And they basically come from very simple observations. So we established move Vyrec call us in chain, so we can get rid of some rack rack moves instructions in the V code. We can reuse spil slots. If one Vyrec dies, then we can reuse its spil slot for another Vyrec, which comes with. So we don't have to have a unique spil slot for every Vyrec. We have very simple Vyrec spilling criteria. We just scan forward in the incoming instruction stream and spil the Vyrec, which is most farthest in the instruction stream. So it means we spil a Vyrec, which appears maybe in 15 instruction instead of the second one. We can also avoid spilling if the Vyrec has been spilt and re-roaded and the value in the register has not changed for a real registration location strategy. I am going to talk about them now, I didn't say that. For the list of these three registers for 64-bit integer class, they are sorted according to their preferred location strategy. So it means we take the last ones first and that because these are color-safe, so the observation was very simple. Let's use the color-safe rear racks for short-lift V-recks, because that would be quite efficient. Let's take the color-safe registers for the Vyrecks, which span across the function calls. So if we take, for example, R15, then we don't have to spil it before calling a function. And this optimization comes from an observation that on MD64 it's possible and X86 it's possible to combine several instructions together. So let's assume that Vyrec is spil and we have this V-code instruction, so in standard way we would need to have first reloaded from its spil slot to a real register. And then do standard way. No, no, no, no, it doesn't. But it's just for an instruction. So we can direct reload it from its spil slot. Several benchmarks have been made on different platforms. I made a benchmark on ARM64, PowerPC, S390X and MD64. Here just one of them is shown. It's a running mem-check on per visit bar, visit 2. And we count the total number of instructions. So this is total number of instructions for mem-check, which is running this test. So next register allocator V2, oh, it's total, it's total. It's total for the mem-check, for the whole mem-check running this test. So V3 is slightly better. If we take just register allocator itself from this total, then also V3 is slightly better. And that's very good because it's simple, much simpler than the V2. And if we look at the ratio. The ratio indicates how much code bloat was introduced by all the translations and instrumentations and allocations. So if we take one instruction on the input and then we translate it instrumented and translate it back, we get 16 instructions output. So it's all in mem-check, with mem-check. So V3 outputs slightly better code, which is quite good because it helps with icash misses. That's true, that's true. But I didn't measure the improvements made by just the recaloc itself. So the new version V3 is now in the master. And it will be the default one with the next bug in the release. Is it? Now it was integrated in August. I checked, I think. Or maybe some optimizations went later. And the deal implementation is still available. So if anyone wants to play, the old version is still there. And that's it. We would like to hear your opinions on how to improve the allocation strategies better. If you have any ideas, suggestions, please let us know. All the optimizations are just simple ones based on simple observations. Compilers have much sophisticated ones. Ok, so now I'll take any questions. We've got five minutes. What do you mean in this allocation strategy? I'm allocating the register for the golden fortune when you have one. In your previous involves you mentioned you have a golden fortune in the year. Ok. In the reason why not starting with people and allocating from them. And still, not with a chain up as much. So even if you start with a call instruction and work backwards. But there are many call instructions that you can just start. That's the first one. Ok, I see. It would be more fun to explore. Why not? I don't know, it needs to be tried. Anyone else? Ok, if not, then we are done. Thank you. Check it out, check it out. Oh, very good. Thank you. I'd like to give you a chance to operate. Is it on your belt or pocket? Can I use your laser pointer? Ok, please. Testing, testing. Testing, testing. He cannot do anything. One, two, three. I think so. Ok, ok. But still, can I borrow your laser pointer, please? I hear these are very good for cats as well. You're playing with cats. I have no idea. You have no cats? No, no. You know, you can do this and the cat will run after it. I think it's... Do they run after it? No, no. Do you want some new cases? So, I think it's from 11.30 until 12.10, is that right? No. So, I don't actually have that many slides. Yes, I try. Well, you can throw something at me if it's... I have only 14 slides, anyway.