pyos
330c4648cb
Implement property references in JVM_IR
2019-03-19 12:00:29 +01:00
pyos
82ccf81da8
Fix this remapping in inner class constructors
...
Inner class constructors should use the argument instead of reading
outer `this` from a field because if such an access happens before a
delegating constructor call, e.g. when evaluating an argument, a JVM
bytecode validation error will be thrown. (The only operation on `this`
allowed before a delegating constructor call is SETFIELD, and only if
the field in question is declared in the same class.)
2019-03-19 09:20:41 +01:00
pyos
7e8db4cc4a
Refactor InnerClassesLowering
2019-03-19 09:20:41 +01:00
Svyatoslav Kuzmich
1d6cd90043
[JS IR BE] Clean up compiler driver api
...
This is a preparation step for JS-IR CLI:
- CompiledModule was overused. Split it into KlibModuleRef and TranslationResult
- Deserialize klib dependencies from klibs itself
2019-03-18 14:13:28 +03:00
Svyatoslav Kuzmich
e302f63d9a
[JS IR BE] Remove generateModuleInGlobalScope for code generator
...
This method used to be a workaround for test speedup.
Now we use proper close world module with runtime+stdlib module
as pre-serialized klib.
2019-03-18 14:13:28 +03:00
Alexander Gorshenev
51e862e793
Fix file descriptor unlimited growth.
2019-03-16 13:45:45 +03:00
Alexander Udalov
2539873492
Remove CommonBackendContext.getClass
...
This function is unused in backend.common (and actually throws exception
in Native), therefore it makes sense to move it down to subtypes
2019-03-15 19:27:48 +01:00
Alexander Udalov
e13b8eb039
Remove CommonBackendContext.getInternalFunctions
...
Similarly to getInternalClass, move to subclasses
2019-03-15 19:27:48 +01:00
Alexander Udalov
bd694105e9
Remove CommonBackendContext.getInternalClass
...
Move to subclasses: getJvmInternalClass, getJsInternalClass and
getKonanInternalClass (in Kotlin/Native). The advantage of this is that
this API need not be shared between backends any longer, which makes
sense because implementation details differ across platforms
2019-03-15 19:27:48 +01:00
Alexander Udalov
4ab1916ebf
Cleanup Symbols and JvmIr.JvmSymbols
2019-03-15 19:27:47 +01:00
Alexander Udalov
e9c2bc81aa
Remove lateinitIsInitializedPropertyGetter, introduce static check function
...
This will be helpful in JVM IR tests without stdlib where it's not
necessary to have 'isInitialized' in dependencies
2019-03-15 19:27:47 +01:00
Alexander Udalov
c730de13df
Minor, add missing copyright to compiler modules
2019-03-15 19:27:46 +01:00
Alexander Udalov
9ca7719d1f
Minor, inline obsolete and deprecated createFunctionSymbol
...
Also undeprecate 'createSymbolForScopeOwner' and make it private
2019-03-15 19:07:16 +01:00
Alexander Udalov
0c8e58936c
Remove DeepCopyIrTree and most "Creates unbound symbol" deprecated members
2019-03-15 19:05:19 +01:00
Roman Artemev
a2d65e8a60
[IR] Code clean up
2019-03-15 19:21:38 +03:00
Roman Artemev
95821313e3
[IR BE] Get rid of usages of descriptor-based IrType utils
2019-03-15 19:21:38 +03:00
Roman Artemev
238f1b2b06
[IR] * Implement isSubtypeOfClass and commonSuperclass based on pure Ir
...
* Implement type strict equality check
* Move type checkers into Ir
* Implement strict Fqn-based classifier equality checker
2019-03-15 19:21:38 +03:00
Anton Bannykh
a4c693ec29
[JS IR BE] updated inliner to the most recent version
...
FunctionInlining.kt commit 364b7ae72a :
https://github.com/JetBrains/kotlin-native/blob/364b7ae72a49c2a1716c83c1bab0866dfe46fa25/backend.native/compiler/ir/backend.native/src/org/jetbrains/kotlin/backend/konan/lower/FunctionInlining.kt
2019-03-15 14:56:33 +03:00
Anton Bannykh
0249e33f3e
IR: add skipExternalProperties flag to PropertiesLowering
...
Same problem as in deafult argument lowering: JVM and JS semantics differ.
Same solution: skip in common lowerings, process if needed in platform ones.
2019-03-15 14:56:31 +03:00
Anton Bannykh
9a56b0e6d6
[JS IR BE] Reorder phases in order to extract a common prefix
2019-03-15 14:56:31 +03:00
Anton Bannykh
017cd3a0f6
IR: more verbose unsatisfied phase requirement reporting
2019-03-15 14:55:10 +03:00
Anton Bannykh
9dd9ef1cf0
IR: Make Phaser complain about duplicate phase names
...
(instead of silently throwing away all but the last phase
with the same name)
2019-03-15 14:55:10 +03:00
Svyatoslav Kuzmich
41bbd4d2d6
[JS IR BE] Support property accessors with @JsName
2019-03-15 13:53:21 +03:00
Svyatoslav Kuzmich
9230b70294
[JS IR BE] Minor dynamic refactoring
2019-03-15 13:53:20 +03:00
Svyatoslav Kuzmich
4005b5ce10
[JS IR BE] Fix fqNames in moveBodilessDeclarationsToSeparatePlace
2019-03-15 13:53:20 +03:00
Alexander Gorshenev
0c8f0a433d
Copying kotlin-native fix
...
* commit 575cbf48c3
| Author: SvyatoslavScherbina <Svyatoslav.Scherbina@jetbrains.com >
| Date: Thu Mar 14 14:25:10 2019 +0300
|
| Optimize DescriptorReferenceDeserializer again (#2755 )
to common ir deserializer.
2019-03-15 12:48:48 +03:00
Mark Punzalan
9eb11ff3e9
Generate conditional jumps with optimizations for loops, if possible.
2019-03-15 08:32:22 +01:00
Alexander Gorshenev
ee7660065b
Changes after code review
2019-03-15 03:03:08 +03:00
Alexander Gorshenev
f8be378a65
Port of native fix to common deserializer
...
* commit 347e2dadc6
| Author: Igor Chevdar <igor.chevdar@jetbrains.com >
| Date: Wed Mar 6 12:51:40 2019 +0300
|
| [Serializer] More graceful fix of parents
2019-03-15 03:03:08 +03:00
Alexander Gorshenev
cc93239397
Commonized native and js IR serialization infrastructure
2019-03-15 03:03:08 +03:00
Georgy Bronnikov
d7ce24410d
Remove descriptors from SharedVariablesManager
2019-03-13 23:13:41 +03:00
Mads Ager
8b566fda76
JVM_IR: Perform asm type conversion for string concat arguments.
...
This ensures that the Unit instance is loaded when string
concatenation contains a sub part that is a call of a Unit
return-type method.
2019-03-13 10:01:21 +01:00
Ting-Yuan Huang
013ad4b8e4
JVM_IR: defer some branch optimizations to codegen.
...
Specifically, defer the removal of hand-written "if (true|false)" from
JvmBuiltinOptimizationLowering into codegen so that appropriate debug
info (and a NOP) can be inserted.
Change-Id: Ia11af05ad8b4251946bd3e685fb7c3319f0f433f
2019-03-13 08:48:20 +01:00
Ting-Yuan Huang
6bbb0269b1
IR: Set when.origin for IrIfElseImpl
...
Change-Id: I38510b59e3dc936baadbfe3ef2702990493815e5
2019-03-13 08:48:20 +01:00
Mikhael Bogdanov
1e3277d0e6
Set proper origin for cascaded if expression
2019-03-13 08:27:07 +01:00
Alexander Udalov
584137121b
Do not write version requirements in metadata for lambdas
...
#KT-29790 Fixed
2019-03-12 18:53:08 +01:00
Alexander Udalov
a269e9bc00
JVM IR: fix typo in condition in KCallableNamePropertyLowering
...
This however makes testLocalFunctionName fail because currently
isSubclassOf (incorrectly) returns false and therefore an anonymous
class is generated and the name is taken from there. The name there is
"box$OK" which is incorrect. The isSubclassOf issue is KT-28198 and will
be fixed separately; the incorrect name issue will be investigated later
2019-03-12 18:49:41 +01:00
Steven Schäfer
9ea39d2b7c
Fix return types for while loops.
2019-03-12 09:33:00 +01:00
Steven Schäfer
4c8425caeb
Run ExpectDeclarationsRemoving in the JVM_IR backend.
2019-03-12 09:29:00 +01:00
Alexander Udalov
dd0b087b92
Add StackValue.put(InstructionAdapter) for convenience
2019-03-11 18:36:09 +01:00
Steven Schäfer
eec25dbea2
Avoid true condition generation for do while loop, since it confuses the Java verifier.
...
Change-Id: I96eca6623a91a8365090768f42c6e865b612e1cc
2019-03-06 16:04:23 +01:00
Ting-Yuan Huang
c1d721a15f
when: emit lookupswitch/tableswitch if possible
...
A lookupswitch or tableswitch can be used if all conditions are equality
checks to constants. To be more specific, it can be done if:
1. All conditions are CALL 'EQEQ(Any?, Any?)': Boolean
2. All types of variables involved in comparison are in the same group
of Char/Byte/Short/Int, String or enum.
3. All arg0 refer to the same value.
4. All arg1 are IrConst<*>.
Change-Id: Ifd7cb618395f6c5cc64601018b446f0bb7f5891c
2019-03-06 13:33:55 +01:00
Igor Chevdar
2c7b05a67b
Wrapped descriptors: supported complex annotations
2019-03-06 13:25:06 +03:00
Alexander Udalov
e3779b1883
Minor, relax parameter type of AsmUtil.putJavaLangClassInstance
2019-03-05 17:58:10 +01:00
Alexander Udalov
9d94a54f03
Simplify ExternalDependenciesGenerator
...
Remove unused parameters, inline inner class
2019-03-05 16:28:34 +01:00
Alexander Udalov
4b712bd14b
Remove dependency of backend-common on descriptors.jvm
2019-03-05 16:28:34 +01:00
Alexander Udalov
d7fd4987ae
Remove dependency of ir.tree on frontend.java
2019-03-05 16:28:34 +01:00
Alexander Udalov
45e8d2e1df
Do not use JVM-specific code for SAM conversions in psi2ir
...
Extract all JVM-specific code into GeneratorExtensions.SamConversion.
This is needed in order to remove dependency of ir.tree on frontend.java
2019-03-05 16:28:33 +01:00
Alexander Udalov
aaa2bad719
Do not use IR_EXTERNAL_JAVA_DECLARATION_STUB in DeclarationStubGenerator
...
This code is common across backends and it should not depend on
JVM-specific behavior. Introduce GeneratorExtensions to reverse the
dependency here
2019-03-05 16:28:33 +01:00
romanart
5d6f42e4e6
Fix rebase
2019-03-04 23:24:17 +03:00