Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] LLVM GHC Backend: Tables Next To Code"
2012 Feb 14
0
[LLVMdev] LLVM GHC Backend: Tables Next To Code
On Feb 13, 2012, at 6:49 AM, Sergiu Ivanov wrote:
> On behalf of GHC hackers, I would like to discuss the possibility of
> having a proper implementation of the tables-next-to-code optimisation
> in LLVM.
It would be great to have this. However, the design will be tricky. Is there anything that spells out how the TNTC optimization works at the actual machine instruction level? It
2012 Feb 14
3
[LLVMdev] LLVM GHC Backend: Tables Next To Code
Hmm writing a blog post about TNTC is beyond the time I have right now.
Here is some high level documentation of the layout of Heap objects in GHC:
http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/HeapObjects#InfoTables
With TNTC enabled we generate code for closures of this form:
.text
.align 8
.long Main_main1_srt-(Main_main1_info)+0
.long 0
.quad 4294967299
.quad 0
2012 Mar 13
3
[LLVMdev] LLVM GHC Backend: Tables Next To Code
Hi Chris,
One remaining question here is, if the GHC team tries some of these
alternative schemes and finds them unsatisfactory what is the LLVM
communities feeling in regards to extending LLVM IR to support
directly implementing TNTC? How do you envision this would look at the
IR level, how much work do you think it would be and most importantly
do you feel LLVM would be willing to accept
2012 Feb 15
2
[LLVMdev] LLVM GHC Backend: Tables Next To Code
On Feb 15, 2012, at 12:16 PM, Chris Lattner <clattner at apple.com> wrote:
>
> On Feb 14, 2012, at 10:30 AM, David Terei wrote:
>
>> Hmm writing a blog post about TNTC is beyond the time I have right now.
>
> Sure, understandable. I'm surprised someone else hasn't already :)
>
>> Here is some high level documentation of the layout of Heap objects
2012 Feb 15
0
[LLVMdev] LLVM GHC Backend: Tables Next To Code
> This is starting to look very similar to how ARM constant islands work, without the extra ugliness from how small the ARM immediate displacements are.
>
> -Jim
Would there be any reason that this couldn't be seen as an opportunity to move the constant islands pass out of the ARM backend and make the target-independent constant pools (which ARM bypasses completely) more generic?
2012 Feb 15
0
[LLVMdev] LLVM GHC Backend: Tables Next To Code
On Feb 14, 2012, at 10:30 AM, David Terei wrote:
> Hmm writing a blog post about TNTC is beyond the time I have right now.
Sure, understandable. I'm surprised someone else hasn't already :)
> Here is some high level documentation of the layout of Heap objects in GHC:
>
> http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Storage/HeapObjects#InfoTables
>
> With
2012 Mar 15
0
[LLVMdev] LLVM GHC Backend: Tables Next To Code
On Mar 13, 2012, at 4:36 PM, David Terei wrote:
> Hi Chris,
>
> One remaining question here is, if the GHC team tries some of these
> alternative schemes and finds them unsatisfactory what is the LLVM
> communities feeling in regards to extending LLVM IR to support
> directly implementing TNTC?
I'm strongly in favor of getting proper support for TNTC, because your
2011 Jul 01
2
[LLVMdev] Please review my patch to make GHC calling convention work on ARM
All,
I would like to submit the attached patch, which allows the GHC (Glasgow
Haskell Compiler) calling convention to work on ARM targets.
Could some nice person please review this code, so I can move towards
getting it committed?
I have thoroughly tested this patch again GHC on a Debian-ARM (armel)
system. Unfortunately my understanding of LLVM is limited, so it's
likely I'm not
2011 Jul 01
0
[LLVMdev] Please review my patch to make GHC calling convention work on ARM
Hi Steve,
I'm not an LLVM developer but am the author/maintainer of the LLVM
backend in GHC.
The patch looks mostly good to me (although I am not that familiar
with ARM so could easily have missed something). My main concern is
why are you avoiding using the R0 - R3 registers?
Also, could you please update me on the status of this work. I assume
you are getting GHC running in registerised
2016 Oct 21
3
Segfault in llc 3.8.0 building GHC
Hi all,
I'm hitting a segfault in llc when trying to build GHC:
http://sprunge.us/ZVGB. What is the best way to debug this? I'm able to
bump to 3.8.1 if needed, but GHC tends to break when updating major
versions due to IR incompatibilities.
Thanks,
Shea
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size:
2010 Mar 03
2
[LLVMdev] [PATCH] New calling convention for use by GHC
Hi all,
As previously mentioned on this list the Haskell compiler GHC has a new
LLVM based back-end. The back-end needs a new calling convention to
efficiently use LLVM and that is what this patch does, just for X86 at
the moment.
Breakdown:
1) Need actual calling convention
Touches:
- include/llvm/CallingConv.h
- lib/Target/X86/X86CallingConv.td
2) Handling new calling
2012 Jun 24
0
[LLVMdev] Request for merge: GHC/ARM calling convention.
Hi Karel,
I understand this patch has already been merged (to 3.0), so don't
take my question as stopping the merge to head, I'm just making sure I
got it right... The rest looks correct.
+ CCIfType<[v2f64], CCAssignToReg<[Q4, Q5]>>,
+ CCIfType<[f64], CCAssignToReg<[D8, D9, D10, D11]>>,
+ CCIfType<[f32], CCAssignToReg<[S16, S17, S18, S19, S20, S21, S22,
2011 Oct 18
2
[LLVMdev] Request for merge: GHC/ARM calling convention.
Hi David,
> Any word on this making 3.0?
3.0 already branched, and since this is not a regression, this will
most probably go into 3.1.
Maybe Bill (CC'ed) being the release manager has other opinion on this.
--
With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University
2010 Mar 03
0
[LLVMdev] [PATCH] New calling convention for use by GHC
On Mar 2, 2010, at 5:33 PM, David Terei wrote:
> Hi all,
>
> As previously mentioned on this list the Haskell compiler GHC has a new LLVM based back-end. The back-end needs a new calling convention to efficiently use LLVM and that is what this patch does, just for X86 at the moment.
Nice,
> The GHC developers would love to get this included in LLVM so that we don't need to
2010 Mar 07
1
[LLVMdev] [PATCH] New calling convention for use by GHC
OK, new patch attached. Hopefully in time for 2.7.
Chris Lattner wrote:
> 1) is the GHC calling conv intended to be target specific? If it is x86 specific, it should get an X86 prefix. If not, it should move up to be #10 after Cold.
No its intended to be supported on any platforms that GHC is supported
on, which is just x86 and SPARC at the moment. At the moment I've just
done X86, will
2011 Oct 14
0
[LLVMdev] Request for merge: GHC/ARM calling convention.
Hi Karel,
>>> > const unsigned*
>>> > ARMBaseRegisterInfo::getCalleeSavedRegs(const MachineFunction *MF)
>>> const {
>>> > + bool ghcCall = false;
>>> > +
>>> > + if (MF) {
>>> > + const Function *F = MF->getFunction();
>>> > + ghcCall = (F ? F->getCallingConv() == CallingConv::GHC : false);
2011 Oct 14
2
[LLVMdev] Request for merge: GHC/ARM calling convention.
Hi Duncan,
> const unsigned*
> ARMBaseRegisterInfo::getCalleeSavedRegs(const MachineFunction *MF)
const {
> + bool ghcCall = false;
> +
> + if (MF) {
> + const Function *F = MF->getFunction();
> + ghcCall = (F ? F->getCallingConv() == CallingConv::GHC : false);
> + }
> This bit looks dubious. Why do you need to do it?
What exactly? We need
2011 Oct 14
3
[LLVMdev] Request for merge: GHC/ARM calling convention.
Hi Duncan,
On 10/14/11 03:56 PM, Duncan Sands wrote:
> Hi Karel,
>
>> > const unsigned*
>> > ARMBaseRegisterInfo::getCalleeSavedRegs(const MachineFunction *MF)
>> const {
>> > + bool ghcCall = false;
>> > +
>> > + if (MF) {
>> > + const Function *F = MF->getFunction();
>> > + ghcCall = (F ? F->getCallingConv() ==
2012 Jun 29
2
[LLVMdev] Request for merge: GHC/ARM calling convention.
Hi Renato,
On 06/25/12 12:13 AM, Renato Golin wrote:
> Hi Karel,
>
> I understand this patch has already been merged (to 3.0), so don't
> take my question as stopping the merge to head, I'm just making sure I
> got it right... The rest looks correct.
>
> + CCIfType<[v2f64], CCAssignToReg<[Q4, Q5]>>,
> + CCIfType<[f64], CCAssignToReg<[D8, D9,
2012 Jun 24
4
[LLVMdev] Request for merge: GHC/ARM calling convention.
Hello,
first of all: one of the LLVM 3.0 new feature was a support for GHC
specific calling convention on ARM platform. It looks like this support
was merged just into 3.0 branch, specifically it appeared in 3.0 RC2.
Anyway, I hope this is just a mistake or omission that such support was
merged only into 3.0 and not also into HEAD. I've just found it by
testing LLVM 3.1 with GHC 7.4.2 and