search for: dse

Displaying 20 results from an estimated 353 matches for "dse".

Did you mean: de
2019 May 13
2
Interprocedural DSE for -ftrivial-auto-var-init
> On May 10, 2019, at 8:59 PM, Vitaly Buka via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > Sorry for delay, I was busy with other stuff. > CTMark results. > > dse is the current DSE. > dsem is my experimental module level DSE. > dsem runs after dse, so it's additionally deleted stores. > > -O3 > dse - Number of stores deleted 3033 > dsem - Number of deleted writes...
2020 Aug 18
7
[RFC] Switching to MemorySSA-backed Dead Store Elimination (aka cross-bb DSE)
Hi, Over the past six months, a MemorySSA-backed DSE implementation has been added to LLVM and it now covers almost all cases the existing DSE implementation does, plus adding a major new capability: eliminating stores across basic blocks. Thanks everyone involved with reviews, testing & patches! I think now would be a good time to start working...
2019 Apr 16
2
Interprocedural DSE for -ftrivial-auto-var-init
Can you post numbers for how many stores get eliminated from CTMark? > On Apr 16, 2019, at 11:45 AM, Vitaly Buka <vitalybuka at google.com> wrote: > > I tried -Os and effect of new approach significantly increases. > I run regular DSE and immediately myDSE. With -Os myDSE removes more than 50% of DSE number. > Which is expected as -Os inlines less and regular DSE can't remove over function call. > > On Tue, Apr 16, 2019 at 7:11 AM Alexander Potapenko <glider at google.com <mailto:glider at google.com>>...
2019 Apr 15
3
Interprocedural DSE for -ftrivial-auto-var-init
Hi JF, I've heard that you are interested DSE improvements and maybe we need to be in sync. So far I experimented with following DSE improvements: * Cross-block DSE, it eliminates additional 7% stores comparing to existing DSE. But it's not visible on benchmarks. * Cross-block + Interprocedural analysis to annotate each function argum...
2019 Apr 16
2
Interprocedural DSE for -ftrivial-auto-var-init
...Apr 15, 2019 at 11:02 PM Amara Emerson via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > > > On Apr 15, 2019, at 1:51 PM, Vitaly Buka via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > > > Hi JF, > > > > I've heard that you are interested DSE improvements and maybe we need to be in sync. > > So far I experimented with following DSE improvements: > > > > * Cross-block DSE, it eliminates additional 7% stores comparing to existing DSE. But it's not visible on benchmarks. > I take it you couldn’t see any runtime...
2018 May 21
2
DSE: Remove useless stores between malloc & memset
...'m surprised it hasn't caused any serious issues yet.  Ideally, what we should be doing is using MemorySSA to find a dependency from the memset: if the closest dependency is the malloc, there aren't any stores between the memset and the malloc.  (But we aren't using MemorySSA in DSE yet; see https://reviews.llvm.org/D40480.) But yes, memoryIsNotModifiedBetween has the right meaning. -Eli On 5/21/2018 7:48 AM, Dávid Bolvanský wrote: > "memory accesses between the malloc and the memset without an > expensive linear scan of the block/functio...
2018 May 17
3
DSE: Remove useless stores between malloc & memset
Hello, I would like to find a way to do this removal properly. I found DSE and "eliminateNoopStore" can be useful for this thing. What I mean? int *test = malloc(15 * sizeof(int)); test[10] = 12; < ----- remove this store memset(test,0,sizeof(int) * 15); I already checked the function "eliminateNoopStore". Looks good, I think I would be to get the...
2018 May 21
0
DSE: Remove useless stores between malloc & memset
"memory accesses between the malloc and the memset without an expensive linear scan of the block/function" (1) do you mean just use "memoryIsNotModifiedBetween" function in DSE to check it? x = maloc(..); memset(x, ...) (2) GetUnderlyingObject would give me Value * (from malloc) ? Also another case: memset(s, 0, len); // len > 1 return strlen(s); // optimize to 0 (3) How to check memset and strlen pairs? I have a strlen call, I have a "Value *...
2018 May 22
0
DSE: Remove useless stores between malloc & memset
Can you help a bit? I try to work with DSE but I got the following assert: opt: /home/xbolva00/LLVM/llvm/include/llvm/ADT/Optional.h:176: T* llvm::Optional<T>::getPointer() [with T = llvm::MemoryLocation]: Assertion `Storage.hasVal' failed. static bool eliminateStrlen(CallInst *CI, BasicBlock::iter...
1998 Feb 25
1
R-beta: Re: dse+redhat 4.2 problem
>R INSTALL dse rlibs >Installing package `dse' ... >libs >gcc -g -fpic -I/usr/local/R-0.61/include -c dsefor.c -o dsefor.o >/tmp/cca02533.i:1: numeric constant with no digits >/tmp/cca02533.i:1: numeric constant with no digits >... >is there something...
1998 Feb 25
1
R-beta: Re: dse+redhat 4.2 problem
>R INSTALL dse rlibs >Installing package `dse' ... >libs >gcc -g -fpic -I/usr/local/R-0.61/include -c dsefor.c -o dsefor.o >/tmp/cca02533.i:1: numeric constant with no digits >/tmp/cca02533.i:1: numeric constant with no digits >... >is there something...
2018 May 22
2
DSE: Remove useless stores between malloc & memset
* if (isStringFromCalloc(Dst, TLI)) should be if (!isStringFromCalloc(Dst, TLI)) but still asserting... 2018-05-22 23:06 GMT+02:00 Dávid Bolvanský <david.bolvansky at gmail.com>: > Can you help a bit? > > I try to work with DSE but I got the following assert: > opt: /home/xbolva00/LLVM/llvm/include/llvm/ADT/Optional.h:176: T* > llvm::Optional<T>::getPointer() [with T = llvm::MemoryLocation]: > Assertion `Storage.hasVal' failed. > > static bool eliminateStrlen(CallIn...
2014 Oct 24
4
[LLVMdev] Cross-Block Dead Store Elimination
Hi, It looks like the DeadStoreElimination optimization doesn't work across BasicBlock boundaries. The project I'm working on (https://github.com/trailofbits/mcsema), would tremendously benefit from even simple cross-block DSE. There was a patch to do non-local DSE few years ago (http://lists.cs.uiuc.edu/pipermail/llvmdev/2010-January/028751.html), but seems that the patch was never merged. Is there an existing way to do cross-block DSE? Was there something wrong with the original non-local DS...
2018 May 22
0
DSE: Remove useless stores between malloc & memset
...c(Dst, TLI)) should be if > (!isStringFromCalloc(Dst, TLI)) > but still asserting... > > 2018-05-22 23:06 GMT+02:00 Dávid Bolvanský <david.bolvansky at gmail.com > <mailto:david.bolvansky at gmail.com>>: > > Can you help a bit? > > I try to work with DSE but I got the following assert: > opt: /home/xbolva00/LLVM/llvm/include/llvm/ADT/Optional.h:176: T* > llvm::Optional<T>::getPointer() [with T = llvm::MemoryLocation]: > Assertion `Storage.hasVal' failed. > > static bool elimin...
2018 May 22
2
DSE: Remove useless stores between malloc & memset
Full stack trace: opt: /home/xbolva00/LLVM/llvm/include/llvm/ADT/Optional.h:176: T* llvm::Optional<T>::getPointer() [with T = llvm::MemoryLocation]: Assertion `Storage.hasVal' failed. Stack dump: 0. Program arguments: opt aaa.ll -dse -S 1. Running pass 'Function Pass Manager' on module 'aaa.ll'. 2. Running pass 'Dead Store Elimination' on function '@calloc_strlen' LLVMSymbolizer: error reading file: No such file or directory #0 0x000056135ebe698a (opt+0x212198a) #1 0x000056135ebe4cf4 (opt+0x211fc...
2020 Aug 18
3
[RFC] Switching to MemorySSA-backed Dead Store Elimination (aka cross-bb DSE)
> On Aug 18, 2020, at 16:59, Michael Kruse <llvmdev at meinersbur.de> wrote: > > Thanks for all the work. The reductions in stores look promising. Do you also have performance numbers how much this improves the execution time? Did you observe any regressions where MSSA resulted in fewer removed stores? I did not gather numbers for execution time yet, but I’ll try to share some
2018 May 22
0
DSE: Remove useless stores between malloc & memset
...ll stack trace: > > opt: /home/xbolva00/LLVM/llvm/include/llvm/ADT/Optional.h:176: T* > llvm::Optional<T>::getPointer() [with T = llvm::MemoryLocation]: > Assertion `Storage.hasVal' failed. > Stack dump: > 0. Program arguments: opt aaa.ll -dse -S > 1. Running pass 'Function Pass Manager' on module 'aaa.ll'. > 2. Running pass 'Dead Store Elimination' on function '@calloc_strlen' > LLVMSymbolizer: error reading file: No such file or directory > #0 0x000056135ebe698a (opt+0x212198a) > #1 0x0000...
2019 May 24
2
Representations of IR in the output of opt
...ng up some tools to investigate the influence of the order of optimization passes on the performance of compiled programs -nothing exceptional here. I noticed something inconvenient with opt, namely that splitting a call does not always give the same output: % llvm-stress > stress.ll % opt -dse -verify -dce stress.ll -o stress-1.bc % opt -dse stress.ll | opt -dce -o stress-2.bc % diff stress-{1,2}.bc Binary files stress-1.bc and stress-2.bc differ The difference seems meaningful; it's ~180 bytes out of ~1400 bytes of output in my random case. I can't decode it however, because...
1999 Dec 21
1
DSE revised for R 0.90.1
A slightly revised version of my DSE package for multi-variate time series analysis is now available at <www.bank-banque-canada.ca/pgilbert>. This version works with R 0.90.1 (and not with R 90.0 or earlier versions). It can also be installed with install.packages(c("syskern", "tframe", "dse"...
1999 Dec 21
1
DSE revised for R 0.90.1
A slightly revised version of my DSE package for multi-variate time series analysis is now available at <www.bank-banque-canada.ca/pgilbert>. This version works with R 0.90.1 (and not with R 90.0 or earlier versions). It can also be installed with install.packages(c("syskern", "tframe", "dse"...