emmettneyman created this revision. emmettneyman added reviewers: morehouse, kcc. Herald added a subscriber: cfe-commits.
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. Repository: rC Clang https://reviews.llvm.org/D50530 Files: clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.h Index: clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.h =================================================================== --- clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.h +++ clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.h @@ -15,6 +15,8 @@ #include <cstddef> #include <string> +#include "../handle-llvm/input_arrays.h" + namespace clang_fuzzer { class LoopFunction; Index: clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp =================================================================== --- clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp +++ clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp @@ -135,7 +135,11 @@ << 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"; } // ---------------------------------
Index: clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.h =================================================================== --- clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.h +++ clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.h @@ -15,6 +15,8 @@ #include <cstddef> #include <string> +#include "../handle-llvm/input_arrays.h" + namespace clang_fuzzer { class LoopFunction; Index: clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp =================================================================== --- clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp +++ clang/tools/clang-fuzzer/proto-to-llvm/loop_proto_to_llvm.cpp @@ -135,7 +135,11 @@ << 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"; } // ---------------------------------
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits