summaryrefslogtreecommitdiff
path: root/chapter24b
diff options
context:
space:
mode:
Diffstat (limited to 'chapter24b')
-rw-r--r--chapter24b/README.ja.md8
-rw-r--r--chapter24b/README.md16
-rw-r--r--chapter24b/pom.xml2
3 files changed, 13 insertions, 13 deletions
diff --git a/chapter24b/README.ja.md b/chapter24b/README.ja.md
index e9e57c6d..108732e7 100644
--- a/chapter24b/README.ja.md
+++ b/chapter24b/README.ja.md
@@ -1,9 +1,9 @@
-# 関数間の SCCP
+# 第24b章: 関数間の SCCP
[English](README.md) | 日本語
-[前: 関数内の SCCP](../chapter-sccp/README.ja.md) |
-[次: 型が確定する前の SSA 構築](../chapter-incomplete-types/README.ja.md) |
+[Previous: Chapter 24a](../chapter24a/README.ja.md) |
+[Next: Chapter 25](../chapter25/README.ja.md)
[章の分割案](../docs/chapter-split.md)
前の章では関数ごとに保守的な呼び出し境界で解析しました。この章では
@@ -31,4 +31,4 @@
このディレクトリで最初に `make lib`、続いて `make tests` を実行してください。
リポジトリのルートでは
-`make tests CHAPTERS=chapter-interprocedural-sccp` を使えます。
+`make tests CHAPTERS=chapter24b` を使えます。
diff --git a/chapter24b/README.md b/chapter24b/README.md
index d17f937c..41692f3d 100644
--- a/chapter24b/README.md
+++ b/chapter24b/README.md
@@ -1,9 +1,9 @@
-# SCCP Across Functions
+# Chapter 24b: SCCP Across Functions
English | [日本語](README.ja.md)
-[Previous: SCCP Within a Function](../chapter-sccp/README.md) |
-[Next: SSA Before Types Are Known](../chapter-incomplete-types/README.md)
+[Previous: Chapter 24a](../chapter24a/README.md) |
+[Next: Chapter 25](../chapter25/README.md)
The previous chapter runs SCCP within each function, and assumes very
conservative typing across calls. This chapter lets the same worklist
@@ -43,7 +43,7 @@ e.g. not-null) on all calling paths.
## Recursion is a loop in disguise
We use *widening* of integer ranges at loop heads, as described in the
-[previous chapter](../chapter-sccp/README.md#convergence-and-calls).
+[previous chapter](../chapter24a/README.md#convergence-and-calls).
This allows us to have a sharper notion of integers over `BOTTOM` without also
allowing the range to grow one integer at a time. The same issue arises during
recursive calls: an argument can flow from a Parm through arithmetic into a
@@ -79,9 +79,9 @@ analysis is introduced later to improve this.
Run `make lib` once for Java test dependencies, then `make tests` in this
directory. From the repository root, use
-`make tests CHAPTERS=chapter-interprocedural-sccp`.
+`make tests CHAPTERS=chapter24b`.
The inherited tests retain their historical class names.
-The [grammar](docs/24-grammar.md) includes chained comparisons inherited from
-the extraction baseline. Their planned teaching home is with short-circuit
-expressions. Allocator tuning is covered separately by the planned appendix.
+The [grammar](docs/24-grammar.md) includes chained comparisons introduced in
+Chapter 23 beside short-circuit expressions. Allocator tuning is covered in
+the [appendix](../docs/appendices/optimizer-tuning.md).
diff --git a/chapter24b/pom.xml b/chapter24b/pom.xml
index a1d179df..7688ce5b 100644
--- a/chapter24b/pom.xml
+++ b/chapter24b/pom.xml
@@ -8,7 +8,7 @@
<artifactId>simple</artifactId>
<version>1.0</version>
</parent>
- <artifactId>chapter-interprocedural-sccp</artifactId>
+ <artifactId>chapter24b</artifactId>
<packaging>jar</packaging>
<name>SCCP Across Functions</name>
<properties>