summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorDan Gohman <dan433584@gmail.com>2015-12-06 19:29:54 +0000
committerDan Gohman <dan433584@gmail.com>2015-12-06 19:29:54 +0000
commit753abf8de59c57ba92fec5456b153c0581ac9498 (patch)
tree0736daf4935d440c87a09d8437a77eac75834c14 /llvm
parent6226e6d993952d9e32b8401ee9aebf285608fbee (diff)
downloadbcm5719-llvm-753abf8de59c57ba92fec5456b153c0581ac9498.tar.gz
bcm5719-llvm-753abf8de59c57ba92fec5456b153c0581ac9498.zip
[WebAssembly] Add some more ideas to README.txt.
llvm-svn: 254880
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/WebAssembly/README.txt43
1 files changed, 43 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/README.txt b/llvm/lib/Target/WebAssembly/README.txt
index 78b3123cde8..97072ab1cc1 100644
--- a/llvm/lib/Target/WebAssembly/README.txt
+++ b/llvm/lib/Target/WebAssembly/README.txt
@@ -47,3 +47,46 @@ expression stack across the jump (sometimes). We should (a) model this, and
(b) extend the stackifier to utilize it.
//===---------------------------------------------------------------------===//
+
+The min/max operators aren't exactly a<b?a:b because of NaN and negative zero
+behavior. The ARM target has the same kind of min/max instructions and has
+implemented optimizations for them; we should do similar optimizations for
+WebAssembly.
+
+//===---------------------------------------------------------------------===//
+
+AArch64 runs SeparateConstOffsetFromGEPPass, followed by EarlyCSE and LICM.
+Would these be useful to run for WebAssembly too? Also, it has an option to
+run SimplifyCFG after running the AtomicExpand pass. Would this be useful for
+us too?
+
+//===---------------------------------------------------------------------===//
+
+When is it profitable to set isAsCheapAsAMove on instructions in WebAssembly?
+
+//===---------------------------------------------------------------------===//
+
+Register stackification uses the EXPR_STACK physical register to impose
+ordering dependencies on instructions with stack operands. This is pessimistic;
+we should consider alternate ways to model stack dependencies.
+
+//===---------------------------------------------------------------------===//
+
+Lots of things could be done in WebAssemblyTargetTransformInfo.cpp. Similarly,
+there are numerous optimization-related hooks that can be overridden in
+WebAssemblyTargetLowering.
+
+//===---------------------------------------------------------------------===//
+
+Instead of the OptimizeReturned pass, which should consider preserving the
+"returned" attribute through to MachineInstrs and extending the StoreResults
+pass to do this optimization on calls too. That would also let the
+WebAssemblyPeephole pass clean up dead defs for such calls, as it does for
+stores.
+
+//===---------------------------------------------------------------------===//
+
+Memset/memcpy/memmove should be marked with the "returned" attribute somehow,
+even when they are translated through intrinsics.
+
+//===---------------------------------------------------------------------===//
OpenPOWER on IntegriCloud