Displaying 20 results from an estimated 500 matches similar to: "[LLVMdev] "Splitting" live values"
2011 Jun 14
0
[LLVMdev] "Splitting" live values
Il 14/06/2011 18:17, Carlo Alberto Ferraris ha scritto:
> Suppose I have in my CFG (among others) two basic blocks A and B, with
> an edge from A to B. I need to do the following:
>
> * get the set S of live values across that edge
>
I forgot to add that it doesn't have to be exactely the set of live
values: it can also be an overapproximation, i.e. S might contain also
2011 Jun 15
1
[LLVMdev] "Splitting" live values
From the fact that nobody is replying I guess there's no easy way to do
what I asked.
Can you just confirm then that the following is a meaningful way to do it?
* D_b <- set of dominators of BB b
* S_b <- set containing b and its successors (optional)
* VD_b <- set of the values defined in D_b
* VS_b <- set of the values with uses in S_b (optional)
* LV_b
2011 Mar 31
3
[LLVMdev] LiveValues removal
I've read that LiveValues has been removed from trunk. Did it bitrot or
was simply removed because a replacement is available?
If it's the former, what caused the bitrotting? If it's the latter,
what's the replacement? (I've found LiveVariables but I'm not sure it
can be used in a ModulePass).
b.r.
--
Carlo Alberto Ferraris <cafxx at strayorange.com
<mailto:cafxx
2011 Mar 31
0
[LLVMdev] LiveValues removal
LiveVariables is the optimized and tested way to get variable liveness
information (it's used by register allocation). Unfortunately it
requires a MachineFunction to work - so you'll either need to lower to
one of the built-in targets or add your own target to acquire access to
this pass.
Andrew
On 03/31/2011 12:28 PM, Carlo Alberto Ferraris wrote:
> I've read that LiveValues
2011 Jun 24
2
[LLVMdev] Missing symbols in pass stack trace
> Try building with "make VERBOSE=1", which will show you the
> command-lines passed to the compiler/linker. Post the output here.
there you go:
> cafxx at ubuntu:~/Projects/llvm2/lib/Transforms/cgf$ make VERBOSE=1
> llvm[0]: Compiling CGFPass.cpp for Debug+Asserts build (PIC)
> if g++ -I/home/cafxx/Projects/llvm2/include
>
2011 Jun 24
4
[LLVMdev] Missing symbols in pass stack trace
> That's a weird one. Does addr2line work?
> $ addr2line -e CGF.so <address>
cafxx at ubuntu:~/Projects/llvm2/Debug+Asserts/bin$ objdump -t
../lib/CGF.so | grep flatten
0000000000005622 l F .text 0000000000000aa6
_ZN12_GLOBAL__N_111CGFFunction7flattenEv
00000000000041d6 l F .text 000000000000049c
_ZN12_GLOBAL__N_111CGFCallSite7flattenEv
2011 Jun 24
2
[LLVMdev] Missing symbols in pass stack trace
> Looks like your shared library is not being compiled with symbols.
> Did you verify that your sources are compiled with -g?
I think so, this is the makefile (based on the one in the Hello pass):
> LEVEL = ../../..
> LIBRARYNAME = CGF
> LOADABLE_MODULE = 1
> USEDLIBS =
>
> ifneq ($(REQUIRES_RTTI), 1)
> ifneq ($(REQUIRES_EH), 1)
> EXPORTED_SYMBOL_FILE =
2011 Jun 24
2
[LLVMdev] Missing symbols in pass stack trace
> Are you loading the shared library directly from the build directory,
> or are you installing it first?
I'm invoking it directly, I guess:./opt -load=CGF.so -cgf -debug test.S
should I install it? (I have no idea about how to do it, though...)
> If you run "file CGF.so" on the file you actually load, does it say it
> is stripped or non-stripped?
cafxx at
2011 Jul 31
3
[LLVMdev] SwitchInst::addCase with BlockAddress
I'm trying to figure out how to feed a blockaddress to a switch
condition AND destination (basically emulating an indirectbr via a
switch; I know it's not a good approach, I'm just experimenting).
Suppose I have the following:
SwitchInst *s = SwitchInst::Create(...);
BasicBlock *bb = ...;
PtrToIntInst k = new PtrToIntInst(BlockAddress::get(bb), <TYPE>, "", s);
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 07
3
[LLVMdev] Missed optimization with indirectbr terminator
Consider this IR fragment produced after -O3:
> %7:
> %8 = phi i8* [ blockaddress(@0, %19), %19 ], [ %12, %11 ]
> %9 = phi i32 [ %20, %19 ], [ 0, %11 ]
> indirectbr i8* %8, [label %4, label %19]
>
> %19:
> %20 = add nsw i32 %9, 1
> %21 = icmp eq i32 %9, 9999
> br i1 %21, label %16, label %7
the br in %19 should be optimized to branch directly to itself rather
than going
2011 Aug 02
2
[LLVMdev] Multiple successors, single dynamic successor
Suppose I have a bb with N predecessors and N successors. What is, in
your opinion, the best way to express that the bb has (dynamically) only
one successor (i.e. if coming from the i-th predecessor we will always
jump to the i-th successor)?
b.r.,
--
Carlo Alberto Ferraris <cafxx at strayorange.com
<mailto:cafxx at strayorange.com>>
website/blog
2011 Jun 24
0
[LLVMdev] Missing symbols in pass stack trace
On Jun 24, 2011, at 10:49 AM, Carlo Alberto Ferraris wrote:
>
>> Try building with "make VERBOSE=1", which will show you the command-lines passed to the compiler/linker. Post the output here.
> there you go:
>> cafxx at ubuntu:~/Projects/llvm2/lib/Transforms/cgf$ make VERBOSE=1
>> llvm[0]: Compiling CGFPass.cpp for Debug+Asserts build (PIC)
>> if g++
2011 Jun 24
0
[LLVMdev] Missing symbols in pass stack trace
On Jun 24, 2011, at 10:34 AM, Carlo Alberto Ferraris wrote:
>
>> Looks like your shared library is not being compiled with symbols. Did you verify that your sources are compiled with -g?
> I think so, this is the makefile (based on the one in the Hello pass):
>> LEVEL = ../../..
>> LIBRARYNAME = CGF
>> LOADABLE_MODULE = 1
>> USEDLIBS =
>>
>>
2011 Jun 24
2
[LLVMdev] Missing symbols in pass stack trace
I'm working on a pass (both LLVM and the pass have been compiled in
debug+asserts mode) but when the pass crashes in the stack trace printed
by opt the names of the functions inside my pass don't appear (see
frames 14-16). How can I have them displayed?
> cafxx at ubuntu:~/Projects/llvm2/Debug+Asserts/bin$ clear && ./opt
> -load=CGF.so -cgf -debug test.S
> [...]
>
2011 Jun 24
0
[LLVMdev] Missing symbols in pass stack trace
On Jun 24, 2011, at 11:03 AM, Carlo Alberto Ferraris wrote:
>
>> Are you loading the shared library directly from the build directory, or are you installing it first?
> I'm invoking it directly, I guess: ./opt -load=CGF.so -cgf -debug test.S
> should I install it? (I have no idea about how to do it, though...)
>
>> If you run "file CGF.so" on the file
2011 Aug 02
0
[LLVMdev] Multiple successors, single dynamic successor
Nella citazione martedì 2 agosto 2011 22:01:13, Carlo Alberto Ferraris
ha scritto:
> My question is:
> what is the best 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
2011 Jun 24
0
[LLVMdev] Missing symbols in pass stack trace
On Jun 24, 2011, at 12:36 PM, Carlo Alberto Ferraris wrote:
>
>> That's a weird one. Does addr2line work?
>> $ addr2line -e CGF.so <address>
> cafxx at ubuntu:~/Projects/llvm2/Debug+Asserts/bin$ objdump -t ../lib/CGF.so | grep flatten
> 0000000000005622 l F .text 0000000000000aa6 _ZN12_GLOBAL__N_111CGFFunction7flattenEv
> 00000000000041d6 l
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 Jun 24
0
[LLVMdev] Missing symbols in pass stack trace
On Jun 24, 2011, at 10:14 AM, Carlo Alberto Ferraris wrote:
> I'm working on a pass (both LLVM and the pass have been compiled in debug+asserts mode) but when the pass crashes in the stack trace printed by opt the names of the functions inside my pass don't appear (see frames 14-16). How can I have them displayed?
>> cafxx at ubuntu:~/Projects/llvm2/Debug+Asserts/bin$ clear