Displaying 20 results from an estimated 2000 matches similar to: "GlobalVariable::eraseFromParent"
2016 Feb 24
2
Heap problems with 3.8.0rc2 in combination with vs2015 sp1
I recently upgraded from llvm 3.7.1 to a pre release of llvm (3.8.0rc2) in
order to test some issues regarding bug 24233.
After upgrading I starting to see heap corruption messages in vs 2015 sp1
when my program exits.
"HEAP[ConsoleEngine.exe]: Invalid address specified to RtlValidateHeap(
0000000000290000, 0000000000318698 )"
Initially I only got it in Release build. Debug build seems
2016 Feb 25
0
Heap problems with 3.8.0rc2 in combination with vs2015 sp1
I downloaded 3.8.0rc3 and I also have it in 3.8.0rc3.
I did set a data access breakpoint on the first function ptr that causes
the invalid heap. This would allow me to break whenever someone is touching
that address. It did not show double deletes during debugging. Further more
I managed to narrow it down to 2 function calls:
// stupid code, but its just for triggering heap error
auto func =
2016 Feb 25
2
Heap problems with 3.8.0rc2 in combination with vs2015 sp1
I made the llvm::Function() constructor public (for testing purpose) and
used the non-overloaded new.
auto func = ::new llvm::Function(...)
if (func) func->eraseFromParent();
And the heap corruption is gone! Did something changed in llvm::User::new
between 3.7.1 and 3.8.0 ?
I found a bug in llvm ?
On Thu, Feb 25, 2016 at 12:10 PM, koffie drinker <gekkekoe at gmail.com> wrote:
> I
2016 Feb 25
0
Heap problems with 3.8.0rc2 in combination with vs2015 sp1
I found the root cause, but I don't know what's the best approach to fix it.
Under windows, 64 bit, when a function is created the void *User::operator
new(size_t Size) operator allocates space + Use*.
In the Use* the HasHungOffUses is set to true. So the ptr to the use* is
returned as new object. This ptr is NOT the ptr that was allocated by the
system. For that ptr you need ptr - word
2016 Feb 26
2
Heap problems with 3.8.0rc2 in combination with vs2015 sp1
Turns out llvm initializes memory before the constructor is invoked. Visual
studio has /sdl by default on, and the __autoclassinit2 will zero the
memory before the constructor is reached causing all the setters to be
default zero. which clears the hashungoff var and causing the delete to
flow in wrong part.
When /sdl is enabled, the compiler generates code to perform these checks
at run time:
—
2010 Jan 13
2
[LLVMdev] How to create forward reference to BasicBlock?
Hi,
Can anyone tell me if there's a straighforward way to create a new
BasicBlock without inserting it into a function's basic block list? I want
to do this so I can create a forward reference to a block that's position in
the function is not yet known.
I've tried:
Function function
Builder builder;
bb = BasicBlock::Create(function,...)
bb.eraseFromParent()
...
add other
2016 Aug 04
4
help please: how to sort the contents of a "SymbolTableListTraits<GlobalVariable>"?
Dear sir,
Thanks for your reply. I apologize for taking a few days to reply.
> Crashed how?
Please see the below.
> Have you turned on ASan?
Not yet, but thanks for the suggestion. I guess I will try to rebuild my modified Clang+LLVM
with addr. san. and see what happens.
> I recommend attaching a minimal reproduction...
Well, since I`m hacking on LLVM itself, this is not
2010 Jan 13
0
[LLVMdev] How to create forward reference to BasicBlock?
On Wed, Jan 13, 2010 at 2:27 PM, James Williams <junk at giantblob.com> wrote:
> Hi,
>
> Can anyone tell me if there's a straighforward way to create a new
> BasicBlock without inserting it into a function's basic block list? I want
> to do this so I can create a forward reference to a block that's position in
> the function is not yet known.
>
> I've
2016 Jul 27
2
help please: how to sort the contents of a "SymbolTableListTraits<GlobalVariable>"?
Dear all,
In the process of trying to add optimization for better layout of global variables, I have run
up against a roadblock: I don`t seem to be able to sort the contents of a
"SymbolTableListTraits<GlobalVariable>" -- or even swap two elements in that list -- without
causing LLVM to crash.
I have tried writing a comparator class and then using "llvm::iplist<
2012 Jan 12
3
[LLVMdev] 'opt' Aborted "While deleting: void %"
Hey everyone,
So I have an LLVM pass that appears to run completely and work fine, and
then it aborts at the very end. When exiting the final runOnFunction call,
I get the following error / stack dump. I cannot figure out why this is
happening for the life of me - does anyone have any ideas? I'm not trying
to do any crazy deallocation or anything, it just seems like a normal pass
to me.
2012 Jan 12
0
[LLVMdev] 'opt' Aborted "While deleting: void %"
Hi Griffin, did your pass create a data structure that holds values somehow,
and forgot to delete it? Also, try running under valgrind in case this is
due to a memory error of some kind.
Ciao, Duncan.
> So I have an LLVM pass that appears to run completely and work fine, and
> then it aborts at the very end. When exiting the final runOnFunction call,
> I get the following error /
2012 Aug 18
1
[LLVMdev] GlobalVariable initializer using from beyond the grave
For LLDB I'm writing a dumb module pass that removes all global variables, by running the following code:
bool erased = true;
while (erased)
{
erased = false;
for (Module::global_iterator gi = llvm_module.global_begin(), ge = llvm_module.global_end();
gi != ge;
++gi)
{
GlobalVariable *global_var =
2011 Feb 24
2
[LLVMdev] Valgrind memcheck errors in llvm
I have ran under valgrind memcheck the process using libLLVM-2.9.so
(rev.126022) and got several errors:
==24227== Invalid read of size 1
==24227== at 0x40274C9: memcpy (mc_replace_strmem.c:497)
==24227== by 0x40D5B84: char* std::string::_S_construct<char
const*>(char const*, char const*, std::allocator<char> const&,
std::forward_iterator_tag) (in
2012 Jan 25
2
[LLVMdev] PLEASE help with Alias Analysis initialization assertion at the end of my pass
Hello all,
I really, really, really need your help. This is my third email now,
please don't ignore me! I understand this must be a trivial thing, but
I've ground to a halt, and REALLY need some guidance. Please see below for
the context of my problem. I'm not trying to be a waste of time, but I'm
desperate here.
I have a getAnalysisUsage method which does the following
2018 Aug 07
2
Error Calling eraseFromParent()
The code is really simple. But I can not the reason for the segmentation
fault. I only know that the eraseFromParent() function leads to it. The
whole code is:
...
bool runOnFunction(Function &F) override {
for (auto &I : instructions(F)) {
if (auto* op = dyn_cast<BinaryOperator>(&I)) {
IRBuilder<> builder(op);
Value* lhs = op->getOperand(0);
Value* rhs =
2018 Aug 07
2
Error Calling eraseFromParent()
Thanks Bjorn! But The problem is still there.
On Wed, Aug 8, 2018 at 2:04 AM, Björn Pettersson A <
bjorn.a.pettersson at ericsson.com> wrote:
> It looks quite dangerous to erase the instruction I inside the loop when
> iterating over all instructions in the function.
> I guess it depends on how the range based iterator is implemented if that
> works or not.
>
> I think
2018 Aug 08
2
Error Calling eraseFromParent()
Hi. Thanks. I changed the code but the problem exists. This is my new code
which is again very simple:
...
bool runOnFunction(Function &F) override {
vector<Instruction *> dels;
dels.clear();
for (inst_iterator It = inst_begin(&F), Ie = inst_end(&F); It != Ie;) {
Instruction *I = &*(It++);
if (auto* op = dyn_cast<BinaryOperator>(I)) {
IRBuilder<NoFolder>
2012 Jan 13
1
[LLVMdev] 'opt' Aborted "While deleting: void %"
Using Valgrind hasn't shown me anything terribly unusual. And I'm confused
because its not even trying to delete a real instruction; deleting a void
type with no name? That doesn't make any sense...
Any other hints? I've seen a few posts in the past about this relating to
some internal LLVM bugs...
-Griffin
On Thu, 12 Jan 2012 21:26:41 +0100, Duncan Sands <baldrick at
2012 Jan 25
0
[LLVMdev] PLEASE help with Alias Analysis initialization assertion at the end of my pass
Griffin Wright wrote:
>
> Hello all,
>
> I really, really, really need your help. This is my third email now,
> please don't ignore me! I understand this must be a trivial thing, but
> I've ground to a halt, and REALLY need some guidance. Please see below for
> the context of my problem. I'm not trying to be a waste of time, but I'm
> desperate here.
2018 Aug 07
2
Error Calling eraseFromParent()
Hi.
This is part of my code:
...
if (auto* op = dyn_cast<BinaryOperator>(&I)) {
Value* lhs = op->getOperand(0);
Value* rhs = op->getOperand(1);
Value* mul = builder.CreateMul(lhs, rhs);
for (auto& U : op->uses()) {
User* user = U.getUser();
user->setOperand(U.getOperandNo(), mul);
}
I.eraseFromParent();
}
...
This leads to the following