Ryan Taylor
2011-Nov-17 01:43 UTC
[LLVMdev] Fwd: Problem getting LoopInfo inside non-LoopPass
Basically I have two separate passes (first is a loop pass) which are two different files and two different opts but I need to keep the data consistent (ie, I want the changes to show up the resulting .bc output file from the first (loop) pass so the second pass can use these new names. Currently, when I print out "BB->getName().str()" after the code below, I get the correct renaming but this doesn't show up in the output file. I'm calling the opt like this: opt -load Release/lib/OptFile.so -optTag -S <file.bc> -o file.ll I have also tried: opt -load Release/lib/OptFile.so -optTag <file.bc> -o file.bc Thanks. ---------- Forwarded message ---------- From: Ryan Taylor <ryta1203 at gmail.com> Date: Wed, Nov 16, 2011 at 5:23 PM Subject: Re: [LLVMdev] Problem getting LoopInfo inside non-LoopPass To: llvmdev at cs.uiuc.edu LLVMers, So, I'm trying to write a pass that changes the names of the basic blocks through the use of Value, so: Value *V = *BasicBlockPtr; const Twine Tname("new_name"); V->setName(Tname); But when I run the opt and look at the IR output nothing is changed? Not sure what I'm doing wrong. Thanks. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111116/9db6b588/attachment.html>
Nick Lewycky
2011-Nov-17 03:21 UTC
[LLVMdev] Fwd: Problem getting LoopInfo inside non-LoopPass
Never create a Twine as a local variable. V->setName(Twine("new_name")); should work fine, however. Note that Twine itself has an implicit constructor from const char *, so this code: V->setName("new_name"); should also work fine. Nick Ryan Taylor wrote:> Basically I have two separate passes (first is a loop pass) which are > two different files and two different opts but I need to keep the data > consistent (ie, I want the changes to show up the resulting .bc output > file from the first (loop) pass so the second pass can use these new > names. Currently, when I print out "BB->getName().str()" after the code > below, I get the correct renaming but this doesn't show up in the output > file. > > I'm calling the opt like this: > > opt -load Release/lib/OptFile.so -optTag -S <file.bc> -o file.ll > > I have also tried: > > opt -load Release/lib/OptFile.so -optTag <file.bc> -o file.bc > > Thanks. > > ---------- Forwarded message ---------- > From: *Ryan Taylor* <ryta1203 at gmail.com <mailto:ryta1203 at gmail.com>> > Date: Wed, Nov 16, 2011 at 5:23 PM > Subject: Re: [LLVMdev] Problem getting LoopInfo inside non-LoopPass > To: llvmdev at cs.uiuc.edu <mailto:llvmdev at cs.uiuc.edu> > > > LLVMers, > > So, I'm trying to write a pass that changes the names of the basic > blocks through the use of Value, so: > > Value *V = *BasicBlockPtr; > const Twine Tname("new_name"); > V->setName(Tname); > > But when I run the opt and look at the IR output nothing is changed? Not > sure what I'm doing wrong. > > Thanks. > > > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Ryan Taylor
2011-Nov-17 18:31 UTC
[LLVMdev] Fwd: Problem getting LoopInfo inside non-LoopPass
Nick, Thanks for this info, though this didn't help my problem at all. On Wed, Nov 16, 2011 at 7:21 PM, Nick Lewycky <nicholas at mxc.ca> wrote:> Never create a Twine as a local variable. > > V->setName(Twine("new_name")); > > should work fine, however. Note that Twine itself has an implicit > constructor from const char *, so this code: > > V->setName("new_name"); > > should also work fine. > > Nick > > Ryan Taylor wrote: > >> Basically I have two separate passes (first is a loop pass) which are >> two different files and two different opts but I need to keep the data >> consistent (ie, I want the changes to show up the resulting .bc output >> file from the first (loop) pass so the second pass can use these new >> names. Currently, when I print out "BB->getName().str()" after the code >> below, I get the correct renaming but this doesn't show up in the output >> file. >> >> I'm calling the opt like this: >> >> opt -load Release/lib/OptFile.so -optTag -S <file.bc> -o file.ll >> >> I have also tried: >> >> opt -load Release/lib/OptFile.so -optTag <file.bc> -o file.bc >> >> Thanks. >> >> ---------- Forwarded message ---------- >> From: *Ryan Taylor* <ryta1203 at gmail.com <mailto:ryta1203 at gmail.com>> >> Date: Wed, Nov 16, 2011 at 5:23 PM >> Subject: Re: [LLVMdev] Problem getting LoopInfo inside non-LoopPass >> To: llvmdev at cs.uiuc.edu <mailto:llvmdev at cs.uiuc.edu> >> >> >> LLVMers, >> >> So, I'm trying to write a pass that changes the names of the basic >> blocks through the use of Value, so: >> >> Value *V = *BasicBlockPtr; >> const Twine Tname("new_name"); >> V->setName(Tname); >> >> But when I run the opt and look at the IR output nothing is changed? Not >> sure what I'm doing wrong. >> >> Thanks. >> >> >> >> >> >> ______________________________**_________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/**mailman/listinfo/llvmdev<http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev> >> > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20111117/18903de6/attachment.html>
Apparently Analagous Threads
- [LLVMdev] Fwd: Problem getting LoopInfo inside non-LoopPass
- [LLVMdev] Fwd: Problem getting LoopInfo inside non-LoopPass
- [LLVMdev] Fwd: Problem getting LoopInfo inside non-LoopPass
- [LLVMdev] Problem getting LoopInfo inside non-LoopPass
- [LLVMdev] Problem getting LoopInfo inside non-LoopPass