Displaying 20 results from an estimated 20000 matches similar to: "Post definition register alias in tablegen."
2012 Jun 20
3
[LLVMdev] How to define macros in a tablegen file?
Possible to add a test case?
Micah
> -----Original Message-----
> From: Sebastian Pop [mailto:spop at codeaurora.org]
> Sent: Wednesday, June 20, 2012 1:40 PM
> To: Villmow, Micah
> Cc: llvmdev at cs.uiuc.edu; llvm-commits at cs.uiuc.edu
> Subject: Re: [LLVMdev] How to define macros in a tablegen file?
>
> On Wed, Jun 20, 2012 at 12:34 PM, Sebastian Pop <spop at
2012 Aug 06
2
[LLVMdev] Tablegen foreach
That is what I currently have, I'm trying to simplify them even further since my multiclass file is enormous because of the amount of combinations. I have things like this:
multiclass instmcRegImm<...> {
def rr: inst<...>;
def ri: inst<...>;
def ir: inst<...>;
def ii: inst<...>;
}
multiclass instmc<...> {
defm i8 : instmcRegImm<...>;
^-- repeat for 15
2012 Jun 20
0
[LLVMdev] [llvm-commits] How to define macros in a tablegen file?
On Wed, Jun 20, 2012 at 3:40 PM, Villmow, Micah <Micah.Villmow at amd.com> wrote:
> Possible to add a test case?
I am not really sure what I would check.
At first, I thought to add a testcase to test/TableGen; as this patch
does not modify tablegen, it doesn't make sense.
What kind of test should I write for this? The test should be a
tablegen file that includes
2012 Aug 06
0
[LLVMdev] Tablegen foreach
I believe multiclasses can be nested. Could that help you reduce the
duplication?
--Sean Silva
On Mon, Aug 6, 2012 at 2:46 PM, Villmow, Micah <Micah.Villmow at amd.com> wrote:
> That is what I currently have, I'm trying to simplify them even further since my multiclass file is enormous because of the amount of combinations. I have things like this:
>
> multiclass
2012 Aug 06
2
[LLVMdev] Tablegen foreach
I'm trying to find examples of the foreach pattern being used in tablegen files.
The problem I am trying to solve is to simplify the amount of tablegen code I have to produce because each operand of an instruction can be a register or a literal.
So for binary, we have 4 instructions, ternary, 8, and quaternary 16 combinations.
Instead of writing all the combinations out, I'd like to use
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
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.
2012 Aug 03
2
[LLVMdev] TableGen related question for the Hexagon backend
> -----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
> On Behalf Of Jakob Stoklund Olesen
> Sent: Friday, August 03, 2012 10:02 AM
> To: Sebastian Pop
> Cc: llvmdev at cs.uiuc.edu
> Subject: Re: [LLVMdev] TableGen related question for the Hexagon
> backend
>
>
> On Aug 2, 2012, at 11:24 PM, Sebastian Pop
2013 Jun 25
2
[LLVMdev] tablegen question
How do you specify in a tablegen pattern that all destination registers are also source registers? I know I could just duplicate them, but I was wondering if there was a way it could be done without doing this. Basically an inplace operation.
So for example, take a hypothetical swap w/ sqrt.
if I had swap $ds0, $ds1
which swaps ds1 and ds0 and applies sqrt on the registers afterwards.
Micah
2012 Aug 06
0
[LLVMdev] Tablegen foreach
I think a multiclass may be a better fit for what you are trying to
do. In fact, this is the canonical example for multiclasses:
<http://llvm.org/docs/TableGenFundamentals.html#multiclass-definitions-and-instances>.
--Sean Silva
On Mon, Aug 6, 2012 at 1:55 PM, Villmow, Micah <Micah.Villmow at amd.com> wrote:
> I’m trying to find examples of the foreach pattern being used in
2008 Sep 15
2
[LLVMdev] TableGen Calling Convention help
With my backend code gen I want to assign calling parameters to a list
of registers, but since I'm targeting a virtual instruction set. I don't
want to be limited by the number of registers. Is there a way using
TableGen to specify just a starting register to assign to for the
CallingConv class and then have it just use sequential registers?
Micah Villmow
Systems Engineer
Advanced
2009 Apr 15
3
[LLVMdev] Tablegen question
In IntrinsicEmitter::EmitTypeGenerate, called from
IntrinsicEmitter::EmitGenerator, here
for (unsigned j = 0; j != N; ++j) {
OS << " ArgTys.push_back(";
EmitTypeGenerate(OS, ParamTys[j], ArgNo);
OS << ");\n";
}
I'm hitting this assertion:
if (ArgType->isSubClassOf("LLVMMatchType")) {
unsigned Number =
2012 Aug 03
0
[LLVMdev] TableGen related question for the Hexagon backend
On Aug 3, 2012, at 10:11 AM, "Villmow, Micah" <Micah.Villmow at amd.com> wrote:
> [Villmow, Micah] Just curious as we have a similar approach for some code in our backed, but if the higher level source and the scripts to produce the intermediates were provided, would that be sufficiently acceptable to using generated td files?
No.
It's perfectly fine if the initial
2012 Aug 03
1
[LLVMdev] TableGen related question for the Hexagon backend
On Fri, Aug 3, 2012 at 1:10 PM, Jakob Stoklund Olesen <stoklund at 2pi.dk> wrote:
>
> On Aug 3, 2012, at 10:11 AM, "Villmow, Micah" <Micah.Villmow at amd.com> wrote:
>
>> [Villmow, Micah] Just curious as we have a similar approach for some code in our backed, but if the higher level source and the scripts to produce the intermediates were provided, would that
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:
2010 Nov 08
1
[LLVMdev] Creating tablegen patterns for intrinsics with no return value.
> -----Original Message-----
> From: Jim Grosbach [mailto:grosbach at apple.com]
> Sent: Monday, November 08, 2010 10:41 AM
> To: Villmow, Micah
> Cc: LLVM Developers Mailing List
> Subject: Re: [LLVMdev] Creating tablegen patterns for intrinsics with
> no return value.
>
>
> On Nov 8, 2010, at 10:32 AM, Villmow, Micah wrote:
>
> > I have intrinsic with no
2009 Apr 15
0
[LLVMdev] Tablegen question
That's a bug. I'm working on a fix....
On Apr 15, 2009, at 10:16 AM, Villmow, Micah wrote:
> In IntrinsicEmitter::EmitTypeGenerate, called from
> IntrinsicEmitter::EmitGenerator, here
> for (unsigned j = 0; j != N; ++j) {
> OS << " ArgTys.push_back(";
> EmitTypeGenerate(OS, ParamTys[j], ArgNo);
> OS << ");\n";
> }
2013 Jun 25
0
[LLVMdev] tablegen question
Hi Micah,
On Tue, Jun 25, 2013 at 03:47:14PM +0000, Micah Villmow wrote:
> How do you specify in a tablegen pattern that all destination registers are also source registers? I know I could just duplicate them, but I was wondering if there was a way it could be done without doing this. Basically an inplace operation.
>
I'm not sure if there is a good way to do this. The
2008 Oct 24
2
[LLVMdev] SetCC tablegen pattern
I am attempting to match setcc using tablegen w/ the following
patterns:
def FEQ : Instruction<(outs GPRF32:$dst), (ins GPRF32:$src0,
GPRF32:$src1), "eq $dst, $src0, $src1", [(set GPRF32:$dst, (seteq
GPRF32:$src0, GPRF32:$src1))]>;
And it is failing stating that the result must be an integer. Is there a
way around this other than modifying TargetSelectionDAG.td? Also,
2011 Nov 03
3
[LLVMdev] Tablegen: Instructions that take immediates or registers as operands
Hi,
I'm working on an LLVM backend for GPUs. One thing that is a little
different about some GPUs is that instructions can take registers or
32-bit floating point immediates as arguments. I was wondering if there
is a way to model this using tablegen, without having to define an
instruction for each possible combination of registers and immediates
(e.g. For ADD it would require four