diff options
author | Emmett Neyman <eneyman@google.com> | 2018-08-09 21:59:01 +0000 |
---|---|---|
committer | Emmett Neyman <eneyman@google.com> | 2018-08-09 21:59:01 +0000 |
commit | 9a2dafaebbd4adb3af3eae30693d3eb62a1a2503 (patch) | |
tree | 682e03b509ece6b5d2d1e2b5018d131ed2ae4040 /tools/clang-fuzzer | |
parent | 697929dc84c170bed1fdd2d59a220451ded9e190 (diff) |
Added LLVM metadata to generated IR to increase vectorization width
Summary: Edited `loop_proto_to_llvm` to emit metadata at the end of the generated IR. This metadata will increase the vector width when the IR is optimized.
Reviewers: morehouse, kcc
Reviewed By: morehouse
Subscribers: cfe-commits, llvm-commits
Differential Revision: https://reviews.llvm.org/D50530
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@339392 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/clang-fuzzer')
-rw-r--r-- | tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp b/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp index 919b794e1b..4b9abb4170 100644 --- a/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp +++ b/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp @@ -15,6 +15,7 @@ #include "loop_proto_to_llvm.h" #include "cxx_loop_proto.pb.h" +#include "../handle-llvm/input_arrays.h" // The following is needed to convert protos in human-readable form #include <google/protobuf/text_format.h> @@ -135,7 +136,11 @@ std::ostream &operator<<(std::ostream &os, const LoopFunction &x) { << x.statements() << "%ctnew = add i64 %ct, 1\n" << "%j = icmp eq i64 %ctnew, %s\n" - << "br i1 %j, label %end, label %loop\n}\n"; + << "br i1 %j, label %end, label %loop, !llvm.loop !0\n}\n" + << "!0 = distinct !{!0, !1, !2}\n" + << "!1 = !{!\"llvm.loop.vectorize.enable\", i1 true}\n" + << "!2 = !{!\"llvm.loop.vectorize.width\", i32 " << kArraySize + << "}\n"; } // --------------------------------- |