Displaying 8 results from an estimated 8 matches for "ptrset".
2015 Sep 14
3
RFC: speedups with instruction side-data (ADCE, perhaps others?)
I did something similar for dominators, for GVN, etc.
All see significant speedups.
However, the answer i got back when i mentioned this was "things like
ptrset and densemap should only have a small performance difference
from side data when used and sized right", and i've found this to
mostly be true after looking harder.
In the case you are looking at, i see:
- SmallPtrSet<Instruction*, 128> Alive;
This seems ... wrong.
In fact, it see...
2013 Oct 22
2
[LLVMdev] SmallPtrSet patch for MCJIT
Hi Andy,
Here is the patch. it incorporates:
1) your latest patch to SVN.
2) mcjit-module-state-optimization.patch.
3) the PtrSet changes.
Other than the OwnedModules implementation there were other differences
between 1) and 2), especially in the Finalize* functions, so please review
that I got the right code.
I got bitten by subtle bugs arising from MCJIT inheriting from EE:
First, MCJIT overridden addModule but not remov...
2013 Jan 23
2
[LLVMdev] BlockFrequencyImpl asserts on multiple edges between same MBBs with different weights in LLVM 3.2
...ecessor only once.
However, an alternative option could be to simply disallow different
edge weights for edges with the same source and destination, or to make
the call to getEdgeFreq(Pred,BB) in BlockFrequencyImpl distinguish
between the edges, which would eliminate the need for an additional
PtrSet, but is not that easy to implement.
I could not reproduce that problem with the X86 or the ARM backend, so I
cannot really provide you with a testcase that works without our backend
(which is available on github however..).
Regards,
Stefan
-------------- next part --------------
A non-text at...
2013 Oct 22
0
[LLVMdev] SmallPtrSet patch for MCJIT
...onstructors/destructors in secondary modules, but it shouldn't be hard to add that.
Definitely feel free to add more test cases!
-Andy
From: Yaron Keren [mailto:yaron.keren at gmail.com]
Sent: Monday, October 21, 2013 10:57 PM
To: <llvmdev at cs.uiuc.edu>; Kaylor, Andrew
Subject: SmallPtrSet patch for MCJIT
Hi Andy,
Here is the patch. it incorporates:
1) your latest patch to SVN.
2) mcjit-module-state-optimization.patch.
3) the PtrSet changes.
Other than the OwnedModules implementation there were other differences between 1) and 2), especially in the Finalize* functions, so please...
2013 Dec 17
0
[LLVMdev] llvmContext::removeModule doesn't remove NamedStructTypes
...llvm::OwningPtr<llvm::Module> module(llvm::ParseBitcodeFile(buffer,
llvmCtx, &ErrMsg));
module->dump();
}
}
with smart pointer, the 1st module will be deleted and call removeModule
for the context. The implementation of removeModule is quite simple. It
just removes the PtrSet.
pImpl->OwnedModules.erase(M);
It doesn't touch LLVMContextImpl's NamedStructTypes. As a result,
'struct.cmd' is still in the symbol table even the module has destroyed.
In second ParseBitCodeFile, StructType::setName will introduce struct.cmd0
due to conflict.
should we do...
2013 Jan 23
0
[LLVMdev] BlockFrequencyImpl asserts on multiple edges between same MBBs with different weights in LLVM 3.2
...nt.org> wrote:
> However, an alternative option could be to simply disallow different edge weights for edges with the same source and destination, or to make the call to getEdgeFreq(Pred,BB) in BlockFrequencyImpl distinguish between the edges, which would eliminate the need for an additional PtrSet, but is not that easy to implement.
Hi Stefan,
The MachineBasicBlock CFG is supposed to be a proper graph without duplicate edges, unlike the LLVM IR CFG.
I thought I had cleaned up all the cases where we created duplicate MBB edges, but it looks like I missed something.
If you can find the pla...
2013 Oct 22
1
[LLVMdev] SmallPtrSet patch for MCJIT
...or all cases.
pop_back() vs. clear() - since I knew there is one module only (we override
the AddModule so EE can't get another) that what "popped" into my mind.
clear() is just as good, changed.
EE, JIT, MCJIT inheritance - the interpreter and the JIT would also benefit
from a SmallPtrSet module manager rather than the current vector so if it's
possible to create a module manager that makes sense for everyone, it could
be moved back into EE along with the several duplicated functions.
I clarified this in ~MCJIT comments and ExecutionEngine.h comment.
As English is my second la...
2015 Sep 14
7
RFC: speedups with instruction side-data (ADCE, perhaps others?)
I’ve been playing around with optimizing performance various passes and noticed something about ADCE: it keeps an Alive set that requires a lot of upkeep time-wise, but if each instruction had a /single bit/ of side data (to represent liveness, solely within the pass), the set wouldn’t be needed. I tested this out and observed a ~1/3 reduction in time in ADCE: 1454ms to 982ms according to a