search for: hvdspek

Displaying 9 results from an estimated 9 matches for "hvdspek".

2009 May 29
1
[LLVMdev] DSA nodes do not get merged
...malloc(sizeof(list)); Result->X = 1; Result->Next = malloc(sizeof(list)); Result = Result->Next; Result->X = 2; Result->Next = 0; } int main() { MakeList(); return 0; } --------- You can view the corresponding DSGraph here: http://www.liacs.nl/~hvdspek/images/dsgraph_1node.png The following code produces 2 DSNodes: ------------- typedef struct list { int X; struct list *Next; } list; void MakeList() { list *Result = malloc(sizeof(list)); Result->X = 1; Result->Next = malloc(sizeof(list)); Result->Ne...
2009 Nov 20
1
[LLVMdev] getExitBlocks returns duplicates in result vector
Hi, LoopBase::getExitBlocks in LoopInfo.h returns all exit basic blocks by iterating over all blocks of a loop and storing all branch targets that are outside the loop. This method allows for duplicates in the result vector, e.g.: Loop at depth 2 containing: %bb2<header><exit>,%bb1<latch>,%bb3<exit> where both bb2 and bb3 have bb4 as their exit block. This loop
2010 Mar 17
1
[LLVMdev] Getting the DSNode from a Pool Descriptor?
Depending on the value of dsa_pass_to_use, either EquivBUDataStructures or EQTDDataStructures is used. In the case that the top-down DSA is used, information is pushed down to nodes in callees. However, if bottom-up DSA is used, information has only been merged upwards and the nodes are not necessarily equivalent. Harmen Andrew Lenharth wrote: > On Tue, Mar 16, 2010 at 3:46 PM, Patrick
2010 Mar 19
0
[LLVMdev] Getting the DSNode from a Pool Descriptor?
Hi Patrick, That's right. DSNodes are coupled to the original function. For function clones, you first need to get the original function, and then use the DSNode from that function. FuncInfo contains the information if a function is a clone and what the original function is. If you want to find the corresponding DSNode for some instruction, you must call PA::FuncInfo::MapValueToOriginal(
2010 Mar 19
3
[LLVMdev] Getting the DSNode from a Pool Descriptor?
Harmen, your suggestion of inverting the mapping almost worked (and Andrew was correct that the function I need is the same as the one in which poolinit appears). Unfortunately, it appears that this mapping only considers the original function and not any of its clones. Since the pool descriptor in question may very well only exist in a clone, I can't use this. Is there another way?
2009 Nov 13
1
[LLVMdev] Poolalloc asserts when passing in pool descriptors
Hi, The poolalloc library fails in TransformFunctionBody.cpp, line 746 --- Value *ArgVal = ConstantAggregateZero::get(PoolAllocate::PoolDescPtrTy); --- opt -load /path_to_lib/libpoolalloc.dylib -poolalloc constaggr.bc -o opt.bc -f triggers the problem (bc file attached). Assertion failed: ((isa<StructType>(Ty) || isa<ArrayType>(Ty) || isa<VectorType>(Ty)) &&
2009 Mar 20
2
[LLVMdev] Garbage collection: Multiple copies of a root
Hi, As far as I understand now, only stack variables can be marked as gc roots. Our compiler however can also generate roots that are not necessarily on the stack. We can solve this by putting it on the stack anyway. So far so good. The problem is that we want to implement some sort of copying garbage collector. In this case, the roots on the stack must be updated. However, if this root
2010 Mar 17
0
[LLVMdev] Getting the DSNode from a Pool Descriptor?
You might want to have a look at PoolAllocate.h. Per function, a PA::FuncInfo structure keeps track of all DSNodes that should be pool allocated. ArgNodes contains pool arguments, NodesToPA contains nodes that are locally pool allocated and thus initialized using poolinit. PoolDescriptors contains a mapping from DSNodes to pool descriptors, and you could easily invert this mapping. Finding a
2009 Nov 20
0
[LLVMdev] llvm code working on linux but not mac, 64 bit problem?
It runs fine on my Snow Leopard installation. I do recall though that LLVM did not build in 64-bit mode automatically. I configured LLVM as follows to get a 64-bit build. ./configure --build=x86_64-apple-darwin10 --host=x86_64-apple-darwin10 --target=x86_64-apple-darwin1 Harmen Tommy Chheng wrote: > Hi, > Learning the ropes of LLVM. I have this simple LLVM assembly snippet > which