search for: aguinet

Displaying 6 results from an estimated 6 matches for "aguinet".

Did you mean: guinet
2020 May 18
2
Use Galois field New Instructions (GFNI) to combine affine instructions
...7715923615551520, i64 undef> to <16 x i8>), i8 -86) %2 = extractelement <16 x i8> %1, i64 0 ret i8 %2 } (if that's profitable, which might not be the case here, see below) Another more interesting example where we could see potential benefits is this one: https://github.com/aguinet/llvm-project/commit/9ed424cbac0fe3566f801167e2190fad5ad07507#diff-21dd247f3b8aa49860ae8122fe3ea698R22 This gets even more interesting with vectorized code, with an example here: * original C code: https://pastebin.com/4JjF7DPu * LLVM IR after clang -O2 -mgfni -mavx2: https://pastebin.com/Ti0Vm2gj...
2020 Oct 08
4
__attribute__((apple_abi)): targeting Apple/ARM64 ABI from Linux (and others)
Hello everyone, I made a quick patch to clang/llvm to introduce an "apple_abi" function attribute (https://github.com/aguinet/llvm-project/commit/c4905ded3afb3182435df30e527955031cb0d098), to be able to compile functions for the Apple ARM64 ABI when targeting other ARM64 OSes (e.g. Linux). This can be seen as the Apple version of the already existing "ms_abi" attribute. In this mail, I will describe why we woul...
2017 Jun 17
5
LoopVectorize fails to vectorize loops with induction variables with PtrToInt/IntToPtr conversions
...itimately) consider inttoptr/ptrtoint as no-op, and does not handle them. The thing is that, in our case, the GEP in %23 is thus not analyzed by SCEV, and the PHI %16 is thus not considered as an induction variable. To confirm this hypothesis, I created a small out-of-tree pass (https://github.com/aguinet/llvm-intptrcleanup) which registers before loop vectorization and does the following: * first, it search for phi nodes who have those properties: - every incoming value of the phi node is a ptrtoint instruction. The original pointer type of every ptrtoint instruction must be the same type T. -...
2018 Feb 05
0
LLVM Weekly - #214, Feb 5th 2018
...asb at asbradbury.org>, or @llvmweekly or @asbradbury on Twitter. ## News and articles from around the web Reminder: the deadline for paper submissions for [EuroLLVM 2018](http://llvm.org/devmtg/2018-04/) is this Friday, February 9th. Adrien Guinet has released [DragonFFI](https://github.com/aguinet/dragonffi/), a C Foreign Function Interface (FFI) library based on Clang/LLVM. It aims to provide broader ABI support than libffi and to work around the limitations of Python's cffi C parser through the use of Clang. ## On the mailing lists * Fāng-ruì Sòng started a discussion on [moving the...
2020 Apr 22
3
_ExtInt, LLVM integers and constant time
> On Apr 22, 2020, at 12:24 AM, Roman Lebedev via llvm-dev <llvm-dev at lists.llvm.org> wrote: > > On Wed, Apr 22, 2020 at 9:35 AM Adrien Guinet via llvm-dev > <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: >> >> Hello everyone, >> >> After reading the nice blog post about _ExtInt, I was wondering whether >>
2019 Apr 12
3
Generating C headers from LLVM
Hi List, is there any way to generate proper C header files for functions that are defined in LLVM-IR. My current attempts fail when clang does some fancy transformations (to adhere to some ABIs ??), e.g., for returning a struct. For example the declaration typedef struct {int64_t a; int64_t b;int64_t c;} test; test create_test(void);yields the LLVM code %struct.test = type { i64, i64, i64 }