search for: blockaddr

Displaying 11 results from an estimated 11 matches for "blockaddr".

2011 Aug 02
0
[LLVMdev] Multiple successors, single dynamic successor
...way to > express such relationships in LLVM IR ("best" in the sense of allowing > other optimizations to run effectively)? Bear in mind that in this > example N=2, but it may be way bigger than that. Just to clarify: I already figured out two ways to do it, i.e.: %0 = phi i8* [blockaddr(%succ0), %pred0], [blockaddr(%succ1), %pred1], ... ... indirectbr %0, [%succ0, %succ1, ...] or %0 = phi i8 [0, %pred0], [1, %pred1], ... ... switch %0, undef, [0, %succ0], [1, %succ1], ... what I'd like to know is which one do you think is better (and why) or if there are better ways I did...
2011 Aug 02
3
[LLVMdev] Multiple successors, single dynamic successor
Nella citazione martedì 2 agosto 2011 20:02:08, Michael Ilseman ha scritto: > I'm assuming that you're talking about a situation where this can't be > determined statically in the existing LLVM IR, but you know it's true > and want to put it in (e.g. you're the one generating LLVM IR). Correct. Or, more precisely, I'd like to investigate macro compression, i.e.
2011 Jul 08
0
[LLVMdev] Missed optimization with indirectbr terminator
...pecific successor. The only way to split an >> indirect goto is to insert code before the jump which checks for a >> specific destination address. This is very likely to be a pessimization. > Do you mean like turning a indirectbr %addr, [%a, %b, ...] > into a switch %addr, undef, [blockaddr(%a), %a], [blo > ckaddr(%b), %b], ... > ? (I know that the switch doesn't accept a pointer as first argument, it's just an example) That difference is relevant, though, because there's no way to implement such a switch except as a series of pointer comparisons (or at least offset...
2011 Jul 08
4
[LLVMdev] Missed optimization with indirectbr terminator
...ock to go to a specific successor. The only way to split an > indirect goto is to insert code before the jump which checks for a > specific destination address. This is very likely to be a pessimization. Do you mean like turning a indirectbr %addr, [%a, %b, ...] into a switch %addr, undef, [blockaddr(%a), %a], [blo ckaddr(%b), %b], ... ? (I know that the switch doesn't accept a pointer as first argument, it's just an example) > To answer your original question, the current implementation design > for indirect goto is intentionally based around having a single block > that ter...
2013 Apr 24
0
[LLVMdev] [PATCH] with no response: Bug 13163 - BlockAddress instruction with use from the global context is damaged during module link
On Apr 17, 2013, at 7:26 PM, Yuri <yuri at rawbw.com> wrote: > On 10/02/2012 13:01, Duncan Sands wrote: >> >> I think Chris is the right person to look at this, hopefully he will. > > Now 5 months passed. I updated the patch for this current revision. > Can anybody review this and check in please? > > http://llvm.org/bugs/show_bug.cgi?id=13163 >
2013 Apr 18
3
[LLVMdev] [PATCH] with no response: Bug 13163 - BlockAddress instruction with use from the global context is damaged during module link
On 10/02/2012 13:01, Duncan Sands wrote: > > I think Chris is the right person to look at this, hopefully he will. Now 5 months passed. I updated the patch for this current revision. Can anybody review this and check in please? http://llvm.org/bugs/show_bug.cgi?id=13163 Yuri
2011 Jul 07
0
[LLVMdev] Missed optimization with indirectbr terminator
On Jul 7, 2011, at 4:33 AM, Carlo Alberto Ferraris wrote: > Il 07/07/2011 11:14, Cameron Zwarich ha scritto: >> >> I haven't read the code in detail, but it looks like JumpThreading at least attempts to thread across indirect branches. You can either try to fix it or file a bug with your test case. > In the source it says "If the predecessor is an indirect goto, we
2011 Mar 14
0
[LLVMdev] LLVM 2.9 RC1 Pre-release Tarballs
...ps/2008-07-05-ByVal.ll LLVM :: CodeGen/Mips/2008-07-15-SmallSection.ll LLVM :: CodeGen/Mips/2008-08-03-ReturnDouble.ll LLVM :: CodeGen/Mips/2008-10-13-LegalizerBug.ll LLVM :: CodeGen/Mips/2008-11-10-xint_to_fp.ll LLVM :: CodeGen/Mips/2010-07-20-Switch.ll LLVM :: CodeGen/Mips/blockaddr.ll LLVM :: CodeGen/Mips/cmov.ll LLVM :: CodeGen/Mips/divrem.ll LLVM :: CodeGen/Mips/private.ll LLVM :: CodeGen/SPARC/2007-07-05-LiveIntervalAssert.ll LLVM :: CodeGen/SPARC/2009-08-28-PIC.ll LLVM :: CodeGen/SPARC/2011-01-11-CC.ll LLVM :: CodeGen/SPARC/2011-01-19-DelaySlot...
2011 Jul 07
2
[LLVMdev] Missed optimization with indirectbr terminator
Il 07/07/2011 11:14, Cameron Zwarich ha scritto: > I haven't read the code in detail, but it looks like JumpThreading at > least attempts to thread across indirect branches. You can either try > to fix it or file a bug with your test case. In the source it says "If the predecessor is an indirect goto, we can't split the edge.
2011 Mar 09
5
[LLVMdev] LLVM 2.9 RC1 Pre-release Tarballs
There are LLVM 2.9 RC1 pre-release tarballs source available. You can find them here: http://llvm.org/pre-releases/2.9/ Please download them, build them, and compile things to your heart's content. And most importantly file a bunch of bug reports. :-) Share and enjoy! -bw
2015 May 15
3
[LLVMdev] MIPS asm backend emitting weird symbols into object file?
I'm cross-compiling for MIPS. The test-case is as simple as it can be: void foo() {} $clang -target mips64-octeon-linux -c -B path/to/cross/compiled/mips/assembler a.c And then I look at the object file: $ nm a.o 0000000000000020 t $tmp0 0000000000000000 T foo I would like to know what "$tmp0" is. Furthermore, if I pass -g to clang, I see a whole bunch of such symbols. Some of