search for: ptrloc

Displaying 19 results from an estimated 19 matches for "ptrloc".

2010 Sep 20
1
Dynamic forking in Win32
...ht Wine might need the memory protections changed... No dice. A call to VirtualProtectEx then fails after adding it in... Any ideas on why this won't work in Wine? Here is some code where I added a lot of extra output for debugging... Code: static void doFork( EXE_FILE *exe, LPVOID ptrLoc, DWORD imageSize, char *target) { PROCESS_INFORMATION pi; CONTEXT ctx; PROCINFO childInfo; if (createChild(&pi, &ctx, &childInfo, target)) { LPVOID v = (LPVOID)NULL; DWORD r, old_protection = 0; MEMORY_BASIC_INFORMATION basic_info;...
2015 Mar 31
2
[LLVMdev] why is gc.root 8 bits?
...oot functionality to my code and I'm confused by why gcroot is assuming to be an i8** I'm using i32 as object and array pointers and if I make them i8 things seem to work. I'm generating IR much like http://llvm.org/docs/GarbageCollection.html#llvm-ir-features void @llvm.gcroot(i8** %ptrloc, i8* %metadata) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150331/e56a0aa2/attachment.html>
2017 Nov 01
2
llvm.gcroot trouble with non-i8* allocas
I'm allocating { i8*, i32 } on the stack, and would like to add this as a GC root, but I'm having trouble figuring this out. This works as expected: declare void @llvm.gcroot(i8** %ptrloc, i8* %metadata) define i8* @bar(i8* %x) gc "shadow-stack" { entry: %objptr = alloca i8* call void @llvm.gcroot(i8** %objptr, i8* null) store i8* %x, i8** %objptr %v = load i8*, i8** %objptr ret i8* %v } However, when I have this: define { i8*, i32 } @foo({ i8*, i32 } %x) gc &...
2011 Nov 17
2
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...omMemory()) { > + for (AliasSetTracker::iterator i = writes.begin(), e = writes.end(); > + i != e; ++i) { > + for (AliasSet::iterator j = i->begin(), e2 = i->end(); > + j != e2; ++j) { > + AliasAnalysis::Location ptrLoc(j->getValue(), j->getSize(), > + j->getTBAAInfo()); > + if (AA.getModRefInfo(J, ptrLoc) != AliasAnalysis::NoModRef) { > + usesI = true; break; One instruction per line. > + } > + } > + if (uses...
2006 Feb 27
4
[LLVMdev] Garbage collection questions
...ing written 2. The current semispace collector includes some code which says it should be in a code-generator library. If I were to write a collector, should I also include this code for the time being? Or will this soon be refactored into an external interface? 3. void %llvm.gcroot(<ty>** %ptrloc, <ty2>* %metadata) I don't see an implementation of the llvm.gcroot intrinsic in the semispace collector, so is it implemented elsewhere? Semispace has a function with the same signature, but it's not in the public GC interface ( http://llvm.cs.uiuc.edu/cvsweb/cvsweb.cgi/llvm/runtime...
2017 Nov 01
0
llvm.gcroot trouble with non-i8* allocas
...17 at 11:59 AM, Nikodemus Siivola < nikodemus at random-state.net> wrote: > I'm allocating { i8*, i32 } on the stack, and would like to add this as a > GC root, but I'm having trouble figuring this out. > > This works as expected: > > declare void @llvm.gcroot(i8** %ptrloc, i8* %metadata) > > define i8* @bar(i8* %x) gc "shadow-stack" { > entry: > %objptr = alloca i8* > call void @llvm.gcroot(i8** %objptr, i8* null) > store i8* %x, i8** %objptr > %v = load i8*, i8** %objptr > ret i8* %v > } > > However, when I have...
2011 Nov 21
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...for (AliasSetTracker::iterator i = writes.begin(), e = writes.end(); > > + i != e; ++i) { > > + for (AliasSet::iterator j = i->begin(), e2 = i->end(); > > + j != e2; ++j) { > > + AliasAnalysis::Location ptrLoc(j->getValue(), j->getSize(), > > + j->getTBAAInfo()); > > + if (AA.getModRefInfo(J, ptrLoc) != AliasAnalysis::NoModRef) { > > + usesI = true; break; > One instruction per line. > > > + } > > +...
2006 Feb 27
0
[LLVMdev] Garbage collection questions
...ing written 2. The current semispace collector includes some code which says it should be in a code-generator library. If I were to write a collector, should I also include this code for the time being? Or will this soon be refactored into an external interface? 3. void %llvm.gcroot(<ty>** %ptrloc, <ty2>* %metadata) I don't see an implementation of the llvm.gcroot intrinsic in the semispace collector, so is it implemented elsewhere? Semispace has a function with the same signature, but it's not in the public GC interface ( http://llvm.cs.uiuc.edu/cvsweb/cvsweb.cgi/llvm/runtime...
2011 Nov 16
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
Tobias, et al., Attached is the my autovectorization pass. I've fixed a bug that appears when using -bb-vectorize-aligned-only, fixed some 80-col violations, etc., and at least on x86_64, all test cases pass except for a few; and all of these failures look like instruction-selection bugs. For example: MultiSource/Applications/ClamAV - fails to compile shared_sha256.c with an error: error in
2006 Feb 27
0
[LLVMdev] Garbage collection questions
...ector, > should I also include this code for the time being? Yes, I would suggest including it. > Or will this soon be refactored into an external interface? Right now, noone is pushing the GC interfaces forward. Contributions to help are welcome! > 3. void %llvm.gcroot(<ty>** %ptrloc, <ty2>* %metadata) > > I don't see an implementation of the llvm.gcroot intrinsic in the > semispace collector, so is it implemented elsewhere? Semispace has a > function with the same signature, but it's not in the public GC > interface ( http://llvm.cs.uiuc.edu/cvsweb...
2011 Nov 15
3
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
Tobias, I've attached the latest version of my autovectorization patch. I was able to add support for using the ScalarEvolution analysis for load/store pairing (thanks for your help!). This led to a modest performance increase and a modest compile-time increase. This version also has a cutoff as you suggested (although the default value is set high (4000 instructions between pairs) because
2004 Oct 29
0
[LLVMdev] Getting started with GC
On Thu, 28 Oct 2004, Tom Brown wrote: > We have a few questions about the current state of GC. Ok. :) > We decided to start (and finish?) our work by finishing SemiSpace. Sounds good. > process_pointer is meant to move objects from CurSpace to OtherSpace. > How can it find pointers to a moved object? This is entirely up to you, as you're basically implementing the semispace
2004 Oct 28
2
[LLVMdev] Getting started with GC
We have a few questions about the current state of GC. We decided to start (and finish?) our work by finishing SemiSpace. process_pointer is meant to move objects from CurSpace to OtherSpace. How can it find pointers to a moved object? How does it know the size of each object? Assuming we are writing a GC that will only work from llvm assembly our best option seems to be forcing the assembly code
2011 Dec 02
5
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...for (AliasSetTracker::iterator W = WriteSet.begin(), Use a new line for this 'for'. > + WE = WriteSet.end(); W != WE; ++W) { > + for (AliasSet::iterator A = W->begin(), AE = W->end(); > + A != AE; ++A) { > + AliasAnalysis::Location ptrLoc(A->getValue(), A->getSize(), > + A->getTBAAInfo()); Align this argument with the first argument. AliasAnalysis::Location ptrLoc(A->getValue(), A->getSize(), A->getTBAAInfo()); > + if (AA.getModRefInfo(J, ptrLoc) != AliasAnalys...
2011 Dec 14
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...W = WriteSet.begin(), > Use a new line for this 'for'. > > > + WE = WriteSet.end(); W != WE; ++W) { > > + for (AliasSet::iterator A = W->begin(), AE = W->end(); > > + A != AE; ++A) { > > + AliasAnalysis::Location ptrLoc(A->getValue(), A->getSize(), > > + A->getTBAAInfo()); > Align this argument with the first argument. > > AliasAnalysis::Location ptrLoc(A->getValue(), A->getSize(), > A->getTBAAInfo()); > > > + if (AA.getM...
2011 Nov 23
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Mon, 2011-11-21 at 21:22 -0600, Hal Finkel wrote: > On Mon, 2011-11-21 at 11:55 -0600, Hal Finkel wrote: > > Tobias, > > > > I've attached an updated patch. It contains a few bug fixes and many > > (refactoring and coding-convention) changes inspired by your comments. > > > > I'm currently trying to fix the bug responsible for causing a compile
2011 Dec 02
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...W = WriteSet.begin(), > Use a new line for this 'for'. > > > + WE = WriteSet.end(); W != WE; ++W) { > > + for (AliasSet::iterator A = W->begin(), AE = W->end(); > > + A != AE; ++A) { > > + AliasAnalysis::Location ptrLoc(A->getValue(), A->getSize(), > > + A->getTBAAInfo()); > Align this argument with the first argument. > > AliasAnalysis::Location ptrLoc(A->getValue(), A->getSize(), > A->getTBAAInfo()); > > > + if (AA.getM...
2011 Nov 22
5
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Mon, 2011-11-21 at 11:55 -0600, Hal Finkel wrote: > Tobias, > > I've attached an updated patch. It contains a few bug fixes and many > (refactoring and coding-convention) changes inspired by your comments. > > I'm currently trying to fix the bug responsible for causing a compile > failure when compiling >
2014 Mar 07
3
[LLVMdev] [RFC] Add second "failure" AtomicOrdering to cmpxchg instruction
...e'? TypeAndValue ',' TypeAndValue ',' TypeAndValue -/// 'singlethread'? AtomicOrdering +/// 'singlethread'? AtomicOrdering AtomicOrdering int LLParser::ParseCmpXchg(Instruction *&Inst, PerFunctionState &PFS) { Value *Ptr, *Cmp, *New; LocTy PtrLoc, CmpLoc, NewLoc; bool AteExtraComma = false; - AtomicOrdering Ordering = NotAtomic; + AtomicOrdering SuccessOrdering = NotAtomic; + AtomicOrdering FailureOrdering = NotAtomic; SynchronizationScope Scope = CrossThread; bool isVolatile = false; @@ -4214,11 +4223,16 @@ int LLParser::Pars...