Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] custom lowering with multiple results"
2010 Oct 05
1
[LLVMdev] custom lowering with multiple results
I may have found a solution to the problem. The attached patch seems to
do what I was trying to do.
It's a work-around, really. What I have done is split the READ_WORLD
node (inputs: Chain; outputs: Flag, Chain) into two nodes: READ_WORLD1
(inputs: Chain; outputs, i32, Chain), and READ_WORLD2 (inputs: i32;
outputs: Flag). The pair of nodes is matched by a single pattern in the
.td file.
Is
2010 Oct 04
0
[LLVMdev] custom lowering with multiple results
There have been some useful replies to my question. In particular, Eli Friedman explained that my change to LegalizeDAG.cpp was wrong and suggested that I use a MERGE_VALUES node in ARMISelLowering.cpp.
Unfortunately, that hasn't solved the problem I was having. I still get the same old assertion failure: "#operands for dag node doesn't match .td file!"
However, here's an
2010 Sep 27
1
[LLVMdev] [PATCH] Support for ARM Run-Time ABI (FP and Integer helper functions)
On Mon, Sep 27, 2010 at 5:02 PM, Evzen Muller <evzen.muller at arm.com> wrote:
>
> To make it easier to review & commit I have split and cleaned-up our
> original
> "Support for ARM Run-Time ABI" patch, this part adds support for calls which
>
> can be mapped using setLibcallName.
As noted in the earlier thread on this, I'm pretty sure that we need
to
2010 Sep 28
2
[LLVMdev] [PATCH] Support for ARM Run-Time ABI (FP and Integer helper functions)
I wrote that loop. :-)
So now the differences between this patch and the one I had been sitting on are:
* We have opposite condition codes in our FP comparisons.
* This patch has integer division, which seems like a good thing, but
wasn't needed for my A9 target.
Are you sure about the comparisons?
deep
On Tue, Sep 28, 2010 at 9:11 AM, Evzen Muller <evzen.muller at arm.com> wrote:
2010 Sep 22
0
[LLVMdev] custom lowering with multiple results
I recently found myself wanting to custom-lower an intrinsic by
replacing the intrinsic node with two new nodes such that the two
outputs of the original node (one of them is the chain) come from
different nodes after the rewrite. I haven't yet succeeded in this. I
was rather discouraged by this comment in LegalizeDAG.cpp:
// FIXME: The handling for custom lowering with multiple results
2009 May 20
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
Per subject, this patch adding an additional pass to handle vector
operations; the idea is that this allows removing the code from
LegalizeDAG that handles illegal types, which should be a significant
simplification. There are still some issues with this patch, but does
the approach look sane?
-Eli
-------------- next part --------------
Index: lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
2013 Jul 31
1
[LLVMdev] Help with promotion/custom handling of MUL i32 and MUL i64
Thanks Tom. I really appreciate your insight.
I'm able to use the customize to get the 64-bit to go to a subroutine and
for the 32-bit, I am generate XXXISD::MUL32. I'm not sure then what you
mean about "overriding" the ReplaceNodeResults.
For ReplaceNodeResults, I'm doing:
SDValue Res = LowerOperation(SDValue(N, 0), DAG);
for (unsigned I = 0, E =
2008 Aug 18
5
[LLVMdev] Type Legalizer - Load handling problem
Hi All,
I have some doubt in LLVM Type Legalizer.
How will LOAD:i8 with an i16 operand be lowered in type legalizer? (i16
type is not legal for our target)
Following assertion in function ExpandIntegerOperand (file
LegalizeIntegerTypes.cpp) is not allowing us to change LOAD node.
assert(Res.getValueType() == N->getValueType(0) && N->getNumValues() ==
1 &&
2007 Sep 28
0
[LLVMdev] Lowering operations to 8-bit!
On Sep 28, 2007, at 11:36 AM, <Alireza.Moshtaghi at microchip.com>
<Alireza.Moshtaghi at microchip.com> wrote:
> I moved my code to 2.1 but still the same.
> If I make ADD i16 legal, then it goes through, but it has problem
> expanding it to i8.
> Should I go ahead and customize it and do the same for all
> instructions?
> Or there is a more general thing that I
2008 Aug 19
2
[LLVMdev] Type Legalizer - Load handling problem
On Mon, 2008-08-18 at 08:50 -0700, Eli Friedman wrote:
> On Mon, Aug 18, 2008 at 6:31 AM, <Sachin.Punyani at microchip.com> wrote:
> > assert(Res.getValueType() == N->getValueType(0) && N->getNumValues() == 1 &&
> > "Invalid operand expansion");
> >
> > LOAD node has two values but the assertion checks N->getNumValues() == 1
>
2013 Jul 31
0
[LLVMdev] Help with promotion/custom handling of MUL i32 and MUL i64
Hi Dan,
If you set the node's action to "Custom", you should be able to
interfere in the type legalisation phase (before it gets promoted to a
64-bit MUL) by overriding the "ReplaceNodeResults" function.
You could either expand it to a different libcall directly there, or
replace it with a target-specific node (say XXXISD::MUL32) which
claims to take i64 types but you
2002 Jul 02
4
Samba 2.2.4 and PRINT$
Hi,
I'm having difficulty configuring Printing with Samba 2.2.4 and Windows
2000 clients.
The samba installations is running as a PDC against LDAP. All the
sharing of network file systems seem to be working perfectly..
I have a share
[printers]
path = /usr/spool/samba
guest ok = yes
printable = yes
browsable = no
guest ok = yes
writable =
2007 Sep 28
2
[LLVMdev] Lowering operations to 8-bit!
I moved my code to 2.1 but still the same.
If I make ADD i16 legal, then it goes through, but it has problem
expanding it to i8.
Should I go ahead and customize it and do the same for all instructions?
Or there is a more general thing that I can do?
A.
-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
On Behalf Of Chris Lattner
Sent:
2020 May 07
2
Ld64.lld cannot find Foundation framework
James, many thanks.
Is there any linker available for Macs that has a freely available binary version?
I thought maybe that GNU’s linker might fit the bill?
I cannot use Apple’s linker from /usr/bin/ as it is not allowed to make external calls from a sandboxed app.
Hence my interest in the LLVM lld.
> On 7 May 2020, at 19:21, James Y Knight <jyknight at google.com> wrote:
>
> On
2009 Apr 01
0
[LLVMdev] What is the state of LLVM's ARM backend
LLVM ARM v6 backend is in fairly good shape. Even the JIT passes
nearly the entire llvm test suite. There are some known missing bits:
1. Exception handling
2. Atomic
Not sure:
3. Debugging support (should be trivial to hook up if it's not done)
Also the thumb backend is not awesome. Its performance is not great.
Evan
On Apr 1, 2009, at 6:34 AM, Robert Schuster wrote:
> Hi,
> the
2020 Jan 28
2
Handling node through TargetLowering::LowerOperation vs TargetLowering::ReplaceNodeResults
Thank you Craig for explanation.
Could be the same algorithm used for custom legalizing given node in
LowerOperation and ReplaceNodeResults in case results and inputs of the
node are illegal?
Or actually such situation is impossible and for given node either
LowerOperation or ReplaceNodeResults can be only called?
Przemek
wt., 28 sty 2020, 18:48 użytkownik Craig Topper <craig.topper at
2006 Nov 15
2
[LLVMdev] LowerCALL (TargetLowering)
Hi,
I am trying to write a LowerCALL() function for my (custom) target ISA.
All I need to do is map a CALL instruction directly onto an SDNode that
takes an equal number of arguments (very much alike intrinsics, except
that these are custom to my target.) I do not need to implement any call
sequences, stack frames etc.
I get the following assertion failure:
llc: LegalizeDAG.cpp:834:
2016 Jan 22
3
Return value from TargetLowering::LowerOperation?
Hi,
I'm a litle bit puzzled by the TargetLowering::LowerOperation function,
and what different callers of this function assumes about the returned
value.
In several places it seems like it is assumed that LowerOperation can
return three kinds of values:
* Something completely new.
* SDValue()
* The same SDValue as LowerOperation was called on.
However in some places, e.g. in
2009 Jan 16
0
[LLVMdev] PIC16 backend for llvm 2.5
Hi Sanjiv,
> Well the magnitude of the task is not small.
> ExpandIntegerOperand() calls LowerOperation() to allow targets to handle
> illegal operands. So we will need to change the interface of
> LowerOperation() to pass an extra argument called Results, which is an
> array of SDValue. Targets will push the result values in this array and
> then we can replace values in
2016 Jan 25
1
Return value from TargetLowering::LowerOperation?
Hi,
On 01/22/2016 05:02 PM, Tom Stellard wrote:
> On Fri, Jan 22, 2016 at 01:58:49PM +0100, Mikael Holmén via llvm-dev wrote:
>> Hi,
>>
>> I'm a litle bit puzzled by the TargetLowering::LowerOperation function,
>> and what different callers of this function assumes about the returned
>> value.
>>
> SelectionDAGLegalize::LegalizeOp() is your best