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