We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
md5: da968ebb3c198b9db21287b64ca43938
relates to:
-enable-library-evolution
Issue Description:
import _Differentiation public class Tracked<T> {} extension Tracked: Differentiable where T: Differentiable {} @differentiable func callback(_ x: inout Tracked<Float>.TangentVector) {} @differentiable func caller(_ x: Tracked<Float>) -> Tracked<Float> { return x.withDerivative(callback) }
$ swiftc -Osize -Xfrontend -enable-library-evolution deriv.swift Error#: 0. Begin Error in Function: 'AD__$s5deriv6calleryAA7TrackedCySfGAEF__vjp_src_0_wrt_0' Error! Found a leaked owned value that was never consumed. Value: %31 = partial_apply [callee_guaranteed] %30(%29) : $@convention(thin) (@guaranteed Tracked<Float>.TangentVector, @owned _AD__$s5deriv6calleryAA7TrackedCySfGAEF_bb0__PB__src_0_wrt_0) -> @owned Tracked<Float>.TangentVector Error#: 0. End Error in Function: 'AD__$s5deriv6calleryAA7TrackedCySfGAEF__vjp_src_0_wrt_0' Found ownership error?! <unknown>:0: error: fatal error encountered during compilation; please file a bug report with your project and the crash log <unknown>:0: note: triggering standard assertion failure routine Stack dump: ... 1. Swift version 5.3-dev (LLVM baefd3c477, Swift 2240dc8bf4) 2. While evaluating request ExecuteSILPipelineRequest(Run pipelines { Guaranteed Passes } on SIL for deriv.deriv) 3. While running pass #​228 SILModuleTransform "MandatoryInlining". 4. While verifying SIL function "@AD__$s5deriv6calleryAA7TrackedCySfGAEF__vjp_src_0_wrt_0". for 'caller(_:)' (at deriv.swift:18:1) 0 swift 0x000000011368ba48 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40 1 swift 0x000000011368a9c8 llvm::sys::RunSignalHandlers() + 248 2 swift 0x000000011368c03d SignalHandler(int) + 285 3 libsystem_platform.dylib 0x00007fff6ef8f5fd _sigtramp + 29 4 libsystem_platform.dylib 000000000000000000 _sigtramp + 18446603338654353952 5 libsystem_c.dylib 0x00007fff6ee65808 abort + 120 6 swift 0x000000010f0f0ad7 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*)::$_1::__invoke(void*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool) + 711 7 swift 0x00000001135f423b llvm::report_fatal_error(llvm::Twine const&, bool) + 251 8 swift 0x00000001135f4132 llvm::report_fatal_error(char const*, bool) + 50 9 swift 0x000000010fbffe01 swift::LinearLifetimeChecker::ErrorBuilder::handleError(llvm::function_ref<void ()>&&, bool) const + 721 10 swift 0x000000010fbff41d swift::SILValueOwnershipChecker::checkValueWithoutLifetimeEndingUses() + 461 11 swift 0x000000010fbfd5db swift::SILValueOwnershipChecker::checkUses() + 203 12 swift 0x000000010fbfd294 swift::SILValueOwnershipChecker::check() + 180
// AD__$s4main6calleryAA7TrackedCySfGAEF__vjp_src_0_wrt_0 sil hidden [ossa] @AD__$s4main6calleryAA7TrackedCySfGAEF__vjp_src_0_wrt_0 : $@convention(thin) (@guaranteed Tracked<Float>) -> (@owned Tracked<Float>, @owned @callee_guaranteed (@in_guaranteed Tracked<Float>.TangentVector) -> @out Tracked<Float>.TangentVector) { // %0 // users: %4, %1 bb0(%0 : @guaranteed $Tracked<Float>): debug_value %0 : $Tracked<Float>, let, name "x", argno 1 // id: %1 %2 = alloc_stack $Tracked<Float> // users: %28, %27, %22 %3 = alloc_stack $Tracked<Float> // users: %26, %22, %4 %4 = store_borrow %0 to %3 : $*Tracked<Float> // function_ref callback(_:) %5 = function_ref @$s4main8callbackyyAA7TrackedCAA16_Differentiation14DifferentiableRzlE13TangentVectorVySf_GzF : $@convention(thin) (@inout Tracked<Float>.TangentVector) -> () // user: %6 %6 = thin_to_thick_function %5 : $@convention(thin) (@inout Tracked<Float>.TangentVector) -> () to $@callee_guaranteed (@inout Tracked<Float>.TangentVector) -> () // user: %7 %7 = convert_function %6 : $@callee_guaranteed (@inout Tracked<Float>.TangentVector) -> () to $@callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector> // users: %25, %22 // function_ref Differentiable.withDerivative(_:) %8 = function_ref @$s16_Differentiation14DifferentiablePAAE14withDerivativeyxy13TangentVectorQzzcF : $@convention(method) <τ_0_0 where τ_0_0 : Differentiable> (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <τ_0_0.TangentVector>, @in_guaranteed τ_0_0) -> @out τ_0_0 // user: %9 %9 = partial_apply [callee_guaranteed] %8<Tracked<Float>>() : $@convention(method) <τ_0_0 where τ_0_0 : Differentiable> (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <τ_0_0.TangentVector>, @in_guaranteed τ_0_0) -> @out τ_0_0 // users: %16, %14 %10 = differentiability_witness_function [jvp] [parameters 1] [results 0] <Self where Self : Differentiable> @$s16_Differentiation14DifferentiablePAAE14withDerivativeyxy13TangentVectorQzzcF : $@convention(method) <τ_0_0 where τ_0_0 : Differentiable> (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <τ_0_0.TangentVector>, @in_guaranteed τ_0_0) -> @out τ_0_0 // user: %11 %11 = partial_apply [callee_guaranteed] %10<Tracked<Float>>() : $@convention(method) <τ_0_0 where τ_0_0 : Differentiable> (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <τ_0_0.TangentVector>, @in_guaranteed τ_0_0) -> (@out τ_0_0, @owned @callee_guaranteed @substituted <τ_0_0, τ_0_1> (@in_guaranteed τ_0_0) -> @out τ_0_1 for <τ_0_0.TangentVector, τ_0_0.TangentVector>) // user: %15 %12 = differentiability_witness_function [vjp] [parameters 1] [results 0] <Self where Self : Differentiable> @$s16_Differentiation14DifferentiablePAAE14withDerivativeyxy13TangentVectorQzzcF : $@convention(method) <τ_0_0 where τ_0_0 : Differentiable> (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <τ_0_0.TangentVector>, @in_guaranteed τ_0_0) -> @out τ_0_0 // user: %13 %13 = partial_apply [callee_guaranteed] %12<Tracked<Float>>() : $@convention(method) <τ_0_0 where τ_0_0 : Differentiable> (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <τ_0_0.TangentVector>, @in_guaranteed τ_0_0) -> (@out τ_0_0, @owned @callee_guaranteed @substituted <τ_0_0, τ_0_1> (@in_guaranteed τ_0_0) -> @out τ_0_1 for <τ_0_0.TangentVector, τ_0_0.TangentVector>) // user: %15 %14 = copy_value %9 : $@callee_guaranteed (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector>, @in_guaranteed Tracked<Float>) -> @out Tracked<Float> // user: %15 %15 = differentiable_function [parameters 1] %14 : $@callee_guaranteed (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector>, @in_guaranteed Tracked<Float>) -> @out Tracked<Float> with_derivative {%11 : $@callee_guaranteed (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector>, @in_guaranteed Tracked<Float>) -> (@out Tracked<Float>, @owned @callee_guaranteed @substituted <τ_0_0, τ_0_1> (@in_guaranteed τ_0_0) -> @out τ_0_1 for <Tracked<Float>.TangentVector, Tracked<Float>.TangentVector>), %13 : $@callee_guaranteed (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector>, @in_guaranteed Tracked<Float>) -> (@out Tracked<Float>, @owned @callee_guaranteed @substituted <τ_0_0, τ_0_1> (@in_guaranteed τ_0_0) -> @out τ_0_1 for <Tracked<Float>.TangentVector, Tracked<Float>.TangentVector>)} // users: %17, %21 destroy_value %9 : $@callee_guaranteed (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector>, @in_guaranteed Tracked<Float>) -> @out Tracked<Float> // id: %16 %17 = begin_borrow %15 : $@differentiable @callee_guaranteed (@noDerivative @guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector>, @in_guaranteed Tracked<Float>) -> @out Tracked<Float> // users: %20, %18 %18 = differentiable_function_extract [vjp] %17 : $@differentiable @callee_guaranteed (@noDerivative @guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector>, @in_guaranteed Tracked<Float>) -> @out Tracked<Float> // user: %19 %19 = copy_value %18 : $@callee_guaranteed (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector>, @in_guaranteed Tracked<Float>) -> (@out Tracked<Float>, @owned @callee_guaranteed (@in_guaranteed Tracked<Float>.TangentVector) -> @out Tracked<Float>.TangentVector) // users: %23, %22 end_borrow %17 : $@differentiable @callee_guaranteed (@noDerivative @guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector>, @in_guaranteed Tracked<Float>) -> @out Tracked<Float> // id: %20 destroy_value %15 : $@differentiable @callee_guaranteed (@noDerivative @guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector>, @in_guaranteed Tracked<Float>) -> @out Tracked<Float> // id: %21 %22 = apply %19(%2, %7, %3) : $@callee_guaranteed (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector>, @in_guaranteed Tracked<Float>) -> (@out Tracked<Float>, @owned @callee_guaranteed (@in_guaranteed Tracked<Float>.TangentVector) -> @out Tracked<Float>.TangentVector) // user: %29 destroy_value %19 : $@callee_guaranteed (@guaranteed @callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector>, @in_guaranteed Tracked<Float>) -> (@out Tracked<Float>, @owned @callee_guaranteed (@in_guaranteed Tracked<Float>.TangentVector) -> @out Tracked<Float>.TangentVector) // id: %23 %24 = tuple () destroy_value %7 : $@callee_guaranteed @substituted <τ_0_0> (@inout τ_0_0) -> () for <Tracked<Float>.TangentVector> // id: %25 dealloc_stack %3 : $*Tracked<Float> // id: %26 %27 = load [take] %2 : $*Tracked<Float> // user: %32 dealloc_stack %2 : $*Tracked<Float> // id: %28 %29 = struct $_AD__$s4main6calleryAA7TrackedCySfGAEF_bb0__PB__src_0_wrt_0 (%22 : $@callee_guaranteed (@in_guaranteed Tracked<Float>.TangentVector) -> @out Tracked<Float>.TangentVector) // user: %31 // function_ref AD__$s4main6calleryAA7TrackedCySfGAEF__pullback_src_0_wrt_0 %30 = function_ref @AD__$s4main6calleryAA7TrackedCySfGAEF__pullback_src_0_wrt_0 : $@convention(thin) (@guaranteed Tracked<Float>.TangentVector, @owned _AD__$s4main6calleryAA7TrackedCySfGAEF_bb0__PB__src_0_wrt_0) -> @owned Tracked<Float>.TangentVector // user: %31 %31 = partial_apply [callee_guaranteed] %30(%29) : $@convention(thin) (@guaranteed Tracked<Float>.TangentVector, @owned _AD__$s4main6calleryAA7TrackedCySfGAEF_bb0__PB__src_0_wrt_0) -> @owned Tracked<Float>.TangentVector %32 = tuple (%27 : $Tracked<Float>, undef : $@callee_guaranteed (@in_guaranteed Tracked<Float>.TangentVector) -> @out Tracked<Float>.TangentVector) // user: %33 return %32 : $(Tracked<Float>, @callee_guaranteed (@in_guaranteed Tracked<Float>.TangentVector) -> @out Tracked<Float>.TangentVector) // id: %33 } // end sil function 'AD__$s4main6calleryAA7TrackedCySfGAEF__vjp_src_0_wrt_0'
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Additional Detail from JIRA
md5: da968ebb3c198b9db21287b64ca43938
relates to:
-enable-library-evolution
Issue Description:
The text was updated successfully, but these errors were encountered: