Attributes | Values |
---|
rdf:type
| |
rdfs:label
| - Global value numbering (en)
- 大域値番号付け (ja)
- Нумерация значений (ru)
|
rdfs:comment
| - 大域的値番号付け(英: Global value numbering, GVN)とは、静的単一代入中間表現に基づくコンパイラ最適化手法の一つである。 GVN は共通部分式除去 (CSE) によっても取り除くことができない冗長なコードを取り除くことができる。一方、CSE は GVN で除去できないコードを取り除くことができ、両者はいずれも現代的なコンパイラに採用されている。大域的値番号付けは、値と番号の関連付けをブロックの境界を越えて行うことができ、また関連付けのアルゴリズムを計算する方法が異なるという点でとは区別される。 大域的値番号付けは、値番号を変数や式に割り当てることで動作する。等価な変数や式には同じ値番号を割り当てる。例えば下記のコードでは、 w := 3x := 3y := x + 4z := w + 4 優秀な GVN のルーチンはw 、 x と y 、z にそれぞれ同じ値番号を割り当てる。たとえば、 の割り当てはこのブロックに関して最適な値と番号の対応関係である。この情報を用いることで、上のコードは下記のコードに安全に変換できる。 w := 3x := wy := w + 4z := y これ以降のコードしだいで、コピーの伝播によって x および z に対する割り当てを除去できる可能性がある。 a := c × de := cf := e × d (ja)
- Нумерация значений (англ. Value Numbering) — один из видов , применяемый оптимизирующим компилятором с целью обнаружения избыточных вычислений в коде программы. Результатами анализа могут воспользоваться оптимизации: , , удаление общих подвыражений, оптимизация условий (англ. If Optimization), . Анализ разбивает множество всех рассматриваемых операций, вырабатывающих какой-либо результат (число или предикат), на подмножества операций, в каждом из которых все операции вырабатывают одинаковый результат не зависимо от ввода. Такие подмножества (а так же, иногда, номера этих подмножеств) называют классами конгруэнтности или классами эквивалентности. Классы конгруэнтности пронумерованы, номер класса конгруэнтности называют номером значения. Таким образом, задачу нумерации значений можно сфор (ru)
|
Wikipage page ID
| |
Wikipage revision ID
| |
Link from a Wikipage to another Wikipage
| |
Wikipage redirect
| |
sameAs
| |
dbp:wikiPageUsesTemplate
| |
has abstract
| - 大域的値番号付け(英: Global value numbering, GVN)とは、静的単一代入中間表現に基づくコンパイラ最適化手法の一つである。 GVN は共通部分式除去 (CSE) によっても取り除くことができない冗長なコードを取り除くことができる。一方、CSE は GVN で除去できないコードを取り除くことができ、両者はいずれも現代的なコンパイラに採用されている。大域的値番号付けは、値と番号の関連付けをブロックの境界を越えて行うことができ、また関連付けのアルゴリズムを計算する方法が異なるという点でとは区別される。 大域的値番号付けは、値番号を変数や式に割り当てることで動作する。等価な変数や式には同じ値番号を割り当てる。例えば下記のコードでは、 w := 3x := 3y := x + 4z := w + 4 優秀な GVN のルーチンはw 、 x と y 、z にそれぞれ同じ値番号を割り当てる。たとえば、 の割り当てはこのブロックに関して最適な値と番号の対応関係である。この情報を用いることで、上のコードは下記のコードに安全に変換できる。 w := 3x := wy := w + 4z := y これ以降のコードしだいで、コピーの伝播によって x および z に対する割り当てを除去できる可能性がある。 GVN が CSE より強力なのは、CSE は字句的に同一な式をマッチさせるのに対して GVN はその背後の等価性を特定しようとする点である。例えば、 a := c × de := cf := e × d というコードで、CSE は f に割り当てられた再計算のコードを除去しないが、GVN はごく初歩的なアルゴリズムでもこれを発見し、冗長性を除去することができる。 GVN を実行するためには、変数名と値名の間に偽の対応関係が作られないよう、静的単一代入形式が必要である。 (ja)
- Нумерация значений (англ. Value Numbering) — один из видов , применяемый оптимизирующим компилятором с целью обнаружения избыточных вычислений в коде программы. Результатами анализа могут воспользоваться оптимизации: , , удаление общих подвыражений, оптимизация условий (англ. If Optimization), . Анализ разбивает множество всех рассматриваемых операций, вырабатывающих какой-либо результат (число или предикат), на подмножества операций, в каждом из которых все операции вырабатывают одинаковый результат не зависимо от ввода. Такие подмножества (а так же, иногда, номера этих подмножеств) называют классами конгруэнтности или классами эквивалентности. Классы конгруэнтности пронумерованы, номер класса конгруэнтности называют номером значения. Таким образом, задачу нумерации значений можно сформулировать следующим образом: присвоить уникальный номер каждому значению, вырабатываемому внутри рассматриваемого участка программы. Для осуществления нумерации значений может потребоваться построенный Def-Use-граф или SSA-форма. Нумерация значений может быть локальной (в пределах одного базового блока), глобальной (в пределах CFG-графа одной процедуры) и межпроцедурной. (ru)
|
prov:wasDerivedFrom
| |
page length (characters) of wiki page
| |
foaf:isPrimaryTopicOf
| |
is Link from a Wikipage to another Wikipage
of | |
is Wikipage disambiguates
of | |
is foaf:primaryTopic
of | |