Displaying 20 results from an estimated 300 matches similar to: "[LLVMdev] Tablegen: Instructions that take immediates or registers as operands"
2011 Nov 03
0
[LLVMdev] Tablegen: Instructions that take immediates or registers as operands
Tom,
There is no way to do this that I know of. Maybe David Greene or someone who hacks on Tablegen a lot would know.
Micah
> -----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
> On Behalf Of Tom Stellard
> Sent: Thursday, November 03, 2011 10:23 AM
> To: LLVM Developers Mailing List
> Subject: [LLVMdev] Tablegen:
2017 Jul 18
2
get ty2
Hello,
in some operations there is a ty2 type, for example in truncate. What is
the most right way to get it ? I have seen some EVT types, but this is
connected to DAG... and I don't believe that there is no easy way to get
ty2 with one call function.
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2009 Dec 31
1
[PATCH] Autogenerate uureg opcode macros
Also some missing _src()s and cosmetic changes.
---
src/gallium/programs/galliumut/Makefile | 5 +
.../programs/galliumut/gen_uureg_opcodes.sh | 29 +++
src/gallium/programs/galliumut/uureg.h | 196 ++++----------------
3 files changed, 71 insertions(+), 159 deletions(-)
create mode 100644 src/gallium/programs/galliumut/gen_uureg_opcodes.sh
diff --git
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
2012 Apr 19
2
[LLVMdev] Tablegen to match a literal in an instruction
I am trying to make some modifications to our code generator that will produce better code, but require adding new patterns.
What I am trying to do is take a register/register pattern and change it to a register/immediate.
So for example, I have this pattern:
class ILFormat<ILOpCode op, dag outs, dag ins, string asmstr, list<dag> pattern>
: Instruction {
let Namespace =
2012 Apr 19
3
[LLVMdev] Tablegen to match a literal in an instruction
I'm not at the machine that has the changes, but it was failing at index 0.
Micah
From: Owen Anderson [mailto:resistor at mac.com]
Sent: Thursday, April 19, 2012 3:35 PM
To: Villmow, Micah
Cc: LLVM Developers Mailing List
Subject: Re: [LLVMdev] Tablegen to match a literal in an instruction
Micah,
I don't see anything wrong with this offhand. Have you tried getting the debug output
2008 Sep 23
1
[LLVMdev] Tablegen strings
I have a tablegen string that I want to add a modifier to the registers
that are being matched.
For example a simple match on fneg:
def FNEG : OneInOneOut<IL_OP_MOV, (outs GPR:$dst), (ins
GPR:$src0),
"mov $dst, $src0", [(set GPR:$dst, (fneg GPR:$src0))]>;
I want to place a modifier directly after $src0 in the string so that no
space is between the string
and
2008 Oct 30
1
[LLVMdev] Using patterns inside patterns
I do not have access to a subtraction routine, as it is considered add
with negation on the second parameter, so I have this pattern:
// integer subtraction
// a - b ==> a + (-b)
def ISUB : Pat<(sub GPRI32:$src0, GPRI32:$src1),
(IADD GPRI32:$src0, (INEGATE GPRI32:$src1))>;
I am attemping to do 64 bit integer shifts and using the following
pattern:
def LSHL :
2012 Apr 19
0
[LLVMdev] Tablegen to match a literal in an instruction
Micah,
I don't see anything wrong with this offhand. Have you tried getting the debug output from llc -debug, and matching it up with the state machine in your DAGISel.inc to see at what step the auto-generated matcher is failing to match your and-with-immediate?
-Owen
On Apr 19, 2012, at 3:07 PM, "Villmow, Micah" <Micah.Villmow at amd.com> wrote:
> I am trying to make
2008 Oct 07
3
[LLVMdev] Multi instruction pattern help
Chris,
Thanks for the help, this will help me with writing more patterns, but
I am still hitting another roadblock. I attempted what you suggested and
it fixed that issue, but then it started giving a warning that there is
an unknown node in the resulting pattern.
// unsigned int: f64->i32 ==> f64->f32 + f32->i32
def : Pat<(i32 (fp_to_uint (f64 GPR:$src0))),
(i32
2008 Oct 30
0
[LLVMdev] Using patterns inside patterns
I am not sure what you are looking to do. Please provide a mark up
example.
Evan
On Oct 28, 2008, at 11:00 AM, Villmow, Micah wrote:
> Is there currently a way to use a pattern inside of another pattern?
>
> Micah Villmow
> Systems Engineer
> Advanced Technology & Performance
> Advanced Micro Devices Inc.
> 4555 Great America Pkwy,
> Santa Clara, CA. 95054
> P:
2017 Jun 11
0
[RFC 3/9] st/glsl_to_tgsi: handle precise modifier
all subexpression inside an ir_assignment needs to be tagged as precise.
Signed-off-by: Karol Herbst <karolherbst at gmail.com>
---
src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 80 ++++++++++++++++++++++++------
1 file changed, 65 insertions(+), 15 deletions(-)
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp
index c5d2e0fcd2..19f90f21fe
2012 Apr 19
0
[LLVMdev] Tablegen to match a literal in an instruction
Right, it's failing when it tries to materialize a move of a constant into a register. But it's only trying to do that because it previously failed to fold the constant into the AND. What you need to do is step through the path it takes when matching the AND node, and try to figure out why it ends up selecting the register-register version rather than the register-immediate version.
2014 Nov 18
2
[PATCH] nv50/ir: saturate FRC result to avoid completely bogus values
For values above integer accuracy in floats, val - floor(val) might
actually produce a value greater than 1. For such large floats, it's
reasonable to be imprecise, but it's unreasonable for FRC to return a
value that is not between 0 and 1.
Signed-off-by: Ilia Mirkin <imirkin at alum.mit.edu>
---
src/gallium/drivers/nouveau/codegen/nv50_ir_from_tgsi.cpp | 3 ++-
1 file changed, 2
2008 Oct 07
0
[LLVMdev] Multi instruction pattern help
On Oct 7, 2008, at 9:30 AM, Villmow, Micah wrote:
> Chris,
> Thanks for the help, this will help me with writing more patterns,
> but I am still hitting another roadblock. I attempted what you
> suggested and it fixed that issue, but then it started giving a
> warning that there is an unknown node in the resulting pattern.
>
> // unsigned int: f64->i32 ==>
2008 Oct 07
2
[LLVMdev] Multi instruction pattern help
I am trying to get a multi instruction pattern to work and seem to be
running into trouble.
The problem itself is fairly simple. I need to go from 64bit floats to
32bit integers. As the backend doesn't support this natively but has a
way of converting it, I'd prefer to get this working via tablegen.
What I thought would work from the previous discussion is the following:
def :
2009 Feb 10
2
[LLVMdev] Multiclass patterns
Bill,
Sorry if I wasn't clear enough. I wasn't referring to multiclass's that
define other classes, but with using patterns inside of a multiclass to
reduce redundant code.
For example:
multiclass IntSubtract<SDNode node>
{
def _i8 : Pat<(sub GPRI8:$src0, GPRI8:$src1),
(ADD_i8 GPRI8:$src0, (NEGATE_i8 GPRI8:$src1))>;
def _i32 : Pat<(sub
2008 Oct 28
4
[LLVMdev] Using patterns inside patterns
Is there currently a way to use a pattern inside of another pattern?
Micah Villmow
Systems Engineer
Advanced Technology & Performance
Advanced Micro Devices Inc.
4555 Great America Pkwy,
Santa Clara, CA. 95054
P: 408-572-6219
F: 408-572-6596
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2014 Nov 18
2
[Mesa-dev] [PATCH] nv50/ir: saturate FRC result to avoid completely bogus values
On Tue, Nov 18, 2014 at 8:54 AM, Roland Scheidegger <sroland at vmware.com> wrote:
> Am 18.11.2014 um 05:03 schrieb Ilia Mirkin:
>> For values above integer accuracy in floats, val - floor(val) might
>> actually produce a value greater than 1. For such large floats, it's
>> reasonable to be imprecise, but it's unreasonable for FRC to return a
>> value that
2008 Oct 07
0
[LLVMdev] Multi instruction pattern help
On Oct 6, 2008, at 5:42 PM, Villmow, Micah wrote:
> I am trying to get a multi instruction pattern to work and seem to
> be running into trouble.
> The problem itself is fairly simple. I need to go from 64bit floats
> to 32bit integers. As the backend doesn’t support this natively but
> has a way of converting it, I’d prefer to get this working via
> tablegen.
>
>