summaryrefslogtreecommitdiff
path: root/src/passes/pass.cpp
diff options
context:
space:
mode:
authorWouter van Oortmerssen <aardappel@gmail.com>2020-10-13 08:57:34 -0700
committerGitHub <noreply@github.com>2020-10-13 08:57:34 -0700
commit639dc87a9ea6a633acca5b5ababfe81f8059cf5f (patch)
tree6621196ce738947883b228b224a066a2511f0d56 /src/passes/pass.cpp
parent947ad6e14d2de3d1f1ca14b8de3f3c341185ed96 (diff)
downloadbinaryen-639dc87a9ea6a633acca5b5ababfe81f8059cf5f.tar.gz
binaryen-639dc87a9ea6a633acca5b5ababfe81f8059cf5f.tar.bz2
binaryen-639dc87a9ea6a633acca5b5ababfe81f8059cf5f.zip
Added Initial Memory64Lowering pass (#3230)
This pass will convert a module with 64-bit loads and stores accessing a 64-bit memory to a regular 32-bit one. Pointers remain 64-bit but are truncated just before use.
Diffstat (limited to 'src/passes/pass.cpp')
-rw-r--r--src/passes/pass.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/passes/pass.cpp b/src/passes/pass.cpp
index b653269bf..d115b4533 100644
--- a/src/passes/pass.cpp
+++ b/src/passes/pass.cpp
@@ -190,6 +190,10 @@ void PassRegistry::registerPasses() {
registerPass("limit-segments",
"attempt to merge segments to fit within web limits",
createLimitSegmentsPass);
+ registerPass("memory64-lowering",
+ "lower loads and stores to a 64-bit memory to instead use a "
+ "32-bit one",
+ createMemory64LoweringPass);
registerPass("memory-packing",
"packs memory into separate segments, skipping zeros",
createMemoryPackingPass);