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...