Abel
03/10/2021, 4:45 PMraulraja
03/10/2021, 5:05 PMdmitriy.novozhilov
03/10/2021, 7:13 PMdmitriy.novozhilov
03/10/2021, 7:17 PM:compiler:resolution and :compiler:frontend modules and :compiler:frontend.java contains only part of resolution which is special for java interop (e.g. scopes for java classes), so they all work together and produces BindingContext (big map which contains information about all program) in pair to PSI. After that old backend takes PSI and BindingContext and generates bytecode over it, and JVM IR backend transforms PSI + BindingContext to IR and after that works with itdmitriy.novozhilov
03/10/2021, 7:18 PMYux
03/10/2021, 7:20 PMdmitriy.novozhilov
03/10/2021, 9:06 PMAbel
03/10/2021, 9:30 PMdmitriy.novozhilov
03/11/2021, 8:57 AM:compiler:resolution is just one of modules of frontend, alongside with :compiler:frontend (there was an idea to keep in different modules logic which depend and not depend on PSI, but we found later that core problem of old frontend not just PSI, but and descriptors also). Check simple diagram I made
if the compiler doesn't modify the PSI, where/when are all the transformations madeFrontend stores all information that it inferred (types, descriptors, diagnostics, constant evaluation, CFA results etc) in
BindingContext, where (in most cases) PSI is a key to specific map in it which contains, for example, descriptorsAbel
03/11/2021, 10:10 AMdmitriy.novozhilov
03/11/2021, 10:15 AMConstantExpressionEvaluator which is used in FE 1.0, and its results are reused in both backends
- IrInterpreter -- new mechanism for constant evaluation of simple constant expressions and prototype of evaluating functions calls in compile time. It is used in pair FIR + IR backend right after transformation from FIR to IR (FIR doesn't have analog of ConstantExpressionEvaluator by design)dmitriy.novozhilov
03/11/2021, 10:15 AMAbel
03/11/2021, 10:17 AMAbel
03/11/2021, 10:45 AMdmitriy.novozhilov
03/11/2021, 10:47 AMCode transformations to Code analysis in frontend block.Abel
03/11/2021, 10:48 AMraulraja
03/11/2021, 12:24 PMMichal Harakal
03/11/2021, 12:26 PMAbel
04/08/2021, 4:53 PMdmitriy.novozhilov
04/08/2021, 4:57 PMAbel
04/08/2021, 5:10 PMdmitriy.novozhilov
04/08/2021, 5:31 PMfrontend boxAbel
04/08/2021, 5:34 PMdmitriy.novozhilov
04/08/2021, 7:48 PMfir2irAbel
04/09/2021, 2:47 PMAbel
04/09/2021, 4:00 PMdmitriy.novozhilov
04/09/2021, 4:14 PMandylamax
12/30/2021, 1:21 AMhfhbd
06/20/2022, 6:54 PMventura
01/28/2023, 10:23 AMventura
01/28/2023, 10:25 AMventura
01/28/2023, 10:26 AM