Displaying 20 results from an estimated 10000 matches similar to: "[LLVMdev] alloca on Win32"
2007 Jun 24
1
[LLVMdev] alloca on Win32
The alloca hook is in lib\System\Win32\DynamicLibrary.inc all the way at the
bottom. You'll see a __MING32__ #ifdef around the definition. You just have
to implement those methods and it'll work just fine.
Jake
On 6/24/07, Scott Graham <scott.llvm at h4ck3r.net> wrote:
>
> Hi
>
> Thanks for the info, it led to the source of the error I was having.
>
> I was using
2007 Jun 24
0
[LLVMdev] alloca on Win32
Hi
Thanks for the info, it led to the source of the error I was having.
I was using llvm-gcc binaries (built with mingw I guess) to compile a .c
file that is my language runtime, llvm-link'ing that with my frontend's .ll,
and using an vcpp-built lli to run the resulting bytecode. This caused the
special case in X86RegisterInfo::emitPrologue for "main" to try to align the
stack
2007 Jun 24
5
[LLVMdev] alloca on Win32
Hello, Scott.
> Checking the assembly from llc, the first alloca call is to allocate
> local vars in _main. Is this just the state of the code at 2.0 when
> built with vs.net, or is there something that I've managed to
> mis-build locally?
_alloca is used to probe the stack, if you asks for locals of size more
that 4k. This is pretty ugly, but the names of this functions differs
2007 Jun 25
2
[LLVMdev] alloca on Win32
Hello, Chuck.
> "Error, Program used external function _alloca which could not be resolved!"
I think the problem is the same. But... Cygwin is handled separately,
because it's really more unix-like, that e.g. mingw32. Even more, it
uses "unix" variant of libSystem. Probably you have to introduce the
same hook (as for mingw32 / vcpp) there.
--
With best regards, Anton
2008 Jul 23
2
[LLVMdev] customized output of double load/store on ppc32
Hi
For .LL like:
define void @Func()
{
%var1 = alloca double
store double 0x40bb580000000000, double* %var1
ret void
}
ppc32 output is:
...
lis 3, 16571
ori 3, 3, 22528
li 4, 0
stw 3, 8(1)
stw 4, 12(1)
...
I'm using the PPC backend's output as the "bytecode" for an interpreter
that I would like to be able to run
2007 Jun 24
0
[LLVMdev] alloca on Win32
Hello, Scott.
> Is that generally dangerous, or should it be OK?
Well, in general, it's dangerous, because you should probe the stack on
windows, if you'll allocate more than 4k. This is needed to let guard
pages be allocated in proper order.
So, you can see random crashes here and there now :) For example: try to
allocate big array (>4k of size) and touch its last element (this
2008 Jul 24
2
[LLVMdev] customized output of double load/store on ppc32
On Wed, Jul 23, 2008 at 4:46 PM, Eli Friedman <eli.friedman at gmail.com> wrote:
> On Wed, Jul 23, 2008 at 4:23 PM, Scott Graham <scott.llvm at h4ck3r.net> wrote:
>> I'm using the PPC backend's output as the "bytecode" for an interpreter
>> that I would like to be able to run on both little- and big-endian
>> platforms. The split stw's mean
2008 Aug 12
4
[LLVMdev] CLR or C++/CLI interface to IR building API
Hi
Our front end is written in a CLR language, and we're currently
interacting with the middle/back-end by writing out .ll files. This
was convenient to get started with, but they're getting to a "huge and
unwieldy" stage now.
I was wondering if anyone's attempted writing proxy/wrapper C++/CLI
classes so that the IR API can be used directly from managed
languages. Any
2008 Oct 27
2
[LLVMdev] maintaining names for types
Hi
I'm working on switching from generating textual .ll files in my front
end to using the llvm-c IR builder API instead.
One thing that I really miss is that when I dump() to a .ll file for
debugging, the type names are worse than useless, because many types
have been merged with unrelated types that happen to have the same
shape. This becomes very confusing when trying to map back to the
2008 Sep 08
3
[LLVMdev] Problems when refining type
Hi
I'm using the llvm-c wrapper, and trying to build some recursive types
(using released 2.3).
I get an assert on trying to create a second opaque pointer type after
refining a first.
The first time through creating an opaque pointer type, a new type is
created and returned from PointerType::get, but the second time,
ValueType (the opaque type) is found in the PointerTypes map, which
seems
2013 Nov 27
2
non-standard alloca.h
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
AFAIK, alloca.h is not POSIX. Here's a patch that includes alloca.h
only when it's really there.
It also includes malloc.h, which is where mingw-w64 defines the
alloca() macro, mapping it to gcc __builtin_alloca() or to msvcrt
_alloca().
- --
O< ascii ribbon - stop html email! - www.asciiribbon.org
-----BEGIN PGP SIGNATURE-----
Version:
2008 Jul 23
0
[LLVMdev] customized output of double load/store on ppc32
On Wed, Jul 23, 2008 at 4:23 PM, Scott Graham <scott.llvm at h4ck3r.net> wrote:
> I'm using the PPC backend's output as the "bytecode" for an interpreter
> that I would like to be able to run on both little- and big-endian
> platforms. The split stw's mean that i32s of the f64 are swapped in
> memory on little-endian (thus foiling native-code interop).
2008 Aug 13
0
[LLVMdev] CLR or C++/CLI interface to IR building API
Take a look at this page. It might give you more information:
http://vmkit.llvm.org/
-bw
On Tue, Aug 12, 2008 at 4:38 PM, Scott Graham <scott.llvm at h4ck3r.net> wrote:
> Hi
>
> Our front end is written in a CLR language, and we're currently
> interacting with the middle/back-end by writing out .ll files. This
> was convenient to get started with, but they're
2008 Sep 19
2
[LLVMdev] non-signed integer Type
Hi
Is there any rationale written down for why integer types don't carry
(perhaps optional) signs somewhere? I feel like I might have read it
somewhere before (and I see that it used to exist pre 2.0), but I
can't find anything now.
Relatedly, is there a reasonable way to attach user-data to a type or
something? It feels very cumbersome to have to wrap all values and
types in my front
2008 Oct 29
0
[LLVMdev] maintaining names for types
I run into this problem as well. However, given the way LLVM represents
types and their names, there is not an easy solution to this problem. I
don't know of any real workaround that will not change the semantics of the
code.
- Daniel
On Mon, Oct 27, 2008 at 4:42 PM, Scott Graham <scott.llvm at h4ck3r.net> wrote:
> Hi
>
> I'm working on switching from generating textual
2008 Jun 05
1
[LLVMdev] lli/JIT missing libgcc symbols on Mingw32/x86
Hello,
I have a bytecode doing 64 bits division and on Mingw32/x86, lli
complains it cannot resolve __udivdi3 when running it.
Those symbols are all part of libgcc and all present in lli, but they
cannot be found by SearchForAddressOfSymbol (not in any DLL). To
workaround that, I explicitely define them in Win32/DynamicLibrary.inc
if the current target is Mingw32 (patch attached).
Anybody had
2014 Sep 29
2
[LLVMdev] Windows Installer
Your install dir has a whitespace. Have you tried quoting? e.g.
<LLVMInstallDir>"C:\Program
Files (x86)\LLVM"</LLVMInstallDir>
Best regards,
Rafael Auler
On Mon, Sep 29, 2014 at 7:38 PM, Eric Mader <emader at gmx.us> wrote:
> I changed tooset-vs2013.props to this:
>
> <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
>
2014 Sep 30
2
[LLVMdev] Windows Installer
I replaced all instances of "$(Platform)" with "x64" for the x64 .props
file and it still fails, so it looks like that guess was wrong as well.
Regards,
Eric
On 9/29/14, 2:11 PM, Eric Mader wrote:
> Quoting doesn't seem to make a difference. Strangely, the Win32
> toolset seems to work. (Where "work" means that clang runs and
> produces a bunch of
2014 Sep 29
2
[LLVMdev] Windows Installer
Open the file toolset-vs2013.props and you'll understand what's happening
and where the path is set. It tries to fetch the LLVM installation path
from the Windows registry. Just fix this (maybe editing your registry or
editing the .props file, whatever suits you best).
On Mon, Sep 29, 2014 at 5:33 PM, Eric Mader <emader at gmx.us> wrote:
> I copied the x64 toolsets by hand and
2014 Oct 01
2
[LLVMdev] size_t?
We inject a typedef for size_t here:
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/Sema.cpp?revision=218230&view=markup#l206
The typedef type is determined by calling getSizeType().
SizeType is (relevantly) calculated in two places:
X86_64
http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Basic/Targets.cpp?revision=218666&view=markup#l3512
X86_32