search for: typetag

Displaying 5 results from an estimated 5 matches for "typetag".

Did you mean: typeflag
2004 Aug 18
2
[LLVMdev] process_root.
...c (I've implemented a small collector, hopefully :). The fault occurs when I do: printf("process_root[0x%p] = 0x%p\n", (void*) Root, (void*) *Root); I.e, when I reference Root. My frontend creates llvm assembly with llvm-gcroot in the following manner: ... %r22 = alloca uint ;; typetagged integers/pointers %r23 = cast uint* %r22 to sbyte** call void %llvm.gcroot(sbyte** %r23, sbyte* null) ... So Root should be a valid pointer to the program stack. It traces two roots before the segmentation fault. Any ideas? Btw, can I run llvm-db with llvm assembly as source language? Have...
2004 Jul 19
0
[LLVMdev] GC questions.
...moved from stack to registers? I'm thinking along the lines, that should one not use llvm.gcroot on all SSA-variables that contains pointers to objects, and then depending on if the variables end up on the stack, or in registers, the compiler will use llvm.gcroot? All my objects are currently typetagged uint's. My llvm scheme code in the compiler explains this I think: (llvm-define (make-number x) (bit-shl x 2)) (llvm-define (raw-number x) (bit-shr x 2)) (llvm-define (clear-tag x) (bit-shl (bit-shr x 2) 2)) (llvm-define (get-tag x) (bit-and x 3)) (llvm-define (make...
2004 Jul 17
3
[LLVMdev] Scheme compiler.
On Sat, 17 Jul 2004, Chris Lattner wrote: > > http://www.ida.liu.se/~tobnu/scheme2llvm/ > > Looks great! > > > (what's a blurb? :) > > Just a summary, so that I can add an entry to this page: > http://llvm.cs.uiuc.edu/ProjectsWithLLVM/ Maybe this for now: "This is a small self applicable scheme compiler for LLVM. The code is quite similar to the code in
2004 Aug 18
0
[LLVMdev] process_root.
...id*) *Root); > > I.e, when I reference Root. I don't know what "Root" is but possibly the %p substitution with "*Root" isn't valid. > My frontend creates llvm assembly with llvm-gcroot in the following > manner: > > ... > %r22 = alloca uint ;; typetagged integers/pointers > %r23 = cast uint* %r22 to sbyte** > call void %llvm.gcroot(sbyte** %r23, sbyte* null) > ... > > So Root should be a valid pointer to the program stack. It traces two > roots before the segmentation fault. Well, Root may be valid, but combining "%p&...
2004 Jul 19
2
[LLVMdev] GC questions.
...r front-end is telling the code generator and optimizer what locations can be modified unpredictably at runtime by the GC system. Right now we do not have many clients of the gc interfaces, so they do not produce wonderful code, but this will change in time. :) > All my objects are currently typetagged uint's. My llvm scheme code in > the compiler explains this I think: I think that this should be fine. The GC interfaces are explicitly designed to be able to support list/scheme style type tagging like this, thought the current garbage collector is not fully implemented. -Chris >...