Displaying 20 results from an estimated 40000 matches similar to: "[LLVMdev] Windows x64 support"
2008 Oct 24
0
[LLVMdev] Windows x64 support
Hi Anton,
Thanks for the heads up. I've only encountered this bug though, and my
workaround fixes x64 for me. Could you maybe sum up the other remaining
issues?
Anyhow, is there any reason why my workaround is not fit for committing? It
works wonderfully for me and I see little reason to hold it back. Currently
I have to patch it every time I do an update.
Thanks,
Nicolas
-----Original
2009 Jul 09
2
[LLVMdev] Wrong encoding of movd on x64
Hi all,
I believe I've found a bug in the encoding of the movd instruction on x64.
Here's some IR code to reproduce it:
external global i8*, align 1 ; <i8**>:0 [#uses=1]
external global i8*, align 16 ; <i8**>:1 [#uses=1]
declare void @abort()
define internal void @2() {
%1 = load i8** @0, align 1 ; <i8*> [#uses=1]
%2 =
2008 Oct 23
1
[LLVMdev] Windows x64 support
Hi,
I'm using LLVM for JIT compilation of shaders for my ray tracer
(http://www.indigorenderer.com).
My primary development target is 32 bit and 64 bit Windows.
JIT compilation of shaders is working great for x86 code, but for x64
code LLVM doesn't really work, due to ABI incompatibilties in the form
of calling convention errors with x64 windows, I think.
Anyway, my questions are as
2008 Oct 23
1
[LLVMdev] Windows x64 support
Hi, Nicholas
> Anyway, my questions are as follows: Is x64 JIT on Windows supposed
to work currently?
No, I know at least 3 things preventing it from full ABI compliance.
> If not, is x64 JIT on Windows a LLVM development goal?
Yes.
> And if so, is there a time-line or roadmap for achieving such a goal?
Not yet, this will require some huge changes in generic CC handling
code. I hope,
2008 Feb 18
1
[LLVMdev] LLVM2.2 x64 JIT trouble on VStudio build
> The x86-64 one probably doesn't work for Winodws. That's likely the
> issue.
Well, x86-64 stub was never ported to intel assembler, I expect to see
32-bit one used on windows64.
In general, the whole windows64 support is missed mainly due to crazy
calling convetion invented by Microsoft. So, all calls from code being
JITed to external functions will be clearly broken (if they
2008 Feb 19
1
[LLVMdev] LLVM2.2 x64 JIT trouble on VStudio build
Hello, Chuck
> I've had a look at the stubs before and I think I'm circumventing them
> in the example program since I populate the table and compile the
> functions in the order so that things never need to be done lazily, but
> I'll look further.
Well, anyway stubs are definitely wrong from windows64 and this should
be fixed, otherwise funny stuff can happen from time to
2009 Jul 09
0
[LLVMdev] Wrong encoding of movd on x64
On Thu, Jul 9, 2009 at 8:44 AM, Nicolas Capens<nicolas at capens.net> wrote:
> I believe I’ve found a bug in the encoding of the movd instruction on x64.
> Here’s some IR code to reproduce it:
[snip
> Note the last movq. What was probably intended to be generated was “movd
> ecx, mm0”. LLVM mistakenly sets the ‘wide’ bit of the REX prefix to 1,
> turning movd into movq. Also,
2008 Feb 19
1
[LLVMdev] LLVM2.2 x64 JIT trouble on VStudio build
Hello, Chuck
> Would my life be made fantastically simpler if I were using a different
> calling convention for my callback functions on x64 running on Windows?
Yes, surely. You can still use 'normal' x86-64 CC if you don't want to
call any external functions from code being JITed. Also note a Win64
fixme in the X86CompilationCallback2 function, this can be your case. I
think
2008 May 08
7
[LLVMdev] Vector code
Hi all,
I'm trying to use LLVM to generate SIMD code at runtime (in particular Intel
SSE). But I'm having a bit of trouble understanding how to create even the
simplest function; adding two vectors of four single-precision
floating-point elements. I can get it to add the elements one at a time but
not using one vector instruction.
All help much appreciated!
Nicolas Capens
2008 Jul 14
5
[LLVMdev] Spilled variables using unaligned moves
Hi all,
It looks like vector spills don't use aligned moves even though the stack is
aligned. This seems like an optimization opportunity.
The attached replacement of fibonacci.cpp generates x86 code like this:
03A70010 push ebp
03A70011 mov ebp,esp
03A70013 and esp,0FFFFFFF0h
03A70019 sub esp,1A0h
...
03A7006C movups xmmword ptr
2008 Jul 14
0
[LLVMdev] Spilled variables using unaligned moves
This is on Windows / Cygwin? I think the dynamic stack pointer re-
alignment doesn't happen until post- register allocation.
Assuming there aren't other instructions between the prologue and the
first movups that mess up esp (there shouldn't), this is indeed a bug.
Please file a bug and attach a bc file. Thanks.
Evan
On Jul 14, 2008, at 7:43 AM, Nicolas Capens wrote:
> Hi
2008 Feb 18
1
[LLVMdev] LLVM2.2 x64 JIT trouble on VStudio build
Hello, Evan
> I am not sure if it has been tested on x86-64 Windows.
> Anton, do you know?
I don't think it was ever written (for vcpp). There is 32-bit stub only.
--
WBR, Anton Korobeynikov
2008 Jul 15
1
[LLVMdev] Spilled variables using unaligned moves
Hi Evan,
Could you maybe point me to the source files where this issue might
originate? I'd like to learn more about LLVM's innards but so far I've just
scraped the surface and I don't know where what phase of instruction
selection / register allocation / stack layout / etc. happens.
If I understand correctly this issue might be fixed by moving stack pointer
alignment
2008 Sep 25
3
[LLVMdev] mem2reg optimization
Hi Dave,
As an exercise I tried to fix this myself, and I think I have a working
patch (attached). My own tests are all working wonderfully, and at fantastic
performance!
I'm looking forward to your patch to see whether we used the same approach
or whether things could be improved further.
Anyway, I've re-profiled the code and found ComputeLiveInBlocks to be the
main hotspot now. Again
2011 Jul 26
5
Problem with upsmon on x64 Windows
Hello!
I try use NUT on some servers.
When i use this package on x64 Windows 2003 servers, upsmon hangs on with error:
Faulting application upsmon.exe, version 0.0.0.0, faulting module upsmon.exe, version 0.0.0.0, fault address 0x0000458f.
I try use another server, on 32-bit all is ok. Problem only on x64 platform (maybe in libusb)?
And no different - upsmon master or slave.
C:\Program Files
2008 May 23
3
[LLVMdev] Iterator issue in BranchFolder::RemoveBlocksWithHash?
Hi all,
I updated from 2.2 to the latest SVN head and I now get a debug assert in
BranchFolder::RemoveBlocksWithHash: "vector iterators incompatible". I'm
using Visual C++ 2005. I think this is the culprit code:
MergePotentials.erase(CurMPIter);
if (CurMPIter==B)
break;
The erase clears the _Mycont field (i.e. the iterator's container), while
the ==
2008 Sep 24
2
[LLVMdev] mem2reg optimization
Hi Dave,
Did that patch of yours ever make it into trunk? I can't seem to find any
related checkin for PromoteMemoryToRegister.cpp. I've been doing some extra
profiling lately and the RewriteSingleStoreAlloca function alone is taking a
whopping 63% of execution time.
Thanks!
Nicolas
-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
2008 Sep 24
0
[LLVMdev] mem2reg optimization
On Wednesday 24 September 2008 09:35, Nicolas Capens wrote:
> Hi Dave,
>
> Did that patch of yours ever make it into trunk? I can't seem to find any
> related checkin for PromoteMemoryToRegister.cpp. I've been doing some extra
> profiling lately and the RewriteSingleStoreAlloca function alone is taking
> a whopping 63% of execution time.
I will commit it today along with
2008 May 23
0
[LLVMdev] Iterator issue in BranchFolder::RemoveBlocksWithHash?
On May 23, 2008, at 4:10 AM, Nicolas Capens wrote:
> Hi all,
>
> I updated from 2.2 to the latest SVN head and I now get a debug
> assert in BranchFolder::RemoveBlocksWithHash: “vector iterators
> incompatible”. I’m using Visual C++ 2005. I think this is the
> culprit code:
>
> MergePotentials.erase(CurMPIter);
> if (CurMPIter==B)
> break;
>
2010 Sep 08
8
[LLVMdev] LLVM 2.8 and MMX
On Wed, Sep 8, 2010 at 12:35 AM, Nicolas Capens
<nicolas.capens at gmail.com> wrote:
> Hi Chris,
>
> It's not broken, but the performance is crippled.
>
> I noticed that the code still contains some MMX instructions, but several
> operations get expanded (apparently swizzling and such get expanded to a
> large number of byte moves).
I think some changes related to