Bestand wählen
Merken

SDCC Small Device C Compiler

Zitierlink des Filmsegments
Embed Code

Automatisierte Medienanalyse

Beta
Erkannte Entitäten
Sprachtranskript
OK so I went home to the talk on the small UIC compiler the I thought the clique
production test is then talk a bit about the things that I'm part of the users like standard compliance and the targeted apart and then I'll go on about them optimal their hands and particularly enticing optimization is all I just Sunderland you and on the boat deck the OK so what is the money I C
compiler suspended C compiler supporting Mattias the stand out 1 and 99 and the long 11 standards of the latest him it's mostly men to the free-spending implementation the but it could also be used as part of host implementations 0 implementation it will be a little bit more think of the the there's all supporting tools included such as a sampling kind similar task on hand not attacked us that's Manteuffel systems so as such as the CMU milk so Windows Mac OS and millions of innocent and the targets quantum at that attacked us since it's 5 1 so that the innocent of 390 variances that AT and medicine at the hands and and the scalar it's easy way Tennessee alright as Michael electron is estimated and there's also some support for the Michael to big targets it does have some and little optimizations that makes sense for these targets and make sense for embedded software now the Balkans on a very big that you don't find in general compilers that the GCC are Olivia OK it's
going to lose that compliance man the state then that's but they're not as strict as a mother language stand out say allows implementations and cleaner and we can use that to get an efficient coat the so small at identifying numbers of itself integer pointer patterns on this some freedom in they are felt don't have to be either belief compliant and they have some features that are particularly useful for optimization and so on and on about the little bit in the and that's following standard slide that things that we can use so as this is the guy so then was how efficient colored and tighten the standard-compliant sometimes the targets conflict a bit but I think the owners fond of reasonable compromise between the OK this this cell as the standard the Lucene I understand that if need completely Zapata nasty sissy knowledge to big things that are missing I doubt it I mean there's there's another thing about the morning hand-annotated like a float and factors and unions can be assigned passes that only does all the time yet the yes or the yes so I you know basically as just the norm another to implement and yet I mean that is something used on those small systems so it was not the top I only to it implemented and the structures and unions that is more likely for his dollar Gleason's I mean many analysis compilers apparently didn't have thought if someone wants implement it of course mn come on now you have designs environment copy OK so there's a 99 stand the on the mostly but there's been a gaps this intermingling of speculations and code is not cells and inclinations and have to be at the beginning of a block we don't support dominant suppliers if it's not going to part of the the component was are not yet supported and many abilities areas are not supported it is not in the feature that we have souls new integer types is a fixed minutes and went to the state the fascinating and on which I think are quite useful for programming embedded systems because on you don't want to waste had test us by using an endosomal conduct if and when fast 80 what do and what only have support for which in come cases can be used for generating more efficient code as and if even with user named as a flat the OK now there's a low see 11 there's still large gaps in particular nearly everything on the previous slide except for modeling status which are often and 11 the we don't have a type generated expressions for those who don't know it's something similar to C + + templates that was introduced in the and the don't unfortunately don't have simple thin coats upon yet what is the part is the no later on anesthetic assertions no no lead time is particularly useful because it allows them optimizations in terms of additional that coordination positive thing thing some of also of the fountain cleanup cult so if you have a function that does not return use no later on into are likely to get more efficient code and I mean that does not the times and all if it determines like like the down canonical know it and that was a test as a compiler we don't determine the the information is not going into retirement on because you have an infinite loop and then we can also use no and esthetic assassins which are kind of useful because anomalous options I spend their the they go into the cult of suppose comes and and time it on 1 side on embedded in a consistent manner 10 very little really metastatic assassins it's 11 introduced object at compile time and can be quite useful as seen on the size detectors the OK next bit on the target speed on knowledge target
is a and S 5 months the it's quite stable it doesn't have all the fancy features presented some of the other targets by the notes OK I take just like fall for a quite hot target for C when London this tiny stack of 1 year depending on what exactly is between 80 and maybe 180 by its so it's hard to access and the that the space is is quite reminded with that of an atlas-based file that I didn't put on the slide but basically the the the nominally enhances coat mentally which is kind of need only the 64 kilobytes and we have these no different types of data mentally and they have to be kind of access to using different instructions the this means if you have a non point it's not just the finding the point about the point as to carries unpack the test image of the space that the is and and makes it less expensive but we have here for this meant that the space is if you know that point points still tool tells the compiler to immediately invite instructor OK now those speak
targets rather in the mostly targets on in development so they're not as the to complete and much here the US yet and they have been so for a long time the detectors are even harder In targeting the analysis nowadays the pick 16 the pace with 16 bit long instructions on using at the peak 14 those a 14 bit long instruction not so far from from the other targets put throwing all kinds of rocks if you want to bring up all kinds most likely on into compiler back if you're targeting the pick 40 OK so let's go on to the for the skylight you latency aligned and I'm not the thing is this the target has this new optimal letters to locate electoral talk about later of and otherwise it's quite feature completed and this is a bit of to his way on the cold side the yellow line is the code size Austin HC-CO later on in the small and benchmark and that we use so the big blob cult size after the c . 1 0 believes that introduction of similar to spell OK and I this bluish line down here is the code size for the SCO 8 target which is immune from such as nite and now these 2 lines down commercial compilers as you this carelessness started CEO so yeah code ties is still a little bit bigger the commercial compilers by about but it's just about the asset % also so they're kind of getting there and compared to modern needs to be before the uh asleep environment ideologies um we made a lot of may in terms of what we achieved here OK and this is the affinity and related mounted on that optimal had to sell a paired up knows that a is like the classic this got attacked up this some yet complexes factors these are currently only used for library functions is in the lab frontal standard library what if you put a cordless likely function the compiler minor often can optimize out input minus the complex instructions instead for example if you put a copy and with a constant out that for the month of life to copy STC c which estimated and the instructor for the if you'll decide told why filling and copy by a copy little birds and the emitted much less efficient called because in new copy instead of that idea OK now what happened here historically in terms of code size know the headline the is the code size so this spend options so not optimizing financing and particularly and we see this stop and then going up again the top is the introduction of the new letters that OK does a going up again it's just changing some defaults in terms of a compiler and handles coats I side of the of the see the clean lines that's a compiler compilation time we see in terms of its introduction of simulations the patent a changed do cause it went down the big and that again there we introduce some optimization but the interesting thing is although this blue line because that's a set 80 code size this style optimization for code size so the clean lines are the respective smile for the added which a the set and then better again there's some optimization for code size before and options now this part is already doing climb as compared to the other and the 1st energy this item C compilers out there the the IIA at I a our compiler when on the compiler still denied small context code again you see it does that it still has the the difference is not that big but all the other compiler 1 I mean all these other lines the compilers targeting is the oscillator get additive and then later the uh colds and STC CC does it's a moment and the size and all it is is i a r compiler its monthly and then appending out licenses and anyway so as the CCC is the best the compiler you can get for these targets at the moment yeah I guess this is the line is is enormously compiler tidy things about it's only have the comparisons line instead of levels of details of their vectors as well OK the latter started and the nest is the is estimated the or as the microelectronics and it benighted to call this 1 the 1st 1 like with from the start with new optimal actions dedicate and it's the only 1 that has the bite my which as the location again a bit long then later erm both make cogeneration and efficiency that is this is a bit of a smile and laugh because it was introduced just before the fossil release I the blue line is against ended up to the yellow limestone optimizations for times these 2 lines downhill on 2 monthly compiler um targeting the same architecture and we can see that even tho this is just a method recently introduced back and and are still quite some some optimizations we could do the lighting in is in that started % of and like our code as a is already started % compared to these monthly compilers now so on I guess this there someone manages to America like like how the young distinctly time you'd probably be better in terms of code size OK now I I have been mentioning that has the located quite a lot the before mentioned in the letters that located takes light on the flow of compilation now what happens if you feed some code in the less money my C compiler that fast as a preprocess or not mentioned that it's passed into like takes in that place and that's the it is converted to an intermediate car out on that we do target independent optimizations target-dependent optimizations that as the location generated simply code and in the end there's the people optimizer nice this is the kind of funny backing off on finding out what we could make the code more efficient than dump a lot of intermediate information there for a compiler flexed interview view of the information out and even put it into the as comments and those of his ITC filed for the people optimizer you can order at your own custom people would if you want OK now let's have a slightly more detailed look but that is that al-Qaeda OK but such as the location where I yeah programs Bikel-Collins we use many of his in that particularly use local area an order in our seek out and they have to be stored somewhere by the compiler has an assignment is done and basically the fact is that we have manually manually for most of our targets means some on the stack for the mother tongue as plentiful as the 2 other things because that excesses in efficient but in general it's matches the members manually now lectures does not faster
access and on those embedded targets is the difference being that of anomalies much less than it is on the pictures but it still makes a big difference in cold citeseer this section access and that is that is typically much shorter than 1 because anomaly so we had to put them is that in part of a code quality of causes and them when things are that does that is better but we don't have to be proven effective for us to put everything in lecture but we have to decide what the put into edges that and met because unlike so this might attacked us that are the becomes a popular thing these days I mean in x 86 is kind of moving towards this so our style things with these as is the extension and on letters of all the same so on our targets typically the different uh the situation is totally different they have different types of some instructions only a minute for someone that has done me even if the same instructions available this with different that has thus effective the path as it might be the difference in code size of execution time depends on the extent of the new is yeah for example the estimator so it has a 16 bit characters that acts as extended letters them by and most instructions its excesses extended system by are banned by going even those are the same execution time you and other agitators is sometimes the other my own then there's the circle so called letters delegating saying basically you have some 16 bit register that could all the be treated as like that hatches doesn't have to make sure that you don't use so that the same time they're square this basically means if you have an assignment and the right up the line is not used after that assignment you could just as I have basically both into the same that is that and you wouldn't have to meet any code for the assignment at all then there's the matter the alienation which basically means you have a value added that you could relocate Estelle internationally but to although could the calculator many of the body and as needed and sometimes mental exercise spends there so if you put that just alkanes mustard but it might be cheaper delete calculated as installing it and mentally all these complicated things have to be consider piloted by looking at so fortunately we have optimal that has the location polynomial time it's no other compiler has early OK this is based on last lecture silly particle at the decompositions alone that's if I don't have time to explain him then for practical purposes as mean that for the polynomial time time you need a bound on the treatment of 2nd order flow graph and for programming language the that means there don't use too many labels for gotos function if the number of labels for go to power function in your code is no then everything is fine and we can do things optimally in polynomial time and reflectance will use of a cost function counties only cost function implemented as code size but that means that let's have a look at the bill find such as the location that besides in the smallest publishable code size after code generation of course you don't know what people optimization optimizable many later but in terms of what comes out of the cultivation states before and the people optimizing we can the optimal apparently in terms of code size and if they get onto implemented the could also use it for implementing like for speed like if if data from a profiler Business execution probabilities within the middle toxins it could also be optimal in terms of speed on it could become optimal in terms of energy consumption of targets itself I it doesn't mean that just as in the theoretical and time bound the number of edges does and explanation of the runtime of such as that makes it infeasible follows i detectors of managers does but I like the tag often has few edges thus and it's fine is all the theoretical hardness I've and basically sense them we can't get the officer if you want to do it optimality can't get it off the number of edges as index and the yeah OK so now because it can still be quite slow but you never compiler switch combinations in code quality trade off essentially this semantics cannot have the detector compiler how much memory it is allowed to use and that as the location and 2 other optimizations based on last such as we as it entered into so and is all the effects of on time that this thing to a high value and you get more optimization and set it to a really high value and you know it's globally optimal that it to a smaller value the compiler fast particles it about OK so much for the optimal enters occasional now for the bite minds which is the location and filling this thing that only the CMA MA part has no additionally a compiler sees a valuable and insightful OK is that goes into effect is that goes into mentally what we do here is that is malleable and for every single byte offset malleable we fight goal into the mentally Kansas cares means on the stack or in some bite of some register the other 2 the inflexible appalled again these of flexible makes a compiler slower but if you ball comes of small and you don't have a lot of memory and the target is rusted it OK so of course we all that a bunch of other optimizations and suitable for for the smaller targets but well I can talk about every single so as this is able to act but it's adsorbates traditional you source thought we involve architect the telly quest like us never mailing lists and subversion repository never k so not the new inferences stuff a the rationale for us no no caching testing to ensure that we have a good quality compiler convenient uh have too many box the and the guy at a snapshot from Sebastian is compiled for many years host architecture new compile about 7 thousand percussion test and execute someone simulator the test so come from different sources some of them have mean that many people implementing some features but most of them are because and test for a box that needs to be set up or that we took from GCC rich kind of had some the issuing user-submitted if you call it seems to me in writing OK and she sees season quality than not OK a CC as matters in the balance of the target ice detectors of course if your target doesn't have was a lot of memory you can use it we do it for the target architecture speaking it on ready host systems and host architectures OK to
conclude that they cannot detect not only are they that I detectors life I mean there is very little energy that the positions like smart dust the kites always and but the other half of the C compiler for then names within that compliance and a puppet optimizations the FAQ you the so that hamper questions but you can ask me when many outside something
Softwaretest
Gegenständliche Benutzeroberfläche
Bit
Architektur <Informatik>
Standardabweichung
Minimierung
Compiler
Mereologie
Compiler
Biprodukt
Clique <Graphentheorie>
Standardabweichung
Bit
Mereologie
Minimierung
Compiler
Formale Sprache
Skalarfeld
Arithmetischer Ausdruck
Standardabweichung
Typentheorie
Code
Mustersprache
Bildschirmfenster
Betriebsmittelverwaltung
Metropolitan area network
Softwaretest
Lineares Funktional
Addition
Template
Ähnlichkeitsgeometrie
Ausnahmebehandlung
p-Block
Teilbarkeit
Konfiguration <Informatik>
Rechenschieber
Datenstruktur
Ganze Zahl
Zellularer Automat
Schwimmkörper
Information
Simulation
Programmierumgebung
Koordinaten
Standardabweichung
Aggregatzustand
Telekommunikation
Ortsoperator
Regulärer Ausdruck
Zellularer Automat
Implementierung
Zahlenbereich
Assembler
Term
Code
Task
Systemprogrammierung
Loop
Informationsmodellierung
Ganze Zahl
Software
Datentyp
Zusammenhängender Graph
Datenstruktur
Zeiger <Informatik>
Varianz
Implementierung
Analysis
Architektur <Informatik>
Unicode
Physikalisches System
Maskierung <Informatik>
Programmfehler
Objekt <Kategorie>
Flächeninhalt
Parametersystem
Mereologie
Binder <Informatik>
Compiler
Normalvektor
Geneigte Ebene
Bit
Punkt
Momentenproblem
Codegenerierung
Compiler
Minimierung
Parser
NP-hartes Problem
Extrempunkt
Mikroelektronik
Komplex <Algebra>
Raum-Zeit
Übergang
Spezialrechner
Bit
Standardabweichung
Code
Default
Betriebsmittelverwaltung
Gerade
Softwaretest
Lineares Funktional
Addition
Sichtenkonzept
Präprozessor
Globale Optimierung
Störungstheorie
Ein-Ausgabe
Kontextbezogenes System
Variable
Teilbarkeit
Konfiguration <Informatik>
Rechenschieber
Menge
URL
Information
Programmbibliothek
Ordnung <Mathematik>
Programmierumgebung
Standardabweichung
Subtraktion
Abstrakter Syntaxbaum
Gruppenoperation
ROM <Informatik>
Term
Code
Magnettrommelspeicher
Diskrete Simulation
Datentyp
Programmbibliothek
Optimierung
Softwareentwickler
Stochastische Abhängigkeit
Bildgebendes Verfahren
Analysis
Videospiel
Architektur <Informatik>
Stochastische Abhängigkeit
Paarvergleich
Vektorraum
Elektronische Publikation
Datenfluss
Energiedichte
Flächeninhalt
Mereologie
Computerarchitektur
Compiler
Bit
Spiegelung <Mathematik>
Polynom
Inferenz <Künstliche Intelligenz>
Dokumentenserver
Compiler
Minimierung
Formale Semantik
Softwaretest
Datenmanagement
Standardabweichung
Typentheorie
Code
Betriebsmittelverwaltung
Gerade
Inklusion <Mathematik>
Softwaretest
Lineares Funktional
Dokumentenserver
Physikalischer Effekt
Güte der Anpassung
Speicher <Informatik>
Globale Optimierung
Profil <Aerodynamik>
Übergang
Quellcode
Aliasing
Variable
Arithmetisches Mittel
Helmholtz-Zerlegung
Generator <Informatik>
Polynom
Funktion <Mathematik>
Datenstruktur
Automatische Indexierung
Rechter Winkel
Physikalische Theorie
Festspeicher
Garbentheorie
URL
Ordnung <Mathematik>
Simulation
Aggregatzustand
Subtraktion
Quader
Hyperbelverfahren
Schaltnetz
Zahlenbereich
ROM <Informatik>
Term
Physikalische Theorie
Code
Graph
Diskrete Simulation
Kostenfunktion
Datentyp
Maßerweiterung
Leistung <Physik>
Programmiersprache
NP-hartes Problem
Soundverarbeitung
Schätzwert
Lineare Regression
Architektur <Informatik>
Kreisfläche
Graph
Rechenzeit
Mailing-Liste
Physikalisches System
Datenfluss
Office-Paket
Programmfehler
Summengleichung
Energiedichte
Quadratzahl
Caching
Mereologie
Computerarchitektur
Partikelsystem
Compiler
Videospiel
Energiedichte
Freeware
Architektur <Informatik>
Ortsoperator
Standardabweichung
Compiler
Minimierung
Compiler
Chipkarte

Metadaten

Formale Metadaten

Titel SDCC Small Device C Compiler
Untertitel An optimizing standard C compiler for 8-bit architectures
Alternativer Titel Embedded - 8-Bit Compiler
Serientitel FOSDEM 2015
Autor Krause, Philipp Klaus
Lizenz CC-Namensnennung 2.0 Belgien:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
DOI 10.5446/34366
Herausgeber FOSDEM VZW
Erscheinungsjahr 2016
Sprache Englisch
Produktionsjahr 2015

Inhaltliche Metadaten

Fachgebiet Informatik

Ähnliche Filme

Loading...
Feedback