Displaying 20 results from an estimated 40000 matches similar to: "[LLVMdev] SelectionDAG"
2012 Jan 10
1
[LLVMdev] SelectionDAG
Hello,
I am working on a AVR backend and have a version up and running that will convert LLVM IR code to assembly code for my target. I have written a bunch of instructions from the AVR Instruction Set in AVRInstrInfo.td and not much else. In a simple test case I am attempting to compile (if that is the word you are supposed to use for this operation) test.ll:
define i8 @foo(i8 %a, i8 %b) {
2012 Jul 14
2
[LLVMdev] Issue with Machine Verifier and earlyclobber
Hello Jakob,
I'm still getting the error, I can give you any other debug info you need.
I haven't pasted the regalloc debug info here because it is quite huge, but
if you tell me what specific details you need I will include them.
Thanks for your help!
2012/7/14 Jakob Stoklund Olesen <stoklund at 2pi.dk>
>
> On Jul 14, 2012, at 10:09 AM, Borja Ferrer <borja.ferav at
2013 Jan 07
2
[LLVMdev] LLVM ERROR: ran out of registers during register allocation
Hello Jakob,
Did you get a chance to take a look into this, and if not, can you do it
when you get some spare time?
Thanks!
2012/12/19 Borja Ferrer <borja.ferav at gmail.com>
> We did something like this back when the register allocator couldn't split
>> live ranges.
>>
>
> Yes, I remember the isWinToJoinCrossClass() function, removed here:
>
>
2012 Jul 15
0
[LLVMdev] Issue with Machine Verifier and earlyclobber
Jakob, one more hint, I've placed some asserts around the code you added
and noticed that the InlineSpiller::insertReload() function is not being
called.
2012/7/14 Borja Ferrer <borja.ferav at gmail.com>
> Hello Jakob,
>
> I'm still getting the error, I can give you any other debug info you need.
> I haven't pasted the regalloc debug info here because it is quite
2013 Jan 07
0
[LLVMdev] LLVM ERROR: ran out of registers during register allocation
On Jan 7, 2013, at 4:58 AM, Borja Ferrer <borja.ferav at gmail.com> wrote:
> Hello Jakob,
>
> Did you get a chance to take a look into this, and if not, can you do it when you get some spare time?
It's not likely I'll have time to look at this in the near future. I'd recommend you do it yourself.
/jakob
> 2012/12/19 Borja Ferrer <borja.ferav at gmail.com>
2013 Jan 09
2
[LLVMdev] LLVM ERROR: ran out of registers during register allocation
Ok, I've found that marking tiny live intervals as not spillable inside
VirtRegAuxInfo::CalculateWeightAndHint is not playing nicely with very
constrained regclasses, in my case a regclass composed of only one
register.
As a workaround, instead of marking them as not spillable, I've marked them
with a very high spill cost and the regalloc is able to compile the
function with good code
2015 Jun 27
3
[LLVMdev] Legalizing SelectionDAGs with illegal pointer type
Hi,
I recently started helping with the LLVM AVR backend [1]. The AVR is an 8 bit core with pointer type i16. That makes pointers illegal in the SelectionDAG. As far as I understand it, it is the backends job to legalize these nodes by using the ReplaceNodeResults/LowerOperation callbacks. Is that about right?
I have the feeling that the symbolic nodes carrying pointers, like FrameIndex are
2015 Jun 28
3
[LLVMdev] Legalizing SelectionDAGs with illegal pointer type
On 27 Jun 2015, at 16:13, escha <escha at apple.com> wrote:
>
>>
>> Hi,
>>
>> I recently started helping with the LLVM AVR backend [1]. The AVR is an 8 bit core with pointer type i16. That makes pointers illegal in the SelectionDAG. As far as I understand it, it is the backends job to legalize these nodes by using the ReplaceNodeResults/LowerOperation callbacks.
2012 Jul 15
2
[LLVMdev] Issue with Machine Verifier and earlyclobber
On Jul 15, 2012, at 9:20 AM, Borja Ferrer <borja.ferav at gmail.com> wrote:
> Jakob, one more hint, I've placed some asserts around the code you added and noticed that the InlineSpiller::insertReload() function is not being called.
>
> 2012/7/14 Borja Ferrer <borja.ferav at gmail.com>
> Hello Jakob,
>
> I'm still getting the error, I can give you any other
2013 Jan 09
0
[LLVMdev] LLVM ERROR: ran out of registers during register allocation
On Jan 9, 2013, at 10:46 AM, Borja Ferrer <borja.ferav at gmail.com> wrote:
> Ok, I've found that marking tiny live intervals as not spillable inside VirtRegAuxInfo::CalculateWeightAndHint is not playing nicely with very constrained regclasses, in my case a regclass composed of only one register.
> As a workaround, instead of marking them as not spillable, I've marked them
2010 Dec 30
0
[LLVMdev] Original data type after DAG legalization
Hello everybody,
During the past week I've kept looking for a solution to this but i couldn't
find one, is there really a way to get this type of information or some
workaround?
Thanks.
2010/12/22 Borja Ferrer <borja.ferav at gmail.com>
> Hello,
>
> Is there a way to determine before register allocation if a virtual reg is
> mapped to the lo or hi part of a piece of a
2012 Jul 14
0
[LLVMdev] Issue with Machine Verifier and earlyclobber
On Jul 14, 2012, at 10:09 AM, Borja Ferrer <borja.ferav at gmail.com> wrote:
> Hello,
>
> I'm getting a machine verifier error after introducing the earlyclobber constraint to some instructions where the src and dest regs can't be the same. The offending instruction pattern is this one:
>
> let canFoldAsLoad = 1,
> isReMaterializable = 1,
> Constraints =
2010 Dec 22
3
[LLVMdev] Original data type after DAG legalization
Hello,
Is there a way to determine before register allocation if a virtual reg is
mapped to the lo or hi part of a piece of a value? Basically i need to tell
the register allocator to use a certain set of registers for the lo part and
others for the hi part, so in order to do this i would have to know if the
data value was expanded into smaller pieces and which piece is each one.
Additionally,
2012 Dec 19
2
[LLVMdev] LLVM ERROR: ran out of registers during register allocation
On Dec 19, 2012, at 8:58 AM, Borja Ferrer <borja.ferav at gmail.com> wrote:
> Hello Jakob,
>
> I think I've found something interesting that may help you get a better idea of what's going on.
>
> While looking at the debug info I noticed that the coalescer was removing lots of copies that could help the allocator make more cross class copies. As a test, I disabled
2018 Mar 09
0
[SelectionDAG] DbgValue nodes aren't transferred
+ Adrian, Joshua
+ Jonas, since he contributed the transferDbgValues change in DAGTypeLegalizer::SetExpandedInteger
> On Mar 8, 2018, at 5:44 PM, Se Jong Oh via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> Hi,
>
> I have a problem that dbg_value nodes are not transferred when integer DAG nodes are promoted. For example, an i32 add node is promoted to a i64 add node by
2012 Jul 14
2
[LLVMdev] Issue with Machine Verifier and earlyclobber
Hello,
I'm getting a machine verifier error after introducing the earlyclobber
constraint to some instructions where the src and dest regs can't be the
same. The offending instruction pattern is this one:
let canFoldAsLoad = 1,
isReMaterializable = 1,
Constraints = "@earlyclobber $dst" in
def LDDWRdPtrQ : Inst<(outs DREGS:$dst),
(ins memri:$src),
2012 Dec 19
0
[LLVMdev] LLVM ERROR: ran out of registers during register allocation
Hello Jakob,
I think I've found something interesting that may help you get a better
idea of what's going on.
While looking at the debug info I noticed that the coalescer was removing
lots of copies that could help the allocator make more cross class copies.
As a test, I disabled the join-liveintervals option in the coalescer which
gave me the surprise of making the regalloc succeed. To
2013 Jun 10
3
[LLVMdev] AVR back end
Hi All,
For quite some time there's been a side project for developing an AVR back end for LLVM:
http://sourceforge.net/projects/avr-llvm/
What is required from us to be able to add this work to the LLVM repo?
And when do you think would be a good time for us to do that?
If this is located somewhere in the docs and I've missed it, pointers would certainly be appreciated.
Thanks,
Eric
2018 Mar 14
0
[SelectionDAG] DbgValue nodes aren't transferred
Hi Sejong,
Indeed, I think you are right and we should call transferDbgValues in SetPromotedInteger.
I couldn’t immediately find a suitable in-tree test to verify this though. Can you check and let me know whether this works for your target?
Thanks,
Jonas
> On Mar 13, 2018, at 7:45 PM, Se Jong Oh <sejooh at microsoft.com> wrote:
>
> Thanks for help! I think that sign extension
2010 Sep 04
6
[LLVMdev] Possible missed optimization?
Hello, while testing trivial functions in my backend i noticed a suboptimal
way of assigning regs that had the following pattern, consider the following
function:
typedef unsigned short t;
t foo(t a, t b)
{
t a4 = b^a^18;
return a4;
}
Argument "a" is passed in R15:R14 and argument "b" is passed in R13:R12, the
return value is stored in R15:R14.
Producing the