[LLVMdev] Steps to addDestination
rasha.sala7 at gmail.com
Wed Jul 24 15:01:47 PDT 2013
Value* Address= BlockAddress::get (*rit);
IndirectBrInst *IBI = IndirectBrInst::Create(Address,
I tried this code , but the needed destination wasn't added.
2- About LLVM backend
$ llc -march=cpp example_file.ll -o
I think it will be so helpful for my work
On 24 July 2013 08:37, Tim Northover <t.p.northover at gmail.com> wrote:
> Hi Rasha,
> On Wed, Jul 24, 2013 at 12:28 AM, Rasha Omar <rasha.sala7 at gmail.com>
> > 1- I need the first example.
> Oh good.
> > 2- I set the Address uninitialized according to the documentation
> > " Setting the name on the Value automatically updates the module's symbol
> > table" from Value.h source code
> That's referring to a string name, and is only really important for
> clarity and debugging the IR being produced. It means you could start
> out with something like
> %1 = add i32 %lhs, %rhs
> ret i32 %1
> (where the %1 is just an automatically incrementing label provided by
> LLVM) then call MyAddInst.setName("theSum") and LLVM would
> automatically convert this to:
> %theSum = add i32 %lhs, %rhs
> ret i32 %theSum
> You still have to have an initialised, valid Value pointer to be able
> to do this.
> > 3- I'm not sure about "select" instruction, you mean that the address is
> > new destination (basic block)that will be added
> The address will be, directly or indirectly, the result of a
> "BlockAddress::get(...)" call. Perhaps directly (though that would be
> rather useless since then you'd just as well create a direct branch to
> that block, perhaps via a "select" as in my code, or via load/store.
> Perhaps even passed into the function as a parameter in a rather
> bizarre set of circumstances.
> Do you know about the Cpp backend, by the way? It can be very useful
> for working out just what you have to write to emit certain LLVM IR.
> What you do is write your own .ll file by hand, having the features
> you want, then run
> $ llc -march=cpp example_file.ll -o -
> LLVM will produce some C++ code that generates the module you wrote.
> It's not necessarily in the best of styles, but shows you roughly
> which calls you should be making.
*Rasha Salah Omar
Msc Student at E-JUST
Demonestrator at Faculty of Computers and Informatics
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev