Marker interface ReturnInstruction extracted
Useful method extracted + visiting strategy added
InstructionVisitorWithResult introduced
Subroutine exit knows when it's an error
Add [tailRecursive] annotation to built-ins
Add binary attribute to generated built-ins data
Tail-call detection support in the front-end
Minor: better assertions and warnings removed
Store methodStartLabel in MethodContext
Support tail-call optimization in the JVM back-end
Tests for JVM back-end support of tail-call optimization
Don't analyze tail calls when only declaration headers are processed

Otherwise we are getting spurious "NO_TAIL_CALLS" warnings
Rename directory for diagnostic tests
Rename directory for back-end tests
Missing tests added
Use codegen box tests for tail calls as diagnostic tests too
Indirect tests for tail call diagnostics removed
No need to store a list of recursive call expressions in trace
Do not rely on JetCallExpressions in tail-call detection

Calls come in other forms too
TCO: Optimize all function calls, not only JetCallExpressions