问题标签 [ssa]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
176 浏览

optimization - 功能程序是否已经采用 SSA 形式?

最近,我一直想创建一个小型(教育性的)功能优化编译器。对于优化部分,我想使用 SSA。问题是(据我所知,大多数)函数式编程语言都有不可变的变量(默认情况下),所以每个变量只分配一次,就像在 SSA 中一样。需要SSA吗?功能程序(例如在 Haskell 中)是否已经采用 SSA 形式?

0 投票
1 回答
374 浏览

v8 - V8 的 TurboFan 的效果和控制边缘有什么区别?

我阅读了许多博客文章、文章、演示文稿和视频,甚至检查了 V8 的源代码,包括字节码生成器、节点海图生成器和优化阶段,但仍然找不到答案。

V8 的优化编译器 TurboFan 使用“节点海”类型的 IR。我发现的所有关于它的学术文章都说它基本上是一个 CFG 与数据流图的结合,因此有两种类型的边来连接节点:数据边和控制边。基本上,如果你只取数据边,你会形成一个数据流图,而如果你选择控制边,你会得到一个控制流图。

然而,TurboFan 还有一种边缘类型:“效果边缘”(和效果 phis)。我想这就是这张幻灯片的意思,它说这不是节点的“海洋”而是节点的“汤”,因为我在其他任何地方都找不到这个术语。据我了解,效果边缘帮助编译器保持语句/表达式的结构,如果重新排序将产生可见的副作用。每个人都使用的示例是o.f = o.f + 1:加载必须在存储之前(或者我们将读取新值),并且添加也必须在存储之前(否则我们将存储旧值并无用地增加结果)。

但我无法理解:这不是控制边缘的目标吗?通过搜索代码我可以看到几乎每个节点都有一个效果边一个控制边。虽然它们的用途并不明显。据我了解,在节点海中,您使用控制边来约束评估顺序。那么为什么我们需要效果和控制边缘呢?可能我错过了一些基本的东西,但我找不到它。

TL;DR:效果边缘和 EffectPhi 节点的用途是什么,以及它们与控制边缘有何不同。

太谢谢了。

0 投票
1 回答
104 浏览

go - 如何找出golang SSA函数返回类型

你好,我是静态分析的新手,尝试使用 golang 的 SSA 包来分析我们的代码。例如我想打印包中的所有功能信息,示例代码是:

然后我发现我无法访问此函数的返回值类型(参考文档https://pkg.go.dev/golang.org/x/tools/go/ssa#Function)有什么办法使用ssa工具或其他工具分析函数返回值的类型?

0 投票
0 回答
52 浏览

compiler-construction - 带有块参数的 SSA 表单的名称

现在大多数命令式语言的优化编译器都使用静态单一赋值形式,其中每个变量只分配在一个地方。

传统上,SSA 使用 phi 节点来协调这与可以在循环中重复分配变量的要求。然而,最近已经完成了一些工作,而不是允许基本块具有参数。这些在表达能力上是形式上等价的;块参数使某些事情比 phi 节点更容易,但代价是使其他事情变得更困难。

除了使用块参数而不是 phi 节点之外,什么是静态单一分配,称为?它仍然称为 SSA,还是严格意味着使用 phi 节点?如果是后者,块参数变体的合适名称是什么?

0 投票
1 回答
162 浏览

graph - 如何建立控制流图的优势边界?

我想了解为节点构建 Ф 函数的通用原则。我在允许构建 Ф 函数的图中阅读了“优势边界 (DF) ”关系。这是一个简单代码片段的控制流图示例: 控制流图

让我们考虑 DF 的定义:

好的,这是我对这个定义的理解。让我们考虑一下:DF(B1) = { B3, B5, B6, B7 } 因为:

这是对DF的正确理解吗?请给我更详细的解释好吗?

0 投票
0 回答
11 浏览

python - Salp Swarm Algorithm SSA 用于使用 python 进行特征选择

任何人都可以帮助我提供 SSA 的源代码,使用 python 进行特征选择?它的适当环境是什么?