Shagen Ogandzhanian
e0e2715864
[js] Fix constant folding for unsigned aithmetic in IR
...
this resolves KT-44138
2021-03-30 16:53:12 +02:00
Ilya Goncharov
f85ad41674
[IR] Check pureness in inlining lowering after transformation
2021-03-19 21:52:51 +03:00
Ilya Goncharov
8ac8dbdab8
[JS IR] Type operator call pureness
2021-03-19 21:52:51 +03:00
Ilya Goncharov
47d050c420
[JS IR] Correct pureness of expressions for arrayLiteral
2021-03-19 21:52:50 +03:00
Ilya Goncharov
76005813ff
[JS IR] Fix for pureness of vararg
2021-03-19 21:52:50 +03:00
Ilya Goncharov
278a8c27fc
[JS IR] Not create temporary variable for pure expressions on inline
2021-03-19 21:52:50 +03:00
Ilya Goncharov
120b5b9e05
[JS IR] Move isPure check to backend.common and add platform-specific check on calls with side effects
2021-03-19 21:52:50 +03:00
Georgy Bronnikov
c7feaee8ae
IR: make copying optional in performByIrFile
...
For codegen phases, input files are readonly data. There is no need to
copy them.
2021-03-16 19:49:29 +03:00
Dmitry Petrov
decfaa3ba5
JVM_IR KT-44993 preserve inner expression type when fusing if-null
2021-03-16 15:30:45 +03:00
Denis.Zharkov
f141c276be
IR: Avoid recomputing Symbols::progressionElementTypes
2021-03-16 09:28:52 +03:00
Dmitry Petrov
44e6483090
JVM_IR Spill stack on array constructor call
...
KT-42932
2021-03-12 09:18:35 +03:00
Mads Ager
e5631addf3
[IR] Move annotations from original to new constructor declarations.
...
LocalDeclarationsLowering did not move annotations when creating
a new constructor declaration, thereby losing the annotations.
Fixes KT-45298
2021-03-05 12:24:38 -08:00
Alexander Udalov
5e0860ca14
IR: move PsiSourceManager, PsiErrorBuilder to ir.backend.common
2021-03-05 20:46:33 +01:00
Alexander Udalov
acc2256de9
IR: support smart cast values in RangeContainsLowering
...
#KT-44878 Fixed
2021-02-25 21:00:09 +01:00
Alexander Udalov
0ebdf7c3c4
IR: add getPrimitiveType, optimize some usages of isInt/isByte/...
2021-02-25 21:00:09 +01:00
Alexander Udalov
1ae46b529f
IR: move ExpectDeclarationRemover to ir.backend.common
2021-02-24 19:07:37 +01:00
Georgy Bronnikov
68cabba698
IR: preserve signatures when copying IrFiles in performByIrFile
2021-02-17 11:05:22 +03:00
Georgy Bronnikov
cacfe53065
IR: move performByIrFile to a separate .kt
2021-02-17 11:05:22 +03:00
Georgy Bronnikov
4c701cf44c
IR: make extractedLocalClasses a JS-only field
2021-02-17 11:05:22 +03:00
Georgy Bronnikov
4e9bedc2fc
JVM_IR: use ConcurrentHashMap
...
Replace mutable maps and sets accessed from by-file lowerings with
ConcurrentHashMap, so that lowerings can operate on them in parallel.
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
23da2bde67
IR: fixes for IR by-file copying
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
d154c8d8e6
IR: copy each file before lowering.
...
Avoid inter-file dependencies while lowering.
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
103f82c95c
IR: an option to automatically select the number of lowering threads
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
52b3cb362b
IR: thread pool in PerformByIrFilePhase
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
eae416d739
IR: Handle exceptions from by-file lowering thread
2021-02-17 11:03:27 +03:00
Georgy Bronnikov
bea5d955d4
JVM_IR: perform file lowerings in parallel
...
Selected by -Xir-run-lowerings-in-paralled compiler flag.
2021-02-17 11:03:26 +03:00
Anton Bannykh
c06b345f3c
Hide stageController into the IrFactory
2021-02-17 10:42:50 +03:00
Mikhael Bogdanov
e795c2c407
Generate proper hashCode for fun interface wrappers
...
#KT-44875 Fixed
2021-02-12 11:28:17 +01:00
Igor Chevdar
6f9bcf249b
[IR] Supported inlining of adapted references + tests
2021-02-09 17:23:19 +05:00
Roman Artemev
d97a2b13c0
[Plugin API] Add API to load top level declaration by its signature
...
- request from JP Compose, #KT-44100
2021-02-09 11:56:20 +03:00
Andrey Zinovyev
95140f35f8
[parcelize] Fix codegen for generic classes
...
Replace type arguments with star projection in static methods
Fix IR function generation
^KT-42652 Fixed
2021-02-04 15:11:51 +03:00
Igor Chevdar
0bc386cb08
[IR] Fixed bug with reflectionTarget evaluation
2021-02-03 15:26:40 +05:00
Roman Artemev
59551eb037
[Plugin API] Provide diagnostic API for IR plugins
2021-02-02 12:05:35 +03:00
Dmitry Petrov
3140cca050
JVM_IR indy-SAM conversions, 1st passing tests
...
KT-44278 KT-26060 KT-42621
2021-01-29 12:59:45 +03:00
Svyatoslav Kuzmich
ba8223218f
[Wasm] Add inline property accessors optimization
2021-01-19 17:08:58 +03:00
Alexander Udalov
221f44da5f
Fix warnings in stdlib/compiler/plugins/test code
2021-01-13 19:18:20 +01:00
Kristoffer Andersen
43b61a618d
[IR+Tests] Improve Local Function Debugging Experience
...
This change improves the debugging experience around local functions
on the IR backend. The changes include moving old
checkLocalVariablesTable (cLVT) tests to the new stepping/local variable
infrastructure in order to refine the tests and further define the
behavior of the two JVM backends, and their differences.
The primary ported test case is cLVT/localFun.kt that documents the
discrepancy in implementation strategy for local functions on the two
backends. The old backend implements local functions as lambdas
assigned to a local variable while the IR backend lifts them out as
static funtions on the surrounding class. The discrepancies and their
consequences are documented in bytecodeListing, idea-stepping,
localVariableTable and debugStepping tests.
The only _code change_ is disabling the captured variable name
mangling for captured variables on the IR backend. Captured variables
are passed as arguments to the static function, so in the debugger,
they really just are local variables. For them to show properly in the
debugger and be detectable by evaluate expression, they simply need no
mangling.
Finally, this change cleans 3 redundant cLVT tests, copyFunction.kt
and destructuringInlineLambda.kt and destructuringInFor.kt, that are
all covered in the new suite. The stepping behavior needs to be made
precise around for loops, but that is an entirely seperate issue.
2021-01-11 18:21:23 +01:00
Alexander Udalov
bf3f6594d5
IR: do not lose $default function annotations when generating calls
...
Losing an annotation like `JvmName` resulted in the incorrect bytecode
generated in the JVM IR backend.
#KT-44160 Fixed
2020-12-31 18:36:24 +01:00
Zalim Bashorov
531ba4bb48
[IR] Narrow usage scope of ObsoleteDescriptorBasedAPI in CheckIrElementVisitor
2020-12-28 18:53:55 +03:00
Zalim Bashorov
14254ceb0b
[IR] Remove no longer needed usages of ObsoleteDescriptorBasedAPI
2020-12-28 18:53:54 +03:00
Svyatoslav Kuzmich
0945c110bf
[JS IR] Support init blocks in inline classes
2020-12-25 17:00:23 +03:00
Zalim Bashorov
ee60a1a431
[IR] Add an ability to change dump strategy using a system property
2020-12-24 20:03:23 +03:00
Georgy Bronnikov
c5961da780
IR: remove WrappedDescriptors altogether
2020-12-23 18:50:52 +03:00
Georgy Bronnikov
e9f45e23f2
IR: NullDescriptorsRemapper
2020-12-23 18:50:52 +03:00
Georgy Bronnikov
b05400154d
IR: remove IrSymbolDeclaration
2020-12-23 18:50:52 +03:00
Georgy Bronnikov
d714adacae
IR: removing WrappedDescriptors from symbols
2020-12-23 18:50:51 +03:00
Igor Chevdar
be688356c9
[IR] Fixed bug with thread unsafety
...
There is no need in a singleton here
2020-12-17 14:03:52 +05:00
Shagen Ogandzhanian
32cc95a3b0
[JS IR] Skip export annotations while generating default stubs
2020-12-14 16:41:27 +01:00
Mads Ager
a7efa5c98b
[IR] Fix remapping of arguments in LocalDeclarationsLowering.
...
It only remapped arguments for IrGetValue and not for IrSetValue.
This is hitting Compose which has non-standard default argument
handling.
2020-12-10 17:22:18 +01:00
LepilkinaElena
c8c83c04c0
[IR] Fix saving function calls during inlining const properties in PropertyAccessorInlineLowering ( #3971 )
2020-12-10 12:24:23 +03:00