dc.contributor.advisor | Hubička, Jan | |
dc.creator | Káně, Vojtěch | |
dc.date.accessioned | 2024-11-29T05:36:15Z | |
dc.date.available | 2024-11-29T05:36:15Z | |
dc.date.issued | 2024 | |
dc.identifier.uri | http://hdl.handle.net/20.500.11956/193186 | |
dc.description.abstract | Inlinování je velmi důležitou součástí optimalizačních průchodů současných překla- dačů. Nahrazením volání funkce za její tělo se ušetří režie na provedení volání a získá více kontextu pro ostatní optimalizační průchody. V práci prozkoumáme současný "hladový" inliner v GNU Compiler Collection napsaný před více než dvaceti lety a navrhneme alter- nativní algoritmus vhodný pro použití v paralelním prostředí. Spojíme současný přístup používající prioritní frontu a přístup early inlineru procházejícího funkce v topologickém pořadí (reverse post order) tím, že průchod provedeme opakovaně s postupně se zvyšu- jícími limity. Měření naznačují, že navržený algoritmus je hoden dalšího zkoumání a že nastavením vhodných konstant by se mohl postavit současnému inlineru a přesto být připravený na budoucí paralelizování IPA fáze překladu. | cs_CZ |
dc.description.abstract | Inlining is a very important optimization pass of today's compilers. It saves func- tion call overhead and provides more context for other optimization passes by replacing function's call site with its body. We revisit the current "greedy" inliner in GNU Com- piler Collection, which was written more then 20 years ago and propose an alternative algorithm suitable for parallel processing. We combine the current approach of using a priority queue and the approach of the early inliner of traversing the callgraph in re- verse post order by running the RPO traversal multiple times with increasing limits. Our measurements suggest the presented algorithm is worth further research and that prop- erly tuning the constants may put it on a par with the current inliner all while allowing space for future parallelization of the IPA phase. | en_US |
dc.language | English | cs_CZ |
dc.language.iso | en_US | |
dc.publisher | Univerzita Karlova, Matematicko-fyzikální fakulta | cs_CZ |
dc.subject | compiler|inter-procedural optimization | en_US |
dc.subject | překladač|interprocedurální optimalizace | cs_CZ |
dc.title | Alternativní implementace inlineru v GNU Compiler Collection | en_US |
dc.type | bakalářská práce | cs_CZ |
dcterms.created | 2024 | |
dcterms.dateAccepted | 2024-09-06 | |
dc.description.department | Department of Applied Mathematics | en_US |
dc.description.department | Katedra aplikované matematiky | cs_CZ |
dc.description.faculty | Matematicko-fyzikální fakulta | cs_CZ |
dc.description.faculty | Faculty of Mathematics and Physics | en_US |
dc.identifier.repId | 272461 | |
dc.title.translated | Alternativní implementace inlineru v GNU Compiler Collection | cs_CZ |
dc.contributor.referee | Jambor, Martin | |
thesis.degree.name | Bc. | |
thesis.degree.level | bakalářské | cs_CZ |
thesis.degree.discipline | Computer Science with specialisation in Foundations of Computer Science | en_US |
thesis.degree.discipline | Informatika se specializací Obecná informatika | cs_CZ |
thesis.degree.program | Computer Science | en_US |
thesis.degree.program | Informatika | cs_CZ |
uk.thesis.type | bakalářská práce | cs_CZ |
uk.taxonomy.organization-cs | Matematicko-fyzikální fakulta::Katedra aplikované matematiky | cs_CZ |
uk.taxonomy.organization-en | Faculty of Mathematics and Physics::Department of Applied Mathematics | en_US |
uk.faculty-name.cs | Matematicko-fyzikální fakulta | cs_CZ |
uk.faculty-name.en | Faculty of Mathematics and Physics | en_US |
uk.faculty-abbr.cs | MFF | cs_CZ |
uk.degree-discipline.cs | Informatika se specializací Obecná informatika | cs_CZ |
uk.degree-discipline.en | Computer Science with specialisation in Foundations of Computer Science | en_US |
uk.degree-program.cs | Informatika | cs_CZ |
uk.degree-program.en | Computer Science | en_US |
thesis.grade.cs | Velmi dobře | cs_CZ |
thesis.grade.en | Very good | en_US |
uk.abstract.cs | Inlinování je velmi důležitou součástí optimalizačních průchodů současných překla- dačů. Nahrazením volání funkce za její tělo se ušetří režie na provedení volání a získá více kontextu pro ostatní optimalizační průchody. V práci prozkoumáme současný "hladový" inliner v GNU Compiler Collection napsaný před více než dvaceti lety a navrhneme alter- nativní algoritmus vhodný pro použití v paralelním prostředí. Spojíme současný přístup používající prioritní frontu a přístup early inlineru procházejícího funkce v topologickém pořadí (reverse post order) tím, že průchod provedeme opakovaně s postupně se zvyšu- jícími limity. Měření naznačují, že navržený algoritmus je hoden dalšího zkoumání a že nastavením vhodných konstant by se mohl postavit současnému inlineru a přesto být připravený na budoucí paralelizování IPA fáze překladu. | cs_CZ |
uk.abstract.en | Inlining is a very important optimization pass of today's compilers. It saves func- tion call overhead and provides more context for other optimization passes by replacing function's call site with its body. We revisit the current "greedy" inliner in GNU Com- piler Collection, which was written more then 20 years ago and propose an alternative algorithm suitable for parallel processing. We combine the current approach of using a priority queue and the approach of the early inliner of traversing the callgraph in re- verse post order by running the RPO traversal multiple times with increasing limits. Our measurements suggest the presented algorithm is worth further research and that prop- erly tuning the constants may put it on a par with the current inliner all while allowing space for future parallelization of the IPA phase. | en_US |
uk.file-availability | V | |
uk.grantor | Univerzita Karlova, Matematicko-fyzikální fakulta, Katedra aplikované matematiky | cs_CZ |
thesis.grade.code | 2 | |
uk.publication-place | Praha | cs_CZ |
uk.thesis.defenceStatus | O | |