Commit Graph

13232 Commits

Author SHA1 Message Date
Andrey Breslav 1849643e52 Got rid of HAS_TAIL_CALL slice 2013-12-06 00:28:13 +04:00
Andrey Breslav 934d8ee199 Rename class 2013-12-06 00:28:13 +04:00
Andrey Breslav d5941e90eb Unused code removed 2013-12-06 00:28:13 +04:00
Andrey Breslav fe33fbe79b Properly detect changing 'this' reference in tail calls to members 2013-12-06 00:28:12 +04:00
Andrey Breslav 97319808b6 Detecting tail calls through CFA 2013-12-06 00:28:12 +04:00
Andrey Breslav 9f319e8b24 TCO: Re-use parameter values already loaded onto the stack for a recursive call 2013-12-06 00:28:12 +04:00
Andrey Breslav 2a03d40233 TCO: Optimize all function calls, not only JetCallExpressions 2013-12-06 00:28:11 +04:00
Andrey Breslav 6d369b985f Do not rely on JetCallExpressions in tail-call detection
Calls come in other forms too
2013-12-06 00:28:11 +04:00
Andrey Breslav 9ed0b009d4 No need to store a list of recursive call expressions in trace 2013-12-06 00:28:11 +04:00
Andrey Breslav 0316e6cb8d Indirect tests for tail call diagnostics removed 2013-12-06 00:28:10 +04:00
Andrey Breslav 94500bd968 Use codegen box tests for tail calls as diagnostic tests too 2013-12-06 00:28:04 +04:00
Andrey Breslav bb6ceffbbb Missing tests added 2013-12-06 00:27:31 +04:00
Andrey Breslav c70a54306f Rename directory for back-end tests 2013-12-05 23:53:08 +04:00
Andrey Breslav fe00b03279 Rename directory for diagnostic tests 2013-12-05 23:53:07 +04:00
Andrey Breslav bf8bfc63c5 Don't analyze tail calls when only declaration headers are processed
Otherwise we are getting spurious "NO_TAIL_CALLS" warnings
2013-12-05 23:53:07 +04:00
Sergey Mashkov fb0ec573e0 Tests for JVM back-end support of tail-call optimization 2013-12-05 23:53:07 +04:00
Sergey Mashkov 9da3d2f051 Support tail-call optimization in the JVM back-end 2013-12-05 23:53:06 +04:00
Sergey Mashkov cfbcbb80f5 Store methodStartLabel in MethodContext 2013-12-05 23:53:06 +04:00
Sergey Mashkov e4382ff95b Minor: better assertions and warnings removed 2013-12-05 23:53:06 +04:00
Sergey Mashkov 1c81102941 Tail-call detection support in the front-end 2013-12-05 23:53:05 +04:00
Sergey Mashkov 83b4ad4eac Add binary attribute to generated built-ins data 2013-12-05 23:53:05 +04:00
Sergey Mashkov b62e5e3ef5 Add [tailRecursive] annotation to built-ins 2013-12-05 21:41:02 +04:00
Andrey Breslav d2a31d88cd Subroutine exit knows when it's an error 2013-12-05 21:41:02 +04:00
Andrey Breslav 2197c7e8c6 InstructionVisitorWithResult introduced 2013-12-05 21:41:02 +04:00
Andrey Breslav 66e3743cc5 Useful method extracted + visiting strategy added 2013-12-05 21:41:02 +04:00
Andrey Breslav da1397b5bd Marker interface ReturnInstruction extracted 2013-12-05 21:33:51 +04:00
Svetlana Isakova e44fe3769a fixed compilation after return requirement for local functions added 2013-12-05 15:51:57 +04:00
Svetlana Isakova 8e27877817 check definite return in local functions 2013-12-05 15:51:57 +04:00
Svetlana Isakova d27c8b7d61 added test for obsolete task
#KT-4034 Fixed
2013-12-05 15:51:57 +04:00
Svetlana Isakova 3df37ee113 moved method 2013-12-05 15:51:57 +04:00
Svetlana Isakova 29acef7842 find pseudocodeVariablesData lazily 2013-12-05 15:51:57 +04:00
Natalia Ukhorskaya a9da88b425 Remove NumberValueTypeConstructor 2013-12-05 15:23:42 +04:00
Natalia Ukhorskaya 27e602133d Small fixes after review: do not set is_pure=true for named constants refactoring 2013-12-05 15:23:41 +04:00
Natalia Ukhorskaya 155cbbfc02 Add evaluator for java property initializer 2013-12-05 15:23:40 +04:00
Natalia Ukhorskaya e5a3518248 Parse longs with 'L' suffix. Report error if 'l' used. 2013-12-05 15:23:40 +04:00
Natalia Ukhorskaya 53d17bc4ce Rename CompileTimeConstantResolver to CompileTimeConstantChecker 2013-12-05 15:23:39 +04:00
Natalia Ukhorskaya b6ce6c5e5a Parse floats with 'F' or 'f' suffix 2013-12-05 15:22:01 +04:00
Natalia Ukhorskaya fb9a7e3c4c Create error value for division by zero 2013-12-05 15:22:00 +04:00
Natalia Ukhorskaya e805478d6c Get call expression type from compile time value if possible 2013-12-05 15:22:00 +04:00
Natalia Ukhorskaya e6c442ba04 Remove set of PROCESSED flag in updateRecordedType 2013-12-05 15:21:59 +04:00
Natalia Ukhorskaya 17152c39e0 Tear down for test 2013-12-05 15:21:59 +04:00
Natalia Ukhorskaya 53a5264aaf Use type from compile time value for binary expression 2013-12-05 15:21:58 +04:00
Natalia Ukhorskaya 6331dd2308 Fix toFloat in stdlib 2013-12-05 15:21:57 +04:00
Natalia Ukhorskaya cbcca6c08e Support IntegerValueTypeConstant in java backend 2013-12-05 15:21:57 +04:00
Natalia Ukhorskaya f329e245ad Support IntegerValueTypeConstant in js backend 2013-12-05 15:21:56 +04:00
Natalia Ukhorskaya 2a023c16a9 Use type from compile time value for prefix expression 2013-12-05 15:21:55 +04:00
Natalia Ukhorskaya 9c176ddaa8 Warning for integer overflow 2013-12-05 15:21:55 +04:00
Natalia Ukhorskaya b4b7988eec Refactoring 2013-12-05 15:21:54 +04:00
Natalia Ukhorskaya a99ce06e78 Move methods 2013-12-05 15:21:53 +04:00
Natalia Ukhorskaya 8da528a018 Add common method to parse char value 2013-12-05 15:21:53 +04:00