Commit Graph

2446 Commits

Author SHA1 Message Date
Vasily Levchenko 9d63662fbe CODEGEN: generation type info for complex types and refactoring.
- unchecked_cast warning suppression
- move subroutineType ext function to DebugUtils.
- there is only one diType in caodegen
- generate type references for complex types if they are references
- generating array types
2017-05-04 20:35:44 +03:00
Vasily Levchenko b1462f8da6 DEBUGDEMO: refactoring & new demo of structured types.
- extract common part for easier demo introducing.
- fixed warning [-Wincompatible-pointer-types]
- demo-types
- this debug info generated for pseudo structure:
    1 /* smth here... */
    2 A {
    3 int a;
    4 int b;
    5}

    0:b-debugger-types:minamoto@unit-703(0)# llvmDebugInfoC/build/exe/demotypes/demotypes
    define i32 @main() !dbg !3 {
    entry:
      ret i32 42
      }

    !llvm.dbg.cu = !{!0}

    !0 = distinct !DICompileUnit(language: DW_LANG_C_plus_plus, file: !1, producer: "konanc", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
    !1 = !DIFile(filename: "<stdin>", directory: "")
    !2 = !{}
    !3 = distinct !DISubprogram(name: "main", linkageName: "main", scope: null, file: !1, line: 1, type: !4, isLocal: false, isDefinition: true, isOptimized: false, unit: !0, variables: !2)
    !4 = !DISubroutineType(types: !5)
    !5 = !{!6}
    !6 = !DICompositeType(tag: DW_TAG_structure_type, name: "A", file: !1, line: 2, size: 64, align: 32, elements: !7)
    !7 = !{!8, !10}
    !8 = !DIDerivedType(tag: DW_TAG_member, name: "a", scope: !6, file: !1, line: 3, baseType: !9, size: 32, align: 32)
    !9 = !DIBasicType(name: "int", size: 32, align: 4)
    !10 = !DIDerivedType(tag: DW_TAG_member, name: "b", scope: !6, file: !1, line: 4, baseType: !9, size: 32, align: 32, offset: 32)
2017-05-04 20:35:44 +03:00
Vasily Levchenko dc8bcc677a DEBUGINFO: binding enchancement && composite type support
- structured datatypes usable in debug info
- bindings for llvm/Support/Dwarf.h (llvm 3.9) makes easier introducing dwarf constants from LLVM
- added HANDLE_DW_LANG generating sequence DW_LANGs (DW_LANG_Kotlin equals DW_LANG_C89 for now).
- refactoring : g/c typo
- tag (DwarfTag) of the type added as parameter in DICreateReplaceableCompositeType
- binding for creating reference type
- binding for creating array type.
2017-05-04 20:35:44 +03:00
Igor Chevdar 8fbc06809a Codegen: optimization of catch (t: Throwable) {} 2017-05-04 20:44:36 +05:00
Igor Chevdar 39c6aa0f2c Fixed bug in DeepCopyIrWithDescriptors 2017-05-04 20:44:36 +05:00
Igor Chevdar 4dcee48e1f Removed CodeContext from scope of a variable 2017-05-04 20:44:36 +05:00
Igor Chevdar ca4beb171b Pulled up functions for working with stack on top level 2017-05-04 20:44:36 +05:00
Igor Chevdar e600c93dfa Enabled tests with finally blocks on coroutines + added tests 2017-05-04 20:44:36 +05:00
Igor Chevdar 1d9ccb36f3 Renamed IrInlineFunctionBody to IrReturnableBlock 2017-05-04 20:44:36 +05:00
Igor Chevdar 667b5fb936 Removed finally blocks handling from code generator 2017-05-04 20:44:36 +05:00
Igor Chevdar 3c84e39360 Finally blocks lowering 2017-05-04 20:44:36 +05:00
Igor Chevdar a7caf5ba29 Coroutines lowering: minor refactoring 2017-05-04 20:44:36 +05:00
Nikolay Igotti fc4fc438c3 Bump version to 0.2 2017-05-04 18:03:04 +03:00
Nikolay Igotti d95f419a53 v0.2 preparations (#547)
* v0.2 preparations

* Fix Tensorflow sample.
2017-05-04 17:28:59 +03:00
Konstantin Anisimov 6e7cb64b37 Typos fixed 2017-05-04 15:14:54 +07:00
Konstantin Anisimov 1e134f7062 Use fqName
Add BooleanArray
Use set
2017-05-04 15:14:54 +07:00
Konstantin Anisimov 666f052b10 Enforce inlining for *Array constructors 2017-05-04 15:14:54 +07:00
Ilya Matveev 156a8d79c9 Update compiler (1.1.3-dev-1810) 2017-05-03 22:06:26 +07:00
Ilya Matveev adb6e17b60 backend: Implement executableScriptFileName method in K2Native 2017-05-03 22:06:26 +07:00
Julius Kunze 7afa5e395a Added TensorFlow sample (#541)
* Added TensorFlow sample

* Added graph to TensorFlow sample

* Added session to TensorFlow sample

* added description to readme, cleaned up tensorflow.def, used lambda for deallocator, call Status.delete on error
2017-05-03 13:03:18 +03:00
Ilya Matveev 717f9ebc74 tests: Don't assume that NaN > any double in coercion test 2017-05-03 16:59:59 +07:00
Ilya Matveev 74bd3256f0 runtime: Correct Float.MIN_VALUE 2017-05-03 16:59:59 +07:00
Ilya Matveev 4179b5ddd6 tests: Disable tests that assume that NaN is greater than any value 2017-05-03 16:59:59 +07:00
Ilya Matveev 0a06f6b4ca stdlib: Add more minOf/maxOf extensions 2017-05-03 16:59:59 +07:00
Svyatoslav Scherbina c222eb8f04 Fix conversion between P1.(...)->R and (P1, ...)->R when inlining 2017-05-02 22:18:18 +03:00
Svyatoslav Scherbina a8ab837035 Add failing test 'inline24' 2017-05-02 22:18:18 +03:00
Ilya Matveev ce29c5fbb7 stdlib: Throw NoSuchElementException in range iterators 2017-05-02 22:09:36 +07:00
Ilya Matveev fe5badee34 build: Store kotlin-compiler repo URL in a project property 2017-05-02 18:17:27 +07:00
Ilya Matveev 3f0a273a11 build: Switch Kotlin compiler downloading to kotlin-dev bintray repo
This patch uses kotlin-dev bintray repo (dl.bintray.com/kotlin/kotlin
-dev/org/jetbrains/kotlin/kotlin-compiler/) for Kotlin compiler
downloading instead of the sonatype repo and our bintray mirror of it.
So there is not need to run ./gradlew update_kotlin_compiler on each
compiler update.

It also updates kotlin-compiler to 1.1.3-dev-1619
2017-05-02 18:17:27 +07:00
Ilya Matveev 94c1716899 build: Fix dependency uploading to bintray repo 2017-05-02 18:17:27 +07:00
Ilya Matveev 654ece0311 build: Add bintray repo in dependencies project 2017-05-02 18:17:27 +07:00
Vasily Levchenko 7c1c07a0d9 handline: license and LICENSE on mac with case-insensitive file system.
- license->licenses
- reintroduce 4383b5de
2017-04-30 08:56:32 +03:00
Dmitry Jemerov 4383b5de5d Add missing LICENSE file 2017-04-28 17:05:20 +02:00
Igor Chevdar 57c889de41 SuspendFunctionLowering: optimizations of ExpressionSlicer 2017-04-28 13:46:44 +03:00
Igor Chevdar adc1faa6c5 Moved NativePtr from interop to konan.internal 2017-04-28 13:45:46 +03:00
Igor Chevdar 0750626c29 Inherited coroutines from SuspendFunction 2017-04-28 13:45:46 +03:00
Igor Chevdar 66aef3bf5a Handling of 'WITH_COROUTINES' in tests 2017-04-28 13:45:46 +03:00
Igor Chevdar 4f22b4803a Coroutines: support of Unit functions 2017-04-28 13:45:46 +03:00
Igor Chevdar 6aa3493de2 Added some tests on coroutines 2017-04-28 13:45:46 +03:00
Igor Chevdar 86449c6d04 Codegen: init all slots at the beginning
This is needed for coroutines: when resuming suspend functions
all visible locals must be initialized.
2017-04-28 13:45:46 +03:00
Igor Chevdar 01b6ab74a5 Codegen: coroutines support 2017-04-28 13:45:46 +03:00
Igor Chevdar bd6a091088 Coroutines lowering 2017-04-28 13:45:46 +03:00
Igor Chevdar 7f9c5e5c8b Inlining bug fix 2017-04-28 13:45:46 +03:00
Igor Chevdar 366e28775f Added @FixmeInline and commented some inline functions 2017-04-28 13:45:46 +03:00
Igor Chevdar 2b92b1d880 Added coroutines stdlib classes 2017-04-28 13:45:46 +03:00
Igor Chevdar 6c97044452 Extracted common function for creating fake overrides 2017-04-28 13:45:46 +03:00
Igor Chevdar 8a5659456c Fixes bug in local declarations lowering + test 2017-04-28 13:45:46 +03:00
Ilya Matveev 028cf6c947 build: Allow kotlin-compiler downloading from sonatype
This patch allows one to download the kotlin-compiler dependency
not only from the bintray mirror but also from the sonatype original
repo.
2017-04-28 17:15:01 +07:00
Ilya Matveev c9a344f8c7 build: Upload used kotlin-compiler builds to bintray 2017-04-28 17:15:01 +07:00
Alexander Gorshenev f77a4b9090 Represent the presence of a backing field with just a protobuf
extension bit, instead of a more complex annotation scheme.  The
scheme was initially introduced when Konan still used JS serializer
extension, and we only could apply an additional annotation.
2017-04-27 22:55:52 +03:00