Commit Graph

110 Commits

Author SHA1 Message Date
Ilya Chernikov e9f59e8d1d Move common diagnostics infrastructure to frontend.common 2021-10-27 22:17:39 +02:00
Dmitriy Novozhilov bee44c6e0f [FIR] Split :compiler:fir:resolve module into three different modules
Those modules are:
- :compiler:fir:providers, which contains Fir and Symbol providers,
    scopes, and different utilities used by them
- :compiler:fir:semantics, which contains different abstractions and
    entities which are used in resolution and in checkers
- :compiler:fir:resolve, which contains all stuff related to resolution
    and inference

There are two pros of this change:
1. It may increase gradle build, because it allows to compile :fir:resolve
  and :fir:checkers modules in parallel
2. Logic of working FIR (scopes, providers, DFA logic system, etc) is
  now separated from logic of resolution phases, so for example checkers,
  which are depend on scopes physically will not be able to run resolve
  in any way
2021-10-18 11:10:47 +03:00
Dmitriy Novozhilov eadb91f9b2 [FIR] Move accessors to main session components close to declarations of those components 2021-10-18 10:55:39 +03:00
Dmitriy Novozhilov e933c7b6d9 [Build] Remove testApi(intellijDep()) dependencies from all modules
Since IDEA moved most of it's jars to java 11 it's illegal to use them
  in our dependencies, so all modules which use `intellijDep()` should
  carefully specify which jars they use
2021-09-30 14:41:31 +03:00
Mikhail Glukhikh ad20d78a63 Add necessary optIn arguments to FIR full pipeline tests 2021-09-29 19:39:27 +03:00
Dmitriy Novozhilov 116a1c1e46 [FIR] Remove stubMode flag from RawFirBuilder and LightTree2Fir converter 2021-09-13 13:53:05 +03:00
Ivan Kochurkin 4907bc296f [FIR] Turn on jvm-default in tests 2021-09-10 00:48:59 +03:00
Dmitriy Novozhilov 455ed1bdc0 [Test] Add flag to full pipeline test which allows to use build file instead of regular args 2021-08-27 19:02:58 +03:00
Simon Ogorodnik 4a75222491 [FP] Pass module data to compiler via build file 2021-08-27 19:02:58 +03:00
Ilya Chernikov caa44e413d Abstract FIR cli pipeline from core environment and related entities 2021-08-23 16:50:40 +03:00
Dmitriy Novozhilov afd9b4935a [FIR] Configure language version for FP test via env properties 2021-08-06 14:24:42 +03:00
Simon Ogorodnik 32b380e187 [FP] Fix compiler arguments for intellij-community building 2021-08-03 19:52:23 +03:00
Simon Ogorodnik 872b6b7e81 [FE 1.0 FP] Fix compiler arguments to avoid errors 2021-08-03 19:52:23 +03:00
Simon Ogorodnik a7961a4a45 [FIR MT] Add reading of packagePrefix from model of java roots 2021-08-03 19:52:22 +03:00
Simon Ogorodnik 1188d311b3 [FIR MT] Add sorting by timestamp from model, reading of modularJdkRoot 2021-08-03 19:52:20 +03:00
Mikhail Glukhikh 40c3c317b2 RawFirBuilder: optimize package name calculation in compiler mode 2021-07-15 12:46:23 +00:00
Simon Ogorodnik e102bdea20 [Build] Fix xerces usage in FIR modularized tests 2021-07-09 11:08:13 +00:00
Nikolay Krasko 32f811e0ec Build: Cleanup old platforms from the build 2021-06-09 17:43:53 +03:00
Simon Ogorodnik d3453e98b0 FIR Tests: Add async-profiler per-pass sampling to full pipeline 2021-06-07 19:43:28 +03:00
Simon Ogorodnik 718e9c11f5 FIR Tests: Fix FirMetaModularizedTest to run properly on Windows 2021-06-07 19:43:10 +03:00
Dmitriy Novozhilov 02c58b7a8f [FIR] Refactor deserialized dependency providers and session factories with FirModuleData 2021-05-14 14:30:33 +03:00
Simon Ogorodnik 539d3e5df2 Add full-pipeline modularized tests for old frontend 2021-04-15 13:36:00 +03:00
Ilya Chernikov 0274c41919 [minor] FIR: fix deprecation in test 2021-04-12 10:08:54 +02:00
Simon Ogorodnik 0aca68e7c7 FIR: Add init time measurement to full pipeline 2021-03-25 18:05:51 +03:00
Dmitriy Novozhilov 01e8019c4c [FIR] Properly handle friend modules in modularized and full-pipeline tests 2021-03-11 13:10:04 +03:00
Dmitriy Novozhilov f82c7c4678 [FIR] Cleanup session creation utils 2021-03-11 13:10:04 +03:00
Simon Ogorodnik 1cf73203c7 [FIR-Test] Disable pre-release check in modularized tests 2021-02-25 14:03:30 +03:00
Simon Ogorodnik 2ea0e69a56 [FIR-Test] Fix incorrect file count 2021-02-25 14:03:29 +03:00
Simon Ogorodnik 0086ebe6f2 [FIR-Test] Increase code cache size 2021-02-25 14:03:28 +03:00
Simon Ogorodnik 1e73f7a5b2 [FIR-Test] Force min heap size 2021-02-25 14:03:27 +03:00
Simon Ogorodnik b6fb3c9799 [FIR] Isolate benchmark thread, add jit log format events for passes
Add special output for pass events to match with LogCompilation
2021-02-25 14:03:26 +03:00
Georgy Bronnikov 9b6f95faa2 FIR: report lowering time in FullPipelineModularizedTest 2021-02-09 10:59:35 +03:00
Alexander Udalov 221f44da5f Fix warnings in stdlib/compiler/plugins/test code 2021-01-13 19:18:20 +01:00
Dmitriy Novozhilov 537e4f0bb4 [Test] Move existing fir tests on old infrastructure to :legacy-fir-tests module 2020-12-21 18:34:55 +03:00
Vyacheslav Gerasimov 3feff16a77 Cleanup 193 compatibility fixes 2020-11-11 14:28:54 +03:00
Ilya Kirillov 3f9735dd5d FIR: use enum in RawFirBuilder to indicate its mode: normals, stubs, or lazy bodies 2020-10-14 22:11:00 +03:00
Alexander Udalov 7fb7dc0210 Fix deprecation warnings related to Project extensions 2020-09-08 20:26:20 +02:00
Mikhail Glukhikh 7c0467944d FullPipelineModularizedTest: fix compilation 2020-09-01 21:58:26 +03:00
Mikhail Glukhikh 0324c0d02f FullPipelineModularizedTest: code cleanup 2020-09-01 21:51:49 +03:00
Dmitriy Novozhilov 94d58c714a [FIR] Cleanup dependencies for fir modules 2020-09-01 12:00:12 +03:00
Mikhail Glukhikh 65739c50d3 FIR full pipeline test: output build status per-module 2020-09-01 11:40:32 +03:00
Alexander Udalov a9ddf02556 Replace deprecated usages of max/min with maxOrNull/minOrNull 2020-08-25 20:33:59 +02:00
Dmitriy Novozhilov 41aa90ad71 [FIR-TEST] Add flag to take memory dumps in modularized test 2020-08-21 15:27:54 +03:00
Simon Ogorodnik 38477be484 [FIR] Make test fail if profiling requested, but misconfigured 2020-08-18 16:21:48 +03:00
Simon Ogorodnik 15d4333e81 [FIR] Add per-pass profiling support to modularized test 2020-08-18 16:21:48 +03:00
Simon Ogorodnik 83ded9badf [FIR] Add pass argument to beforePass of modularized test 2020-08-18 16:21:48 +03:00
Alexander Udalov c3cbcf6d7f Slightly improve performance measurements rendering
Report the input module name and size once before any measurements
instead of duplicating it in all of them. Also, render measurements in a
table to improve readability.

Before:

info: PERF: INIT: Compiler initialized in 467 ms
info: PERF: ANALYZE: 1 files (2 lines) target main-java-production in 277 ms - 7.220 loc/s
info: PERF: IR: Translation 1 files (2 lines) target main-java-production in 291 ms - 6.873 loc/s
info: PERF: GENERATE: 1 files (2 lines) target main-java-production in 513 ms - 3.899 loc/s
info: PERF: IR: Generation 1 files (2 lines) target main-java-production in 142 ms - 14.085 loc/s

After:

info: PERF: main-java-production, 1 files (2 lines)
info: PERF: INIT: Compiler initialized in 421 ms
info: PERF:         ANALYZE     342 ms       5.848 loc/s
info: PERF:  IR TRANSLATION     296 ms       6.757 loc/s
info: PERF:        GENERATE     453 ms       4.415 loc/s
info: PERF:   IR GENERATION     137 ms      14.599 loc/s
2020-08-17 19:29:57 +02:00
simon.ogorodnik 689887c94d [FIR] Fail test if no modules analyzed successfully 2020-07-10 16:25:22 +03:00
simon.ogorodnik 77ccb3767c [FIR] Add system property selector for lightTree2fir / psi2fir 2020-07-07 21:47:24 +03:00
simon.ogorodnik a460b8f2f4 [FIR] Support source directories for lightTree2fir 2020-07-07 21:47:24 +03:00