zoukankan      html  css  js  c++  java
  • What's Dead & Exploded in Swift's exception stack?

    The Swift compiler marks function arguments for a number of reasons, mostly related to internal optimizations. For your question, we'll focus on the mangler, as that's what's contributing to your pretty stack trace, and the Node Printer. As of the time of this post, the function specialization mangler has 6 marks it can apply to an argument:

    • Dead

      The argument is unused in the function body and can be removed in a dead argument elimination pass.

    • Closure

      The argument is a closure and may require further mangling/demangling.

    • Constant

      The argument is a constant.

    • Owned to Guaranteed

      A caller-owned argument transfers ownership to the callee. The argument thus has a strong reference associated with it [the caller] and is guaranteed to live through the call, so the compiler allows the caller to elide the transfer and instead aggregate retains itself.

    • SROA

      Scalar Replacement of Aggregates pass should optimize this argument.

    • In Out To Value

      The parameter was marked inout but the callee doesn't actually mutate it.

    The AST Node Printer adds one more mark

    • Exploded

      The value comes with an explosion schema that has been realized when the call was made.

    For all intents and purposes we only care about DeadOwned to Guaranteed, and Exploded

    The only one that may still seem mystifying is Exploded. An Explosion is an optimization construct the Swift compiler uses to determine a strategy to unpack values from small structs and enums into registers. Thus, when the Node Printer says a value is Exploded, what it means it has already unpacked the value into registers before the call.

    https://stackoverflow.com/questions/30764669/whats-dead-exploded-in-swifts-exception-stack

  • 相关阅读:
    Win7最高权限问题
    UNEDI/FACT基础知识
    关于display
    sql server 复制需要有实际的服务器名称才能连接到服务器
    ANSI ASC X12标准学习指南
    Eclipse插件的安装方法
    PB DataWindow的38个技巧
    Java API 帮助文档中英文版下载
    用快捷方式在Windows2008下安装新字体的技巧
    sqlserver 性能分析报表
  • 原文地址:https://www.cnblogs.com/feng9exe/p/9046625.html
Copyright © 2011-2022 走看看