Skip to content
New issue

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

[SR-12057] [AutoDiff] IRGen mangling crasher #54493

Open
rxwei opened this issue Jan 21, 2020 · 0 comments
Open

[SR-12057] [AutoDiff] IRGen mangling crasher #54493

rxwei opened this issue Jan 21, 2020 · 0 comments
Labels
AutoDiff bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself

Comments

@rxwei
Copy link
Member

rxwei commented Jan 21, 2020

Previous ID SR-12057
Radar None
Original Reporter @rxwei
Type Bug
Additional Detail from JIRA
Votes 0
Component/s Compiler
Labels Bug
Assignee None
Priority Medium

md5: 80e412b361dfc7ffc28d78e09902691e

Issue Description:

extension Array where Element: Differentiable {
func derivativeOfDifferentiableReduce<Result: Differentiable>(
    _ initialResult: Result,
    _ nextPartialResult: @differentiable (Result, Element) -> Result
) -> (
    value: Result,
    differential: (Array.TangentVector, Result.TangentVector) -> Result.TangentVector
) {
    var differentials: [(Result.TangentVector, Element.TangentVector) -> Result.TangentVector] = []
    let count = self.count
    differentials.reserveCapacity(count)
    var result = initialResult
    for element in self {
        let (y, df) = Swift.valueWithDifferential(at: result, element, in: nextPartialResult)
        result = y
        differentials.append(df)
    }
    return (value: result, differential: { dSelf, dInitial in
        zip(dSelf.base, differentials).reduce(dInitial) { dResult, next in
            let (dElement, df) = next
            return df(dResult, dElement)
        }
    })
}
}
CompileSwift normal x86_64 /Users/rxwei/Development/Swift/Incremental/Sources/Incremental/main.swift (in target 'Incremental' from project 'Incremental')
    cd /Users/rxwei/Development/Swift/Incremental
    /Library/Developer/Toolchains/swift-tensorflow-LOCAL-2020-01-16-a.xctoolchain/usr/bin/swift -frontend -c -primary-file /Users/rxwei/Development/Swift/Incremental/Sources/Incremental/main.swift -emit-module-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main\~partial.swiftmodule -emit-module-doc-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main\~partial.swiftdoc -emit-module-source-info-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main\~partial.swiftsourceinfo -serialize-diagnostics-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main.dia -emit-dependencies-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main.d -emit-reference-dependencies-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main.swiftdeps -target x86_64-apple-macos10.10 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -I /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Products/Debug -F /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Products/Debug -F /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -enable-testing -g -module-cache-path /Users/rxwei/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 5 -enforce-exclusivity=checked -Onone -enable-experimental-forward-mode-differentiation -D SWIFT_PACKAGE -D DEBUG -D Xcode -serialize-debugging-options -enable-anonymous-context-mangled-names -Xllvm -enable-experimental-cross-file-derivative-registration -Xcc -I/Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Products/Debug/include -Xcc -I/Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/DerivedSources-normal/x86_64 -Xcc -I/Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/DerivedSources/x86_64 -Xcc -I/Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG=1 -Xcc -working-directory/Users/rxwei/Development/Swift/Incremental -module-name Incremental -o /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main.o -index-store-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Index/DataStore -index-system-modules

Remangling failed:
original     = $s13TangentVectors14DifferentiablePQz_AaCQyd__AaCQzAEIegnnr_tD
remangled    = $s13TangentVectors14DifferentiablePQz_AaCQyd__AdEIegnnr_tD
Stack dump:
0.  Program arguments: /Library/Developer/Toolchains/swift-tensorflow-LOCAL-2020-01-16-a.xctoolchain/usr/bin/swift -frontend -c -primary-file /Users/rxwei/Development/Swift/Incremental/Sources/Incremental/main.swift -emit-module-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main~partial.swiftmodule -emit-module-doc-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main~partial.swiftdoc -emit-module-source-info-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main~partial.swiftsourceinfo -serialize-diagnostics-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main.dia -emit-dependencies-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main.d -emit-reference-dependencies-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main.swiftdeps -target x86_64-apple-macos10.10 -enable-objc-interop -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -I /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Products/Debug -F /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Products/Debug -F /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -enable-testing -g -module-cache-path /Users/rxwei/Library/Developer/Xcode/DerivedData/ModuleCache.noindex -swift-version 5 -enforce-exclusivity=checked -Onone -enable-experimental-forward-mode-differentiation -D SWIFT_PACKAGE -D DEBUG -D Xcode -serialize-debugging-options -enable-anonymous-context-mangled-names -Xllvm -enable-experimental-cross-file-derivative-registration -Xcc -I/Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Products/Debug/include -Xcc -I/Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/DerivedSources-normal/x86_64 -Xcc -I/Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/DerivedSources/x86_64 -Xcc -I/Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/DerivedSources -Xcc -DSWIFT_PACKAGE -Xcc -DDEBUG=1 -Xcc -working-directory/Users/rxwei/Development/Swift/Incremental -module-name Incremental -o /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Build/Intermediates.noindex/Incremental.build/Debug/Incremental.build/Objects-normal/x86_64/main.o -index-store-path /Users/rxwei/Library/Developer/Xcode/DerivedData/Incremental-dnoshtbbaqrzhbfdaqfgsrdzjvwo/Index/DataStore -index-system-modules 
1.  Swift version 5.2-dev (Swift ccfceeadd5)
2.  While emitting IR SIL function "@$sSa11Incrementals14DifferentiableRzlE012derivativeOfB6Reduceyqd__5value_13TangentVectorQyd__Sa0B4ViewVyAEQz_G_AFtc12differentialtqd___qd__qd___xtXFtsABRd__lFAfJ_AFtcfU_A2F_AI_A2F_AItcttXEfU_".
 for expression at [/Users/rxwei/Development/Swift/Incremental/Sources/Incremental/main.swift:39:57 - line:42:9] RangeText="{ dResult, next in
            let (dElement, df) = next
            return df(dResult, dElement)
        "
3.  While mangling type for debugger type '(Element.TangentVector, @callee_guaranteed (@in_guaranteed τ_1_0.TangentVector, @in_guaranteed τ_0_0.TangentVector) -> @out τ_1_0.TangentVector)'
0  swift                    0x0000000111d83f35 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 37
1  swift                    0x0000000111d83145 llvm::sys::RunSignalHandlers() + 85
2  swift                    0x0000000111d84526 SignalHandler(int) + 278
3  libsystem_platform.dylib 0x00007fff71fad42d _sigtramp + 29
4  libsystem_platform.dylib 0x000000000000003e _sigtramp + 2382703662
5  libsystem_c.dylib        0x00007fff71e82a1c abort + 120
6  swift                    0x00000001121fb863 swift::Mangle::Mangler::verify(llvm::StringRef) (.cold.3) + 99
7  swift                    0x000000010f03890c swift::Mangle::Mangler::verify(llvm::StringRef) + 796
8  swift                    0x000000010f0385d3 swift::Mangle::Mangler::finalize() + 211
9  swift                    0x000000010ee64347 swift::Mangle::ASTMangler::mangleTypeForDebugger(swift::Type, swift::DeclContext const*) + 263
10 swift                    0x000000010e1491a5 (anonymous namespace)::IRGenDebugInfoImpl::getOrCreateType(swift::irgen::DebugTypeInfo) + 1973
11 swift                    0x000000010e14393a (anonymous namespace)::IRGenDebugInfoImpl::emitVariableDeclaration(swift::irgen::IRBuilder&, llvm::ArrayRef<llvm::Value*>, swift::irgen::DebugTypeInfo, swift::SILDebugScope const*, swift::ValueDecl*, swift::SILDebugVariable, swift::irgen::IndirectionKind, swift::irgen::ArtificialKind) + 410
12 swift                    0x000000010e17869f void (anonymous namespace)::IRGenSILFunction::emitDebugVariableDeclaration<llvm::Value*>(llvm::Value*, swift::irgen::DebugTypeInfo, swift::SILType, swift::SILDebugScope const*, swift::VarDecl*, swift::SILDebugVariable, swift::irgen::IndirectionKind) + 191
13 swift                    0x000000010e174459 swift::SILInstructionVisitor<(anonymous namespace)::IRGenSILFunction, void>::visit(swift::SILInstruction*) + 57897
14 swift                    0x000000010e162f4f (anonymous namespace)::IRGenSILFunction::emitSILFunction() + 6927
15 swift                    0x000000010e160f64 swift::irgen::IRGenModule::emitSILFunction(swift::SILFunction*) + 1444
16 swift                    0x000000010e0799ab swift::irgen::IRGenerator::emitLazyDefinitions() + 1243
17 swift                    0x000000010e13c8e5 performIRGeneration(swift::IRGenOptions&, swift::ModuleDecl*, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule> >, llvm::StringRef, swift::PrimarySpecificPaths const&, llvm::LLVMContext&, swift::SourceFile*, llvm::GlobalVariable**, llvm::StringSet<llvm::MallocAllocator>*) + 1365
18 swift                    0x000000010e13cc8b swift::performIRGeneration(swift::IRGenOptions&, swift::SourceFile&, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule> >, llvm::StringRef, swift::PrimarySpecificPaths const&, llvm::LLVMContext&, llvm::GlobalVariable**, llvm::StringSet<llvm::MallocAllocator>*) + 91
19 swift                    0x000000010dfeb18e performCompileStepsPostSILGen(swift::CompilerInstance&, swift::CompilerInvocation&, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule> >, bool, llvm::PointerUnion<swift::ModuleDecl*, swift::SourceFile*>, swift::PrimarySpecificPaths const&, bool, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 3390
20 swift                    0x000000010dfdf5d9 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) + 8521
21 swift                    0x000000010dfdc503 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 5139
22 swift                    0x000000010df783de main + 734
23 libdyld.dylib            0x00007fff71db47fd start + 1
error: Abort trap: 6 (in target 'Incremental' from project 'Incremental')
@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
AutoDiff bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself
Projects
None yet
Development

No branches or pull requests

2 participants