Displaying 4 results from an estimated 4 matches for "movmm".
Did you mean:
movimm
2012 Dec 02
2
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...y if we can!)
is convenient to conquer that case.
The truth is, in pattern (add (load) (load)), source operands are
memory addresses, and thus it can be treated as (addmm
address, address). Here is an alternative you can take into
consideration: defining new node (like addmm, similiar with movmm) to
specify matching patterns for isel.
Regards.
2012/12/2 Joseph Pusdesris <joe at pusdesris.com>:
> I am writing a target for an odd cisc-like architecture which has no support
> for keeping most values in registers. As such, memory-memory operations are
> needed, but for isel t...
2012 Dec 02
0
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...ent to conquer that case.
>
> The truth is, in pattern (add (load) (load)), source operands are
> memory addresses, and thus it can be treated as (addmm
> address, address). Here is an alternative you can take into
> consideration: defining new node (like addmm, similiar with movmm) to
> specify matching patterns for isel.
>
> Regards.
>
> 2012/12/2 Joseph Pusdesris <joe at pusdesris.com>:
> > I am writing a target for an odd cisc-like architecture which has no
> support
> > for keeping most values in registers. As such, memory-memory oper...
2012 Dec 02
0
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
...Let's use a simple example to show how this can be problematic:
%0 = load i32* %a.addr, align 4
store i32 %0, i32* %other, align 4
%1 = load i32* %b.addr, align 4
%add = add i32 %0, %1
----
In this example, the (store (load)) pair -- the first two lines -- will be
matched by isel as a MOVmm. This will be problematic for the add though,
since the load SDNode will be gone, making that part of the DAG no longer
of the form (add (load) (load)). To counteract this, I would create 2 load
SDNodes so that both of these patterns can be satisfied. Does this make
sense?
-Joe
On Sat, Dec 1...
2012 Dec 02
2
[LLVMdev] Splitting a load with 2 consumers into 2 loads.
Hi, Joe.
I am sorry I did not catch your point. Can you provide more details?
Since SDValue/SDNode can be used multiple times, why would you want to
create two identical objects
instead of reference to the same one?
2012/12/2 Joseph Pusdesris <joe at pusdesris.com>:
> Yes, changing parameters will create a new Node, but is there some way I can
> force a new node with the same