Displaying 12 results from an estimated 12 matches similar to: "[LLVMdev] Question about GVN"
2013 Jul 31
1
[LLVMdev] Problem to remove successors
Hi All,
I need to remove successors from every basic block to insert new ones
I tried this code, but it doesn't work
void RemoveSuccessor(TerminatorInst *TI, unsigned SuccNum) {
assert(SuccNum < TI->getNumSuccessors() &&
"Trying to remove a nonexistant successor!");
// If our old successor block contains any PHI nodes, remove the entry
in the
//
2013 Jul 23
2
[LLVMdev] Steps to addDestination
Hi,
I need to addDestination to some basic blocks
I used the following code
Value* Address;
IndirectBrInst *IBI = IndirectBrInst::Create(Address,
Result.size(),i->getTerminator() );
IBI->addDestination(i);
The following error was issued
void llvm::IndirectBrInst::init(llvm::Value *, unsigned int): Assertion
`Address && Address->getType()->isPointerTy() &&
2013 Jul 24
2
[LLVMdev] Steps to addDestination
Hi
1-
for(rit=Result.begin();rit!=Result.end();++rit)
{
Value* Address= BlockAddress::get (*rit);
IndirectBrInst *IBI = IndirectBrInst::Create(Address,
Result.size(),i->getTerminator() );
IBI->addDestination((*rit));
}
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
2013 Jul 23
0
[LLVMdev] Steps to addDestination
Hi Rasha,
> I need to addDestination to some basic blocks
Just to make sure there's no confusion here: you really are trying to
create code like:
define i32 @foo(i1 %tst) {
%Address = select i1 %tst, i8* blockaddress(@foo, %true), i8*
blockaddress(@foo, %false)
indirectbr i8* %Address, [label %true, label %false] ; This is what
you're creating
true:
ret i32 42
false:
ret i32
2013 Jul 23
2
[LLVMdev] Steps to addDestination
1- I need the first example.
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
3- I'm not sure about "select" instruction, you mean that the address is
the new destination (basic block)that will be added
Thanks
On 23 July 2013 16:38, Tim Northover
2013 Jul 24
0
[LLVMdev] Steps to addDestination
Hi Rasha,
On Wed, Jul 24, 2013 at 12:28 AM, Rasha Omar <rasha.sala7 at gmail.com> wrote:
> 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
2018 Aug 30
4
crash problem when using IndirectBrInst to replace BranchInst
Hello all,
I have written a pass, which replaces condition branchinst using
indirectBr to obfuscate program.
The origin IR is as the following:
br i1 %1, label %2, label %3
And the transformed IR is as the follwoing:
%4 = select i1 %1, i8* blockaddress(@func, %2), i8* blockaddress(@func,
%3)
indirectbr i8* %4, [label %2, label %3]
The pass's core function is as the
2012 Dec 01
0
[LLVMdev] [RFC] "noclone" function attribute
On 12/1/2012 10:02 AM, James Molloy wrote:
>
> I'm proposing a new function attribute, "noclone", with the semantics that "calls to functions marked "noclone" cannot be cloned or duplicated into the same function.". That is, it is illegal to call J = I->clone() then attach J to the same basic block as I if I is marked "noclone".
The class Loop
2018 Aug 31
2
crash problem when using IndirectBrInst to replace BranchInst
With Debug mode, it shows the assert error:
Assertion failed: (I != BlockLiveness.end() && "Predecessor not found"),
function calculateLocalLiveness, file lib/CodeGen/StackColoring.cpp, line
782.
1. <eof> parser at end of file
2. Code generation
3. Running pass 'Function Pass Manager' on module
'busybox/archival/libarchive/decompress_bunzip2.c'.
4. Running
2012 Dec 01
6
[LLVMdev] [RFC] "noclone" function attribute
Hi,
OpenCL has a "barrier" function with very specific semantics, and there is currently no analogue to model this in LLVM.
This has been touched on by the SPIR folks but I don't believe they put forward a proposal.
The barrier function is a special function that ensures that all workitems executing a kernel have executed up to that point before execution on any workitem can
2013 Jul 25
0
[LLVMdev] Steps to addDestination
Hi Rasha,
> for(rit=Result.begin();rit!=Result.end();++rit)
> {
> Value* Address= BlockAddress::get (*rit);
>
> IndirectBrInst *IBI = IndirectBrInst::Create(Address, Result.size(),i->getTerminator() );
> IBI->addDestination((*rit));
> }
This would be creating a block looking something like:
[ Do stuff ]
indirectbr i8*
2012 Dec 01
2
[LLVMdev] [RFC] "noclone" function attribute
> Maybe a similar interface could be added to Instruction, and an
> instruction would declare itself unsafe to clone if it was a call to a
> function with the attribute that you are proposing.
I experimented with something similar to this, where Instruction::clone ensured it wasn't "noclone" - if it was, it asserted. But that broke the use-case of cloning whole functions.