[PATCH] D50342: Changed how LLVM IR was generated to increase vectorization

Matt Morehouse via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 6 11:19:41 PDT 2018


morehouse added inline comments.


================
Comment at: clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp:125
 std::ostream &operator<<(std::ostream &os, const LoopFunction &x) {
-  return os << "define void @foo(i32* %a, i32* %b, i32* noalias %c, i64 %s) {\n"
-            << "%i = alloca i64\n"
-            << "store i64 0, i64* %i\n"
-            << "br label %loop\n\n"
-            << "loop:\n"
-            << "%ct = load i64, i64* %i\n"
-            << "%comp = icmp eq i64 %ct, %s\n"
-            << "br i1 %comp, label %endloop, label %body\n\n"
-            << "body:\n"
+  return os << "target triple = \"x86_64-pc-linux-gnu\"\n"
+            << "define void @foo(i32*, i32*, i32*, i64) {\n"
----------------
What does `pc` mean in this triple?  I'm used to seeing `x86_64-unknown-linux-gnu`.


================
Comment at: clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp:126
+  return os << "target triple = \"x86_64-pc-linux-gnu\"\n"
+            << "define void @foo(i32*, i32*, i32*, i64) {\n"
+            << "%5 = icmp sgt i64 %3, 0\n"
----------------
Does removing the variable names really make this easier to vectorize?


================
Comment at: clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp:129
+            << "br i1 %5, label %6, label %8\n"
+            << "; <label>:6:\n"
+            << "br label %9\n"
----------------
Does removing branch names really make this easier to vectorize?


Repository:
  rC Clang

https://reviews.llvm.org/D50342





More information about the llvm-commits mailing list