Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Isel DAG documentation?"
2014 Mar 08
2
[LLVMdev] Isel DAG documentation?
On 8 March 2014 00:53, Owen Anderson <resistor at mac.com> wrote:
> ISDOpcodes.h contains what documentation there is on the semantics of each
> opcode.
And TargetOpcodes.h for a few of the post-ISel ones (mostly they're in
MachineInstr form, but you'll see them with -view-sched-dags, and
occasionally before).
Tim.
2014 Mar 19
2
[LLVMdev] Type inference on registers with can contain multiple types
My architecture has an FPU, but uses integer registers to store
floating-point values. So each register can store either an int or an
IEEE float. I define a register class like this:
def GR32 : RegisterClass<"MyArch", [i32, f32], 32,
(sequence "R%u", 0, 32)>;
So far so good. However, when I write a rule to store a register:
def STORE32r : S32<
(outs), (ins
2014 Mar 09
2
[LLVMdev] Isel DAG documentation?
Hi David,
> [(set GR32:$rD, globaladdr:$addr)]
> It seems to have somehow managed to create a cycle in the DAG, which is
> of course wrong. But how?
When I write a similar pattern into the ARM .td files and look at
(from the build directory) lib/Target/ARM/ARMGenDAGISel.inc, I see:
/*56478*/ /*SwitchOpcode*/ 13, TARGET_VAL(ISD::GlobalAddress),// ->56494
/*56481*/
2014 May 28
2
[LLVMdev] Partially complete LLVM backend for the VideoCore 4
Hello,
For a while I've been working on an LLVM backend for Broadcom's
VideoCore 4, the GPU made famous by the Raspberry Pi. This isn't the
QPU, for which Broadcom released docs a little while ago; it's the main
processor, which is a VC4 core.
It's a rather elegant thing with two cores, 32 registers, a built-in DSP
and an extremely nice instruction set; reverse engineered
2011 Jan 24
1
[LLVMdev] Question about porting LLVM - code selection without assembler feature
Hello David,
Thanks for your example. Is that means that DAG pattern is consist of LLVM
IR instruction?? I met an example [(set CPURegs:$dst, (OpNode CPURegs:$b,
CPURegs:$c))] of MipsInstrInfo.td, but I can't find correspond LLVM IR
instruction of "set" in "LLVM Language Reference Manual". Is that correspond
to $dst = op $b, $c?? Would you mind to tell me whether there is
2014 May 29
2
[LLVMdev] Partially complete LLVM backend for the VideoCore 4
On 5/29/14, 12:12 PM, Alex Bradbury wrote:
[...]
> Congratulations on the release David, this looks very interesting. I
> had wondering what you were targeting given your series of questions
> to the mailing list :)
Yeah, it is a kind of distinctive architecture. Did I mention the
condition codes? It's got condition codes...
It's a lovely thing to write hand assembly in, by the
2013 Jun 24
1
[LLVMdev] Matching patterns
I'm trying to create a TableGen pattern to match extract_vector_elt.
My pattern looks like this:
(set i32:$dest, (extract_vector_elt v16i32:$src, i32:$index))
However, when I compile, I get an error:
error: Variable not defined: 'extract_vector_elt'
However, if I omit the rule and attempt to compile something that uses
this functionality with clang, I get this error, which
2019 Nov 28
2
Question on pattern matching extractelt
Hi,
I have an issue with pattern matching.
I have the following SelectionDAG:
t13: i32 = extract_vector_elt t2, Constant:i64<1>
That I am trying to match with the following pattern:
def : Pat<(extractelt (v4i16 SingleReg:$v), 1), (SRADd1 SingleReg :$v, (i64 16))>;
But for some reason the pattern does not match.
It seems to be due to the fact extract_vector_elt's result
2016 Jan 29
2
Specifying DAG patterns in the instruction
On Thu, Jan 28, 2016 at 8:34 PM, Dylan McKay <dylanmckay34 at gmail.com> wrote:
> Try visualising the DAG like this.
>
> ```
> ---- GPR:$rA
> /
> set GPR:$rd ---- add
> \
> ---- GPR:$rB
> ```
>
> Each instruction forms a DAG with its operands being subnodes.
>
>
2008 Oct 03
1
[LLVMdev] Making Sense of ISel DAG Output
On Thursday 02 October 2008 19:22, Dan Gohman wrote:
> Another trick is to place an abort() call somewhere in codegen
> such that it will be called whenever the construct of interest
> is processed, and then run bugpoint. If it works, the result
> is a reduced testcase that's still interesting :-).
That's a neat trick. I'll see if I can do that.
> A feature that
2016 Jan 29
0
Specifying DAG patterns in the instruction
On Fri, Jan 29, 2016 at 11:39 AM, Rail Shafigulin <rail at esenciatech.com>
wrote:
>
>
> On Thu, Jan 28, 2016 at 8:34 PM, Dylan McKay <dylanmckay34 at gmail.com>
> wrote:
>
>> Try visualising the DAG like this.
>>
>> ```
>> ---- GPR:$rA
>> /
>> set GPR:$rd ---- add
>>
2011 Jun 30
1
[LLVMdev] SDNode enum
Hi,
The document for "Adding a new SelectionDAG node" ( @
http://llvm.org/releases/2.9/docs/ExtendingLLVM.html#sdnode ) says,
"1. include/llvm/CodeGen/SelectionDAGNodes.h: Add an enum value for
the new SelectionDAG node."
Where exactly shall one add the info for new SelectionDAG ? I dont see
enums for other SDnodes too. Please help.
Regards,
Ankur
2008 Sep 19
2
[LLVMdev] Disappearing Machine Basic Blocks (for new instruction)
I have a new instruction that takes 2 labels, and in SelectionDAGISel,
I have it doing "CurMBB->addSuccessor()" for both machine blocks. The
DAG node it creates also takes both blocks as SDOperands.
When I lower to x86, the not-fallthrough block disappears. If I run
llc with --fast, the blocks stay around, so it must be an optimization
pass of some sort that doesn't realize my
2014 Jul 14
2
[LLVMdev] Getting SELECT_CC and BR_CC DAG nodes
Hello,
I'd like to write some unit tests which verifies SELECT_CC and BR_CC
lowering for ARM target, but I'm almost completely unfamiliar with
llvm/Target. How can I get this nodes in DAG?
Thanks.
--
Kind regards, Dmitry Borisenkov
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2016 Feb 18
2
How to interpret Selection DAG error output
On Thu, Feb 18, 2016 at 11:34 AM, Krzysztof Parzyszek <
kparzysz at codeaurora.org> wrote:
> On 2/18/2016 1:32 PM, Rail Shafigulin wrote:
>
>> I think this is where I'm loosing the "thread". Based on what I'm seeing
>> SET_FLAG has three operands, the first of which is a CopyFromReg. So how
>> come the pattern is SET_FLAG %vreg5, 3, 20 and not
2020 Jul 13
2
[Beginner] Understanding Tablegen language
Hi,
I am new to LLVM and I find TableGen language really cryptic. The reference
manual to the language is not helpful either. I can look at the existing
.td file and reverse engineer but I am looking for a detailed manual.
Specifically, I have below questions:
1. What is a basic syntax for writing a dag? From the lang ref manual I can
see that its something like operator followed by ArgList which
2008 Oct 02
0
[LLVMdev] Making Sense of ISel DAG Output
On Oct 2, 2008, at 9:37 AM, David Greene wrote:
> I'm debugging some X86 patterns and I want to understand the debug
> dumps from
> isel better.
>
> Here's some example output:
>
> 0x391bc40: i64,ch = load 0x3922c50, 0x391b8d0, 0x38dc530
> <0x39053e0:0> <sext
> i32> alignment=4 srcLineNum= 10
> 0x3922c50: <multiple use>
>
2008 Oct 02
4
[LLVMdev] Making Sense of ISel DAG Output
I'm debugging some X86 patterns and I want to understand the debug dumps from
isel better.
Here's some example output:
0x391bc40: i64,ch = load 0x3922c50, 0x391b8d0, 0x38dc530 <0x39053e0:0> <sext
i32> alignment=4 srcLineNum= 10
0x3922c50: <multiple use>
0x391bc40: <multiple use>
0x3856ab0: <multiple use>
0x3914520: i64 =
2020 Jul 14
2
[Beginner] Understanding Tablegen language
On 7/13/2020 21:30, Thomas Lively via llvm-dev wrote:
> Part of the problem is that ISel patterns are like their own DSL inside
> the TableGen DSL, so keywords like "ins", "outs", and "ops" aren't
> keywords at the TableGen level, but rather at the level of the ISel
> system implemented with TableGen. Copying existing patterns and reading
> the
2016 Nov 07
2
About trigonometric Instructions
HI developers,
I want to add trigonometric instructions in my instrinfo.td files how can
i directly map these instructions in .td files. Please help me Guys.For
Sin, Cos, Tan and Cot Instructions.
If I used llvm.sin.* as SDNode Then it is error as llvm variable is not
defined SO please Help me.
Thanks and Regards
Varun
-------------- next part --------------
An HTML attachment was scrubbed...