search for: eltoder

Displaying 20 results from an estimated 56 matches for "eltoder".

Did you mean: elder
2013 Aug 20
3
[LLVMdev] Failure to optimize vector select
On Aug 19, 2013, at 18:47 , Eugene Toder <eltoder at gmail.com> wrote: > Have you tried running SLP vectorizer pass (-vectorize-slp)? Yes. That was the first thing i tried, and it didn't do anything. I was looking the vectorizer, but then I saw some things that made me wonder if it was even supposed to do this
2010 Aug 08
2
[LLVMdev] Usage of pointers to elements of a std::vector that might be reallocated
Oh yes you're right, I missed that :) But the point still hold. Amaury Pouly 2010/8/8 Eugene Toder <eltoder at gmail.com> > > Not only this code does not compile with NDEBUG set > > I may be missing something, but why does it not compile with -DNDEBUG? > assert() macro expands to noop when NDEBUG is set. > > Eugene > > On Sun, Aug 8, 2010 at 2:19 PM, Amaury Pouly <amaury...
2010 Aug 08
0
[LLVMdev] Usage of pointers to elements of a std::vector that might be reallocated
...possible) or use a container that doesn't reallocate on insert. Eugene On Sun, Aug 8, 2010 at 3:11 PM, Amaury Pouly <amaury.pouly at gmail.com> wrote: > Oh yes you're right, I missed that :) But the point still hold. > > Amaury Pouly > > > 2010/8/8 Eugene Toder <eltoder at gmail.com> >> >> > Not only this code does not compile with NDEBUG set >> >> I may be missing something, but why does it not compile with -DNDEBUG? >> assert() macro expands to noop when NDEBUG is set. >> >> Eugene >> >> On Sun, Aug 8,...
2010 Jun 17
1
[LLVMdev] Adding support to LLVM for data & code layout (needed by GHC)
On 15 June 2010 23:08, Eugene Toder <eltoder at gmail.com> wrote: > Subsections is a very good idea. You can even do without > post-processing by using carefully crafted section names, e.g. > > __attribute__((section(".text,\"ax\", at progbits\n\t.subsection 1 #"))) > void foo() > { > } There is on...
2010 Jul 07
4
[LLVMdev] LLVM-C headers: create native library
> The clang driver generally uses an installed gcc to do the assemble > and link steps at the moment. gcc? I thought it uses binutils. Eugene
2010 Jul 07
0
[LLVMdev] LLVM-C headers: create native library
On Wed, Jul 7, 2010 at 1:55 PM, Eugene Toder <eltoder at gmail.com> wrote: >> The clang driver generally uses an installed gcc to do the assemble >> and link steps at the moment. > > gcc? I thought it uses binutils. It does. But clang uses the gcc driver to invoke the binutils tools anyway. Presumably it's easier that way....
2013 Aug 20
0
[LLVMdev] Failure to optimize vector select
Can you send the IR of the function ? On Aug 20, 2013, at 8:36 AM, Matt Arsenault <arsenm2 at gmail.com> wrote: > > On Aug 19, 2013, at 18:47 , Eugene Toder <eltoder at gmail.com> wrote: > >> Have you tried running SLP vectorizer pass (-vectorize-slp)? > Yes. That was the first thing i tried, and it didn't do anything. I was looking the vectorizer, but then I saw some things that made me wonder if it was even supposed to do this > _______...
2010 Jul 18
2
[LLVMdev] MemoryDependenceAnalysis Bug or Feature?
...e.g. a load. Isn't a read-only call effectively just a series of loads from a memory-dependence perspective? In other words, why does this code fragment return MemDepResult::getClobber() instead of MemDepResult::getDef() for a read-only call? On Sat, Jul 17, 2010 at 6:18 PM, Eugene Toder <eltoder at gmail.com> wrote: > Since isLoad == false means we're looking at a store, what this does > is making the store *p depend on the load *p. This is correct -- you > can't move store before load, otherwise load will start returning a > different value. > > Eugene > &...
2010 Jul 18
0
[LLVMdev] MemoryDependenceAnalysis Bug or Feature?
...a read-only call effectively just a series of loads > from a memory-dependence perspective? > In other words, why does this code fragment return > MemDepResult::getClobber() instead of MemDepResult::getDef() for a read-only > call? > On Sat, Jul 17, 2010 at 6:18 PM, Eugene Toder <eltoder at gmail.com> wrote: >> >> Since isLoad == false means we're looking at a store, what this does >> is making the store *p depend on the load *p. This is correct -- you >> can't move store before load, otherwise load will start returning a >> different value....
2010 Apr 18
1
[LLVMdev] create two Twine object
On Sun, Apr 18, 2010 at 4:36 AM, Eugene Toder <eltoder at gmail.com> wrote: > According to documentation Twines should be used only for temporary > values and not stored, so allocating the in heap sounds wrong. Yes, in general you should never be naming Twine directly, except in the case where you need to make a Twine for an integer. All othe...
2010 Jun 09
2
[LLVMdev] Adding support to LLVM for data & code layout (needed by GHC)
...t any changes to LLVM, so the main points for having a direct support for side-tables in LLVM is 1) Not relying on external tool 2) Optimizer issues Eugene On Tue, Jun 8, 2010 at 10:35 PM, Andrew Lenharth <andrewl at lenharth.org> wrote: > On Tue, Jun 8, 2010 at 4:15 PM, Eugene Toder <eltoder at gmail.com> wrote: >> Let me point out that projects using standard toolchain (e.g. >> binutils) can already reorder code and data pretty much arbitrary >> using sections and linker scripts. >> I think it's still attractive to have reordering in LLVM to be >>...
2010 Jun 09
0
[LLVMdev] Adding support to LLVM for data & code layout (needed by GHC)
On Wed, Jun 9, 2010 at 4:16 PM, Eugene Toder <eltoder at gmail.com> wrote: > Yes, the global structure is constant. This is indeed a side-table. > Overriding section of global to be in text is simple -- LLVM already > supports section attribute on globals and functions. However we also > need a specific ordering in text. > With some...
2010 Jun 15
0
[LLVMdev] Adding support to LLVM for data & code layout (needed by GHC)
Subsections is a very good idea. You can even do without post-processing by using carefully crafted section names, e.g. __attribute__((section(".text,\"ax\", at progbits\n\t.subsection 1 #"))) void foo() { } (Note that you need ".subsection n" commands on ELF targets and ".section name, n" commands on COFF targets; seems that the latter was supported on
2010 Sep 26
0
[LLVMdev] LLVM Exception Handling
On 26 September 2010 13:08, Eugene Toder <eltoder at gmail.com> wrote: >  %s = invoke i32 @v(i32 %o) to label %ok >                   unwind %x to label %catch > ok: >  ret i32 %s > > catch: >  %type = call i32 @exception_type(i8* %x) >  %r = icmp eq i32 %type, 255 ; 255 is DivisionByZeroException type >  br i1 %r, la...
2010 Jun 08
0
[LLVMdev] Adding support to LLVM for data & code layout (needed by GHC)
On Tue, Jun 8, 2010 at 4:15 PM, Eugene Toder <eltoder at gmail.com> wrote: > Let me point out that projects using standard toolchain (e.g. > binutils) can already reorder code and data pretty much arbitrary > using sections and linker scripts. > I think it's still attractive to have reordering in LLVM to be > independent from ext...
2010 Sep 26
4
[LLVMdev] LLVM Exception Handling
I may me wrong, but I think Nathan used ints for demonstration purposes only. unwind always takes i8* argument that ideally should be a pointer to exception structure, variable %x in invoke is also typed i8*, it's not "untyped". Probably more llvm-ish syntax would be unwind i8* %x to label %catch to show the type explicitly. However throwing a pointer to a structure raises
2010 Aug 09
3
[LLVMdev] llvm "iword" type
That and the possibility of differently sized pointers made me hesitate to dive into implementing this. I guess nailing it down to be the platform equivalent of size_t would be sensible here. On Mon, Aug 9, 2010 at 1:37 PM, Eugene Toder <eltoder at gmail.com> wrote: > Small nitpick: size_t is not guaranteed to be large enough to hold a > pointer (only an array index, which can be less; though such platforms > are pretty exotic now). [u]intptr_t are the types. > > Eugene > > On Mon, Aug 9, 2010 at 5:44 PM, Joshua War...
2010 Jun 08
2
[LLVMdev] Adding support to LLVM for data & code layout (needed by GHC)
Let me point out that projects using standard toolchain (e.g. binutils) can already reorder code and data pretty much arbitrary using sections and linker scripts. I think it's still attractive to have reordering in LLVM to be independent from external toolchain. This will allow reordering in JIT and other interesting things. I agree with John that special global with ordered list looks like
2010 Jun 04
1
[LLVMdev] Is there a "callback optimization"?
On Fri, Jun 4, 2010 at 1:35 PM, Eugene Toder <eltoder at gmail.com> wrote: > It should be relatively simple to write a pass that turns each call > that has constant argument(s) into a call to specialized version of > the callee. To devirtualize C++ calls it needs to be smarter, since > the argument is not a constant, but a pointer to a...
2013 Aug 20
2
[LLVMdev] Failure to optimize vector select
Hi, I've found a case I would expect would optimize easily, but it doesn't. A simple implementation of vector select: float4 simple_select(float4 a, float4 b, int4 c) { float4 result; result.x = c.x ? a.x : b.x; result.y = c.y ? a.y : b.y; result.z = c.z ? a.z : b.z; result.w = c.w ? a.w : b.w; return result; } I would expect this would be optimized to %bool