Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] bug in ilist_node::getPrevNode() ?"
2012 Dec 20
3
[LLVMdev] LLVM segmentation fault / need use Instruction instead of Instruction*
Hello John,
I was following your procedures and I isolated the problem. The problem are
represented by the basic blocks with only one element.
for (Function::iterator II = F.begin(), EE = F.end(); II != EE; ++II, ++ii)
{
BasicBlock* BB=II;
if (BB->getTerminator())
{
Instruction* current = BB->getTerminator();
Instruction* previous;
2011 Nov 14
0
[LLVMdev] ilist::getPrevNode asserts on list head
Hi all,
I am finding a SEGFAULT in one of my passes when using getPrevNode on an
instruction that is the only one in a BasicBlock. I was expecting
getPrevNode to return 0 in that case (as per docs), but it breaks.
I guess the code in in ilist_node.h:
NodeTy *getPrevNode() {
NodeTy *Prev = this->getPrev();
// Check for sentinel.
if (!Prev->getNext())
return 0;
return Prev;
}
2012 Dec 20
0
[LLVMdev] LLVM segmentation fault / need use Instruction instead of Instruction*
I may be mistaken as I just took a quick look, but in ilist_node the
function "getPrevNode()" actually calls a method on the previous node:
NodeTy *getPrevNode() {
NodeTy *Prev = this->getPrev();
// Check for sentinel.
if (!Prev->getNext())
return 0;
return Prev;
}
http://llvm.org/docs/doxygen/html/ilist__node_8h_source.html#l00058
Try checking if
2015 Oct 08
5
ilist/iplist are broken (maybe I'll fix them?)
I've been digging into some undefined behaviour stemming from how ilist
is typically configured. r247937, r247944, and r247978 caused a UBSan
failure to start firing on our Green Dragon bots, and after an IRC
conversation between David and Nick and Mehdi, we added a blacklist:
--
$echo "src:$WORKSPACE/llvm/include/llvm/CodeGen/MachineFunction.h" >> sanitize.blacklist
--
2016 Jul 11
2
[PATCH] D22161: SystemZ: Avoid implicit iterator conversions, NFC
> On 2016-Jul-11, at 09:05, Ulrich Weigand <ulrich.weigand at de.ibm.com> wrote:
>
> uweigand accepted this revision.
> uweigand added a comment.
> This revision is now accepted and ready to land.
>
> I'll defer to your expertise on that. Patch looks good to me.
>
> I guess I'm not fully familiar with some of the C++ language details here. Would you
2015 Oct 01
3
Fwd: buildbot failure in LLVM on sanitizer-x86_64-linux-bootstrap
This buildbot seems to have been failing for a while (though it's hard for
me to identify the root cause in the logs, as I mentioned in another
thread, so it's hard to say if it's the same failure, or if the failure is
consistent, etc) - anyone watching it/caring aobut it?
---------- Forwarded message ----------
From: <llvm.buildmaster at lab.llvm.org>
Date: Wed, Sep 30, 2015 at
2012 Dec 20
0
[LLVMdev] LLVM segmentation fault / need use Instruction instead of Instruction*
Hello John,
I was following your procedures and I isolated the problem. The problem are
represented by the basic blocks with only one elements.
for (Function::iterator II = F.begin(), EE = F.end(); II != EE; ++II, ++ii)
{
BasicBlock* BB=II;
if (BB->getTerminator())
{
Instruction* current = BB->getTerminator();
Instruction* previous;
2012 Dec 20
0
[LLVMdev] LLVM segmentation fault / need use Instruction instead of Instruction*
getPrevNode<http://llvm.org/docs/doxygen/html/classllvm_1_1ilist__node.html#a77b897207ef0a1ae95c404695aed9a4b>()
Get the previous node, or 0 for the list head. I don't see any method like
hasPrevNode.
It can be a weird problem because "current->getPrevNode()" is indicating to
"current" itself (the problem appears for the BB with only one element)?
On Thu, Dec
2013 Jan 10
2
[LLVMdev] LLVM Instruction*->getOperand() not working properly for ICMP
Hello everyone !
In my pass I inspect the penultimate instruction from every basic block in
runOnFunction(). I am interested in ICMP instructions only.
if(BB->size()>1)
if(last->getPrevNode())
{
previous = last->getPrevNode();
ok=1;
}
I want to get the operands of previous, which is of type Instruction*. Due
tests based on getNumOperands, ICMP has 2 (as
2014 Jul 26
2
[LLVMdev] Finding previous emitted instruction
Hi All,
For various obscure reasons I'd like to detect the condition when X86 CALL
instruction immediately precedes a function epilogue in the final emitted
code, and insert a NOP between them if that happens.
My initial attempt at it looked like this:
MachineBasicBlock& MBB;
MachineBasicBlock::iterator MBBI; <-- points to where the epilogue would
be inserted
if (MBBI != MBB.begin()
2012 Dec 19
3
[LLVMdev] LLVM segmentation fault / need use Instruction instead of Instruction*
Hello everyone,
I have a segmentation fault while running an LLVM pass. I need to use
BBterminators array outside the iterating "for" loop for basic blocks. It
seems that LLVM does not protect the addresses ( note: TerminatorInst
*BasicBlock::getTerminator() ) when iterating through the loop, so I need
to keep in BBterminators "Instruction" type elements, not
2012 Dec 20
1
[LLVMdev] LLVM segmentation fault / need use Instruction instead of Instruction*
I solved by checking
if(BB->size()>1)
Thank you all for the help !
Now debugging the next segfault.
On Thu, Dec 20, 2012 at 12:59 PM, Alexandru Ionut Diaconescu <
alexandruionutdiaconescu at gmail.com> wrote:
> getPrevNode<http://llvm.org/docs/doxygen/html/classllvm_1_1ilist__node.html#a77b897207ef0a1ae95c404695aed9a4b>()
> Get the previous node, or 0 for the list
2013 Jan 10
0
[LLVMdev] LLVM Instruction*->getOperand() not working properly for ICMP
Hi,
On 10/01/13 10:56, Alexandru Ionut Diaconescu wrote:
> Hello everyone !
>
> In my pass I inspect the penultimate instruction from every basic block in
> runOnFunction(). I am interested in ICMP instructions only.
>
> |if(BB->size()>1)
> if(last->getPrevNode())
> {
> previous = last->getPrevNode();
> ok=1;
> }
> |
2014 Apr 15
10
[LLVMdev] [PATCH] Seh exceptions on Win64
Hi,
I'd like to submit a patch to match the clang patch on the front end.
http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20140414/103257.html
The front end doesn't need this patch to work but it's still important.
This is mostly based on work done by kai from redstar.de
Could I get some feedback on this?
I'm not sure if the emitting of the register names will effect
2011 May 20
3
[LLVMdev] convert a char * to a value
Hi all,
Please i need help, I have a method that takes 2 arguments with type char *:
void branchPredict(char *b1, char *b2){
---
--
}
i'm supposed to add this method, in an IR basic bloc:
to add it into a basic bloc i do:
//i: is the basic bloc
std::vector<Value*> void_43_params;
Constant* tbname = ConstantArray::get(M.getContext(),i->getNameStr() ,
true);
Constant* pbname =
2012 Dec 18
1
[LLVMdev] problem with runOnLoop
John Criswell <criswell <at> illinois.edu> writes:
>
>
> On 12/12/11 9:59 AM, neda 8664 wrote:
>
>
> hi all,
> I want access to all basic blocks of function in a loop, so I used
> the following code:bool parallel::runOnLoop(Loop *L, LPPassManager
> &LPM)
> {
> for
2011 May 20
0
[LLVMdev] convert a char * to a value
On 5/20/11 5:46 PM, Nabila ABDESSAIED wrote:
> Hi all,
>
> Please i need help, I have a method that takes 2 arguments with type
> char *:
> void branchPredict(char *b1, char *b2){
> ---
> --
> }
> i'm supposed to add this method, in an IR basic bloc:
> to add it into a basic bloc i do:
The problem is that you are passing arrays to the function instead of
2009 Jul 31
3
[LLVMdev] RFC: MachineInstr Annotations
I'm getting to the point where I want to contribute some more
MachineInstr comment support for things like spills. As we've
discussed before, we don't have all of the information available
in AsmPrinter to synthesize the kind of comments that can be
helpful for debugging performance issues with register allocators
(our primary use for these kinds of comments).
In order to get this
2012 Dec 20
2
[LLVMdev] LLVM segmentation fault / need use Instruction instead of Instruction*
Hello,
Thank you for your answer. If I want to use
then I have
error: ‘NodeTy* llvm::ilist_half_node<NodeTy>::getPrev() [with NodeTy =
llvm::Instruction]’ is protected
error: ‘llvm::ilist_half_node<llvm::Instruction>’ is not an accessible base
of ‘llvm::Instruction’
Do you know any other method to access the previous instruction of a
terminator instruction? PS: back() is not an
2012 Dec 18
1
[LLVMdev] BasicBlock back()
PS:
I works when I use Instruction* prev = current->getPrevNode();
But then I have runtime error Stack dump that is very frequent...
On Mon, Dec 17, 2012 at 6:20 PM, John Criswell <criswell at illinois.edu>wrote:
> On 12/17/12 10:34 AM, Alexandru Ionut Diaconescu wrote:
>
> Hello,
>
> I am a beginner of LLVM. I am trying to move among the instructions of a
>