summaryrefslogtreecommitdiffstats
path: root/clang/lib/CodeGen/README.txt
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-02-20 19:34:45 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-02-20 19:34:45 +0000
commit2f3a3d9f7af82e8b6588f7a9afa71e7357bae21e (patch)
tree0159438d902a7cefe1b4a6ab7a54b3555744cb46 /clang/lib/CodeGen/README.txt
parent27032de34b0d57f00f0ade9f83b51fa0461a6471 (diff)
downloadbcm5719-llvm-2f3a3d9f7af82e8b6588f7a9afa71e7357bae21e.tar.gz
bcm5719-llvm-2f3a3d9f7af82e8b6588f7a9afa71e7357bae21e.zip
Add some IRgen improvement notes.
llvm-svn: 65146
Diffstat (limited to 'clang/lib/CodeGen/README.txt')
-rw-r--r--clang/lib/CodeGen/README.txt17
1 files changed, 17 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/README.txt b/clang/lib/CodeGen/README.txt
index 56069dd99d2..ea2cf8cf0ee 100644
--- a/clang/lib/CodeGen/README.txt
+++ b/clang/lib/CodeGen/README.txt
@@ -30,3 +30,20 @@ block.
//===---------------------------------------------------------------------===//
+We should try and avoid generating basic blocks which only contain
+jumps. At -O0, this penalizes us all the way from IRgen (malloc &
+instruction overhead), all the way down through code generation and
+assembly time.
+
+On 176.gcc:expr.ll, it looks like over 12% of basic blocks are just
+direct branches.
+
+//===---------------------------------------------------------------------===//
+
+There are some more places where we could avoid generating unreachable code. For
+example:
+ void f0(int a) { abort(); if (a) printf("hi"); }
+still generates a call to printf. This doesn't occur much in real
+code, but would still be nice to clean up.
+
+//===---------------------------------------------------------------------===//
OpenPOWER on IntegriCloud