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>
Seemingly Similar 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