diff options
author | Johannes Doerfert <jdoerfert@codeaurora.org> | 2014-07-24 23:48:02 +0000 |
---|---|---|
committer | Johannes Doerfert <jdoerfert@codeaurora.org> | 2014-07-24 23:48:02 +0000 |
commit | 79fc23f26b5136044d6dd34f7ecd96e6840b4e6d (patch) | |
tree | b9972f9636cf6e0e987704ddc763e3a3615979ea /polly/lib/Support/GICHelper.cpp | |
parent | 08e1bbd6457541ee2983eacbb588b74acd62a897 (diff) | |
download | bcm5719-llvm-79fc23f26b5136044d6dd34f7ecd96e6840b4e6d.tar.gz bcm5719-llvm-79fc23f26b5136044d6dd34f7ecd96e6840b4e6d.zip |
Make getIslCompatibleName globaly available
llvm-svn: 213907
Diffstat (limited to 'polly/lib/Support/GICHelper.cpp')
-rw-r--r-- | polly/lib/Support/GICHelper.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/polly/lib/Support/GICHelper.cpp b/polly/lib/Support/GICHelper.cpp index 530ce91371f..3ad4e501b71 100644 --- a/polly/lib/Support/GICHelper.cpp +++ b/polly/lib/Support/GICHelper.cpp @@ -11,6 +11,7 @@ // //===----------------------------------------------------------------------===// #include "polly/Support/GICHelper.h" +#include "llvm/IR/Value.h" #include "isl/aff.h" #include "isl/map.h" #include "isl/schedule.h" @@ -124,3 +125,30 @@ std::string polly::stringFromIslObj(__isl_keep isl_pw_aff *pwaff) { return stringFromIslObjInternal(pwaff, isl_pw_aff_get_ctx, isl_printer_print_pw_aff); } + +static void replace(std::string &str, const std::string &find, + const std::string &replace) { + size_t pos = 0; + while ((pos = str.find(find, pos)) != std::string::npos) { + str.replace(pos, find.length(), replace); + pos += replace.length(); + } +} + +static void makeIslCompatible(std::string &str) { + replace(str, ".", "_"); + replace(str, "\"", "_"); +} + +std::string polly::getIslCompatibleName(std::string Prefix, const Value *Val, + std::string Suffix) { + std::string ValStr; + raw_string_ostream OS(ValStr); + Val->printAsOperand(OS, false); + ValStr = OS.str(); + // Remove the leading % + ValStr.erase(0, 1); + ValStr = Prefix + ValStr + Suffix; + makeIslCompatible(ValStr); + return ValStr; +} |