search for: fayard

Displaying 16 results from an estimated 16 matches for "fayard".

2015 May 04
2
[LLVMdev] Memory Allocation Optimized away with new by not with ::operator new
...ing in a single allocation during the whole program (for v). When using my own vector implementation, I realised that the allocation were not optimized away because I was using ::operator new. When I’ve switched back to new, the optimisation came back. Is it expected or a bug from LLVM? François Fayard Founder & Consultant - Inside Loop Tel: +33 (0)6 01 44 06 93 <tel:+33%206%2001%2044%2006%2093> Web: www.insideloop.io <http://www.insideloop.io/> Twitter: @insideloop_io ===== #include <iostream> #include <vector> std::vector<double> f_val(std::size_t i, std::s...
2017 Jan 10
3
Default hashing function for integers (DenseMapInfo.h)
...er of collisions or some such would probably also help. Yes, I could do that. If I want to report all the collision, I might do that in the destructor of DenseMap. Sorry for my ignorance, but is clang/llvm multithreaded? Is it safe to write to a file in a destructor for logging purposes? François Fayard
2015 May 04
5
[LLVMdev] Memory Allocation Optimized away with new by not with ::operator new
Hi, I’ve made my own version of std::vector which is called il::Vector. Due to http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3664.html <http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3664.html>, LLVM can optimise away memory allocation. Therefore, the following code optimise away all memory allocation for w resulting in a single allocation during the whole program (for
2017 Jan 10
4
Default hashing function for integers (DenseMapInfo.h)
...functions are badly considered for a reason : they behave very poorly when the keys are of the form d * k0 + k1. I really think that this hash function could be improved. But to know if it's worth it, I would like to know if having a better hash for integer types would benefit LLVM. François Fayard -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170110/6ae904fc/attachment.html>
2017 Aug 16
4
High Performance containers
...lable here : https://github.com/insideloop/InsideLoop <https://github.com/insideloop/InsideLoop> Let me know if you think that such a library could be useful for you and if you would like to contribute. And, if it is a success, in a few years, why not using it in some LLVM parts... François Fayard -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170816/2e51e358/attachment.html>
2017 Jan 10
3
Default hashing function for integers (DenseMapInfo.h)
...he hash function used for pointers is (k >> 4) ^ (k >> 9). My guess is that the k >> 4 is here because pointers returned by malloc are 16 bytes aligned. I don’t have any guess for the 9 though. So the hashing function for pointers is not flawed like the one for integers. François Fayard
2015 May 01
6
[LLVMdev] Deduplication of memory allocation
Hi, Even though this question does not only concern LLVM, it seems that only compilers guru can answer it. So I am giving a try here, hoping for the best. In a recent talk by Chandler Carruth, “Performance with algorithms, efficiency with data structures” ( https://www.youtube.com/watch?v=fHNmRkzxHWs <https://www.youtube.com/watch?v=fHNmRkzxHWs> ), Chandler says that one should never
2017 Jan 09
4
Default hashing function for integers (DenseMapInfo.h)
...e a few questions: - Is DenseMap used a lot with integers as a key in LLVM? Do you think it would benefit from a better default hash function? - Is there any benchmark to run that makes a heavy use of those hash function so I can see if my changes would improve performance? Best regards, François Fayard Founder & Consultant - Inside Loop Applied Mathematics & High Performance Computing Tel: +33 (0)6 01 44 06 93 Web: www.insideloop.io -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170109/499c4a39/at...
2015 May 06
2
[LLVMdev] Memory Allocation Optimized away with new by not with ::operator new
I’ve missed it. I did a quick search and the only thread I found is back from 2013. Could you please provide me with a link to the thread? François Fayard Founder & Consultant - Inside Loop Tel: +33 (0)6 01 44 06 93 <tel:+33%206%2001%2044%2006%2093> Web: www.insideloop.io <http://www.insideloop.io/> Twitter: @insideloop_io > On 06 May 2015, at 07:21, David Blaikie <dblaikie at gmail.com> wrote: > > Didn't we just...
2017 Aug 17
3
High Performance containers
On 17 August 2017 at 15:27, Hal Finkel <hfinkel at anl.gov> wrote: > Speaking of benchmarks, we might be able use the library, or some parts of > it, in our test suite for correctness and performance testing. I see some > stand-alone benchmarks that seem useful (e.g., > https://github.com/insideloop/InsideLoop/blob/master/il/benchmark/types/32-vs-64-bit-integers.cpp) > but
2017 Jan 10
2
Default hashing function for integers (DenseMapInfo.h)
...e (k << 4) seems to be related to the fact that pointers are 16-bytes aligned on most OS. I still don’t understand the 9. I’ll do some benchmarks for hashing integers tomorrow. This is the hashing that really looks suspicious to me but it does not seem to be used that much in LLVM. François Fayard
2017 Aug 17
2
High Performance containers
...the default hashing functions. There are some hashing strategies such as robin hood hashing that might be worth trying. Also I know, that the hashing strategy for integers in LLVM is suboptimal. But I am not sure it would give a lot of help as I don’t think LLVM hashes a lot on integers. François Fayard > On Aug 17, 2017, at 10:23 AM, Dean Michael Berris <dean.berris at gmail.com> wrote: > > Hi Francois, > > Have you looked at the ADT library in LLVM, and have you considered contributing to LLVM directly (and improving the available data structures / algorithms in the codeb...
2017 Aug 17
2
High Performance containers
...he STL is just painful. This example by the way comes from one of Chandler Carruth’s talk. What I am looking for is sharing ideas, running some benchmarks, working on pros and cons of APIs on a performance point of view, etc. It anyone think that this could be helpful, it would be great. François Fayard -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170817/717aa955/attachment.html>
2017 Jan 09
5
The most efficient way to implement an integer based power function pow in LLVM
Hi, I want an efficient way to implement function pow in LLVM instead of invoking pow() math built-in. For algorithm part, I am clear for the logic. But I am not quite sure for which parts of LLVM should I replace built-in pow with another efficient pow implementation. Any comments and feedback are appreciated. Thanks! -- Wei Ding -------------- next part -------------- An HTML attachment was
2017 Aug 17
4
unable to emit vectorized code in LLVM IR
i removed printf from loop. Now getting no error. but the IR doesnot contain vectorized code. IR Output is as follows: ; ModuleID = 'sum-vec.ll' source_filename = "sum-vec.c" target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-unknown-linux-gnu" ; Function Attrs: norecurse nounwind readnone uwtable define i32 @main(i32, i8**
2017 Aug 17
4
unable to emit vectorized code in LLVM IR
I assume compiler knows that your only have 2 input values that you just added together 1000 times. Despite the fact that you stored to a[i] and b[i] here, nothing reads them other than the addition in the same loop iteration. So the compiler easily removed the a and b arrays. Same with 'c', it's not read outside the loop so it doesn't need to exist. So the compiler turned your