search for: ptrset

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