Displaying 20 results from an estimated 700 matches similar to: "[LLVMdev] TableGen pattern"
2009 May 08
0
[LLVMdev] Question on tablegen
Manjunath,
I had a very similar problem and I solved it using a custom vector shuffle and addition instead of mov.
For example,
Vector_shuffle s1, s2, <0,3> is mapped to a custom instruction where I transform the swizzle to a 32bit integer mask and an inverted mask.
So I have dst, src0, src1, imm1, imm2
And I have my asm look similar to:
Add dst, src0.imm1, src1.imm2 and then in the asm
2009 May 08
2
[LLVMdev] Question on tablegen
Dan,
Thanks a lot. Using a modifier in the assembly string works for this
case. I am trying to solve a related problem. I am trying to print out
a set of "mov" ops for the vector_shuffle node. Since the source of
the "mov" is from one of the sources to vector_shuffle, depending on
the mask, I am not sure what assembly string to emit. For example, if
I have
d <-
2012 Mar 02
1
[LLVMdev] vector shuffle emulation/expand in backend?
I'm having some troubles implementing vector support to our custom backend
It seems that llvm cannot emulate shuffle with extracts, inserts and builds?
I've enabled vector registers with
addRegisterClass(MVT::v2i32, TCE::V2I32RegsRegisterClass);
addRegisterClass(MVT::v2f32, TCE::V2F32RegsRegisterClass);
and created patterns for most vector instructions, including insert,
extract and
2009 May 06
2
[LLVMdev] Question on tablegen
Hello,
I am trying to create a machine instruction for "extractelement". I
want to translate
r <- extractelement v, 0
to
mov r, v.x
I was looking at the dag I can use and I found vector_extract. The
inputs for this SDnode are a register and a iPtr constant. With that,
I need to create 4 separate def's to extract element 0, 1, 2, and 3
and translate to v.x, v.y, v.z, and v.w. I
2009 May 06
0
[LLVMdev] Question on tablegen
One way to do this is to handle this in the AsmPrinter, with
operand modifiers.
For example, on x86 there are instructions with ${dst:call} in
their asm string. The "call" part is interpreted as an operand
modifier. The assembly printer looks for the "call" modifier
on MachineOperand::MO_Immediate operands
(in X86ATTAsmPrinter::printOperand), which lets it perform custom
2008 Mar 31
2
tkconfigure throws an error
Thanks everybody for looking at this. I am trying to assign a script to
a button
please help:
############
library(tcltk)
tt<- tktoplevel()
tktitle(tt)<-"the title"
heading<-tklabel(tt,text="Enter date as YYYY-MM-DD")
l1<-tklabel(tt,text="Reporting date")
b1=tkbutton(tt,text="Run")
d.val<-tkentry(tt,width=12)
tkgrid(heading,columnspan=2)
2015 Mar 25
0
[PATCH] nv50/ir: take postFactor into account when doing peephole optimizations
Multiply operations can have a post-factor on them, which other ops
don't support. Only perform the peephole optimizations when there is no
post-factor involved.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89758
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 12 ++++++++----
1 file changed, 8 insertions(+),
2015 Feb 19
2
No text output in login console and shell
Hello,
I have a remote IBM x3550 M4 server that I try to remote control through
IMM2. The problem: only the blinking cursor is visible in login console.
It moves when I type. It moves to where "Login: _" should be if I press
ctrl+c. I can login if I enter the correct login and password, but the
shell that I get also shows only the blinking cursor and no text. I can
issue commands.
2016 Oct 02
2
[PATCH] nv50/ir: Propagate third immediate src when folding OP_MAD
Previously we'd end up with an unnecessary mov for the thirs immediate value.
total instructions in shared programs : 851881 -> 851864 (-0.00%)
total gprs used in shared programs : 110295 -> 110295 (0.00%)
total local used in shared programs : 1020 -> 1020 (0.00%)
local gpr inst bytes
helped 0 0 17 17
2018 Apr 09
2
Tablegen pattern: How to emit a SDNode in an output pattern?
I'm trying to write a tablegen pattern to that matches a sequence of
SDNodes and emits again an SDNode and another instruction.
The pattern I've written looks like the folowing:
def : Pat<(foo (bar GPR:$rs1), simm12:$imm1),
(bar (BAZ GPR:$rs1, simm12:$imm1))>;
foo and bar are SDNodes, BAZ is an instruction. In particular, bar is
defined as follows:
def bar :
2016 Oct 02
2
[PATCH] nv50/ir: Propagate third immediate src when folding OP_MAD
On 02.10.2016 20:03, Ilia Mirkin wrote:
> On Sun, Oct 2, 2016 at 1:58 PM, Tobias Klausmann
> <tobias.johannes.klausmann at mni.thm.de> wrote:
>> Previously we'd end up with an unnecessary mov for the thirs immediate value.
>>
>> total instructions in shared programs : 851881 -> 851864 (-0.00%)
>> total gprs used in shared programs : 110295 -> 110295
2015 Aug 19
5
[PATCH 1/2] nvc0/ir: detect AND/SHR pairs and convert into EXTBF
Some shaders appear to extract bits using shift/and combos. Detect
(some) of those and convert to EXTBF instead.
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
.../drivers/nouveau/codegen/nv50_ir_peephole.cpp | 66 +++++++++++++++-------
1 file changed, 46 insertions(+), 20 deletions(-)
diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp
2015 May 06
3
VirtIO drivers and CentOS 5.4(Final)
Leon Fauster wrote:
> Am 06.05.2015 um 13:04 schrieb lhecking at users.sourceforge.net:
>>
>>> You have several hundred more Critical or Important security updates
>>> outstanding. If that box touches the Internet in any way, it is likely
>>> compromised. Just in the last 6 months there are 21 Important or
>>> Critical updates.
<snip>
>>
2009 Feb 11
1
[LLVMdev] Prevent node from being combined
How can I prevent some nodes from being combined in DAGCombine.cpp?
Maybe what I want to do below doesn't follow the philosophy of LLVM, but I'd
like to know if there is any way to avoid node from being combined.
TargetLowering::PerformDAGCombine() is only called if DAGCombiner cannot
combine a specific node. It seems that there is no chance to stop it from
combining a node.
I need the
2001 Mar 18
1
Quickbooks under WINE
I am trying to convince my father to run his business on Linux, but all his
accounting is done under Intuit's Quickbooks. Does anyone have any
experience of running the aforesaid?
Any useful comments will be greatly appreciated.
--
-------------------------------------------------
Richard Spandit
Firmly on the Linux wagon
SuSE 6.3, KDE 2.0
richard_news(at)spandit_uklinux_net
2009 Apr 15
0
[LLVMdev] Tablegen question
If I force it to use v2f32 for my register class, it still fails with:
d:\hq\main\sw\appeng\tools\hpc\opencl\compiler\llvm\test\AMDIL>TableGen.
exe -gen
-dag-isel -I../../include/ test.td > output
GPRV2F32:v2f32:$src1 MACRO_DISTANCE_FAST_v2f32: (set
GPRF32:f32:$dst, (i
ntrinsic_w_chain:f32 84:iPTR, GPRV2F32:v2f32:$src0,
GPRV2F32:v2f32:$src1))
TableGen.exe: In
2017 Nov 18
3
tcltk problems
On 18/11/17 17:00, Erin Hodgess wrote:
> When I have compiled from sourced on Ubuntu, I did NOT include the
> "with-tcltk" and it worked fine.? Did you try that, please?
In the past I have configured without using the "--with-tcltk" flag,
and R of course built just fine. But it *did not* have tcltk
capability. When I wanted that capability I had to start using the
2009 Jan 05
2
[LLVMdev] Look-ahead instruction selection
In .td file, if the pattern to match the DAG is:
(vector_shuffle (mul build_vector, build_vector))
is it possible to return 'mul' (SDNode*) instead of returning the first
'vector_shuffle'?
It seems to me that the default instruction selector can only return the
'root' node of the pattern.
Alex.
-------------- next part --------------
An HTML attachment was scrubbed...
2009 Jun 04
2
[LLVMdev] assertion in LeakDetector
I am seeing the following assertion in leak detector.
/llvm/lib/VMCore/LeakDetector.cpp:43:
void<unnamed>::LeakDetectorImpl<T>::addGarbage(const T*) [with T =
void]: Assertion `Ts.count(Cache) == 0 && "Object already in set!"'
failed.
I am creating a list of instructions using BuildMI() and adding them
to a basic block using BB->insert(). I am seeing this
2009 Apr 15
1
[LLVMdev] Tablegen question
On Apr 15, 2009, at 1:11 PM, Villmow, Micah wrote:
> If I force it to use v2f32 for my register class, it still fails with:
> d:\hq\main\sw\appeng\tools\hpc\opencl\compiler\llvm\test
> \AMDIL>TableGen.
> exe -gen
> -dag-isel -I../../include/ test.td > output
> GPRV2F32:v2f32:$src1 MACRO_DISTANCE_FAST_v2f32: (set
> GPRF32:f32:$dst, (i
> ntrinsic_w_chain:f32