Nikolay Igotti
e65b86ab21
Memory management design and implementation. ( #148 )
2016-12-27 15:01:18 +02:00
Alexander Gorshenev
c9fbd37f90
Use lower case for phase names.
2016-12-27 16:11:45 +04:00
Vasily Levchenko
3fe59cc46c
TEST: convertion unit tests into run tests
2016-12-27 13:56:03 +03:00
Svyatoslav Scherbina
7fd4b4fe34
backend: use IR builders in CallableReferenceLowering
2016-12-27 16:04:40 +07:00
Svyatoslav Scherbina
7b29f4854c
backend: lower safe casts
2016-12-27 16:04:40 +07:00
Svyatoslav Scherbina
008b8ec031
backend: connect lowering with IR generators
2016-12-27 16:04:40 +07:00
Svyatoslav Scherbina
96611c1222
backend: add some trivial utils to IR builders
2016-12-27 16:04:40 +07:00
Svyatoslav Scherbina
9054a5eb5e
backend: untie IR builders from psi2ir generators
2016-12-27 16:04:40 +07:00
Svyatoslav Scherbina
fa95d4d2a8
backend: move psi2ir.builders.* to ir.builders
2016-12-27 16:04:40 +07:00
Svyatoslav Scherbina
7dcc8f86a5
backend: add files from psi2ir.builders
...
and some from psi2ir.generators
2016-12-27 16:04:40 +07:00
Nikolay Igotti
f49c6133f3
Return objects to slot. ( #161 )
2016-12-26 18:31:50 +02:00
Alexander Gorshenev
2515d1fdaa
Swtiched to "gold" linker on linux.
...
Provided more aggressive optimization flags on Linux.
2016-12-26 14:41:48 +04:00
Nikolay Igotti
dbc1cb1919
Switch to unrelated ObjHeader and ArrayHeader. ( #160 )
2016-12-26 11:27:27 +02:00
Svyatoslav Scherbina
221540a579
kotlin-compiler update: 1.1-20161224.154011-334
...
and fix related compilation error
2016-12-26 12:23:51 +07:00
Alexander Gorshenev
8035a77e52
a little more on phases.
2016-12-23 16:47:06 +04:00
Svyatoslav Scherbina
62737efd54
backend: add tests:
...
* test for uninitialized vals
* test initializers3: global `var` of reference type
* expression_as_statement (disabled): using type operator as statement
Also enable test break1.
2016-12-23 11:40:31 +07:00
Nikolay Igotti
25db86df3e
Rework variable management for memory management's sake. ( #156 )
2016-12-22 18:30:58 +03:00
Svyatoslav Scherbina
4acb0774cf
backend: do not refer phases by name
...
also transform KonanPhase to enum
2016-12-22 18:01:48 +07:00
SvyatoslavScherbina
b6561b13a4
Implement lowering of some builtin operators. ( #154 )
...
* EQEQ
* THROW_NPE
Add test for (un)boxing `==` operands.
2016-12-22 13:02:20 +07:00
Svyatoslav Scherbina
0632a30eca
kotlin-compiler update: 1.1-20161219.154657-321
2016-12-22 12:49:45 +07:00
Nikolay Igotti
8ec62ba474
Change code structure by adding explicit epilogue. ( #150 )
2016-12-21 14:20:57 +03:00
Alexander Gorshenev
16079ce6af
Moved
...
DescriptorUtils.kt -> descriptors/DescriptorUtils.kt
IrUtils.kt -> ir/IrUtils.kt
2016-12-21 14:38:19 +04:00
Alexander Gorshenev
25fcd23e03
Forgottent commit to fix the broken build.
2016-12-20 19:55:31 +04:00
Alexander Gorshenev
82143d6c8a
Eliminated Logger class.
...
Context now provides the log(message: String) method.
This method knows if the current phase is verbose or not.
2016-12-20 19:34:26 +04:00
Alexander Gorshenev
e48c5a7215
Introduced
...
nativeMemUtils.getByteArray
and
nativeMemUtils.putByteArray
for faster memory copy.
2016-12-20 19:32:27 +04:00
Alexander Gorshenev
823ef031eb
After the code review.
2016-12-20 19:32:27 +04:00
Alexander Gorshenev
a1786614ea
Removed Javascript serializer from Konan.
...
Introduced our own serializer.
2016-12-20 19:32:27 +04:00
SvyatoslavScherbina
2950921bd1
backend/codegen: use unnamed values instead of passing tmp variable names ( #149 )
2016-12-20 17:29:48 +07:00
Konstantin Anisimov
801953ec56
RUNTIME: laucher uses runtime API for registering and running out initializers
2016-12-20 12:46:22 +03:00
Konstantin Anisimov
5f097350ac
TEST: test for global variable initialization added
2016-12-20 12:46:22 +03:00
Konstantin Anisimov
86bb5477c5
CODEGEN: implementation of global fields initialization.
2016-12-20 12:46:22 +03:00
Konstantin Anisimov
bca03288f6
CODEGEN: Possibility to create string literal from String implemented (refactoring)
2016-12-20 12:46:22 +03:00
Svyatoslav Scherbina
4706ec9ddd
Review feedback, part 1
2016-12-20 15:33:38 +07:00
Svyatoslav Scherbina
f2b5b98dba
backend: enable and add tests for autoboxing
2016-12-20 15:33:38 +07:00
Svyatoslav Scherbina
61c28db886
backend: improve Nothing type handling
2016-12-20 15:33:38 +07:00
Svyatoslav Scherbina
44f2036506
backend: implement autoboxing as IR transformation
2016-12-20 15:33:38 +07:00
Nikolay Igotti
3b7321ef94
Boxing.
2016-12-20 15:33:38 +07:00
Vasily Levchenko
86a6771a09
kotlin-compiler update: 1.1-20161217.025654-317
2016-12-19 12:36:47 +03:00
Alexander Gorshenev
e8c2fb4f53
Fix broken build.
2016-12-14 21:49:11 +04:00
Alexander Gorshenev
f5a627f6ff
Allow -Pkonanc_flags="-print_bitcode" for gradle commands.
2016-12-14 20:40:45 +04:00
Nikolay Igotti
175dc9fb14
Fix build.
2016-12-14 18:23:36 +03:00
Vasily Levchenko
11f132f16d
CODEGEN: string concatination with string builder
2016-12-14 16:48:44 +03:00
Nikolay Igotti
08bdcc963f
Use lambdas in stdlib. ( #140 )
2016-12-14 16:46:39 +03:00
Alexander Gorshenev
35668cc7e1
Added phase control flags.
...
-print_descriptors
-print_ir
-print_bitcode
-verify_descriptors
-verify_ir
-verify_bitcode
-list
-enable <phase name>
-disable <phase name>
-verbose <phase name>
2016-12-13 21:31:47 +04:00
Alexander Gorshenev
6a6424f462
A little more konanc.
2016-12-13 17:11:27 +04:00
Nikolay Igotti
093409a1af
Allow binary search for open methods. ( #132 )
2016-12-13 13:24:50 +03:00
Svyatoslav Scherbina
a6a6c677a3
backend.common: fix minor bug in LocalFunctionsLowering
...
extension receiver parameter should be remapped too
(e.g. to support lambda with receiver)
2016-12-13 16:09:55 +07:00
Svyatoslav Scherbina
7cebc4f676
backend: support function types with receiver
2016-12-13 16:09:55 +07:00
Svyatoslav Scherbina
319a473565
backend: add test for lambda with receiver
2016-12-13 16:09:55 +07:00
Svyatoslav Scherbina
ac4aca1c3a
backend: add more tests for lambda
2016-12-13 16:09:55 +07:00