Displaying 20 results from an estimated 40000 matches similar to: "[LLVMdev] Instruction info on X86 - X86Wrapper"
2010 Jun 21
2
[LLVMdev] LLC Bug x86 with thread local storage
Hello,
This bug affects all LLVM versions from 2.6 to trunk :
http://llvm.org/bugs/show_bug.cgi?id=5081
The workaround I found is to add this :
Index: lib/Target/X86/X86Instr64bit.td
===================================================================
--- lib/Target/X86/X86Instr64bit.td (revision 105882)
+++ lib/Target/X86/X86Instr64bit.td (working copy)
@@ -1832,6 +1832,8 @@
2010 Jun 21
0
[LLVMdev] LLC Bug x86 with thread local storage
On Jun 21, 2010, at 2:56 AM, Patrick Marlier wrote:
> Hello,
>
> This bug affects all LLVM versions from 2.6 to trunk :
> http://llvm.org/bugs/show_bug.cgi?id=5081
>
> The workaround I found is to add this :
>
> Index: lib/Target/X86/X86Instr64bit.td
> ===================================================================
> --- lib/Target/X86/X86Instr64bit.td
2010 Jun 22
2
[LLVMdev] LLC Bug x86 with thread local storage
On 06/21/2010 08:21 PM, Eric Christopher wrote:
> On Jun 21, 2010, at 2:56 AM, Patrick Marlier wrote:
>
>
>> Hello,
>>
>> This bug affects all LLVM versions from 2.6 to trunk :
>> http://llvm.org/bugs/show_bug.cgi?id=5081
>>
>> The workaround I found is to add this :
>>
>> Index: lib/Target/X86/X86Instr64bit.td
>>
2010 Jul 07
0
[LLVMdev] LLC Bug x86 with thread local storage
On 06/22/2010 11:11 AM, Patrick Marlier wrote:
> On 06/21/2010 08:21 PM, Eric Christopher wrote:
>> On Jun 21, 2010, at 2:56 AM, Patrick Marlier wrote:
>>
>>
>>> Hello,
>>>
>>> This bug affects all LLVM versions from 2.6 to trunk :
>>> http://llvm.org/bugs/show_bug.cgi?id=5081
>>>
>>> The workaround I found is to
2011 Apr 26
0
[LLVMdev] Symbol folding with MC
On Apr 26, 2011, at 1:27 PM, Borja Ferrer wrote:
> Hello Jim thanks for the reply,
>
> For normal additions with immediates I've done the same as ARM does, basically transforming add(x, imm) nodes to sub(x, -imm) with a pattern in the .td file like this:
> def : Pat<(add DLDREGS:$src1, imm:$src2),
> (SUBIWRdK DLDREGS:$src1, (imm16_neg_XFORM imm:$src2))>;
2011 Apr 27
1
[LLVMdev] Symbol folding with MC
Thanks Jim, I've implemented the negation part successfully :) maybe the
second part could be a possible feature request so others could use it
aswell?
2011/4/27 Jim Grosbach <grosbach at apple.com>
>
> On Apr 26, 2011, at 1:27 PM, Borja Ferrer wrote:
>
> > Hello Jim thanks for the reply,
> >
> > For normal additions with immediates I've done the same as
2011 Apr 26
2
[LLVMdev] Symbol folding with MC
Hello Jim thanks for the reply,
For normal additions with immediates I've done the same as ARM does,
basically transforming add(x, imm) nodes to sub(x, -imm) with a pattern in
the .td file like this:
def : Pat<(add DLDREGS:$src1, imm:$src2),
(SUBIWRdK DLDREGS:$src1, (imm16_neg_XFORM imm:$src2))>;
Now, the typical pattern concerning additions with global addresses looks
2012 Jul 25
0
[LLVMdev] Purpose of MSP430Wrapper
On 25 Jul 2012, at 04:49, Paul Shortis wrote:
> Hello,
>
> I'm considering creating an LLVM backend for a 16 bit processor and
> modelling it around the (experimental) MSP430 back end.
>
> When reviewing MSP430InstrInfo.td I see
>
> def MSP430Wrapper : SDNode<"MSP430ISD::Wrapper", SDT_MSP430Wrapper>;
>
> and can see in MSP430ISelLowering.cpp
2012 Jul 25
2
[LLVMdev] Purpose of MSP430Wrapper
On 25/07/12 18:21, Richard Osborne wrote:
> On 25 Jul 2012, at 04:49, Paul Shortis wrote:
>
>
>> Hello,
>>
>> I'm considering creating an LLVM backend for a 16 bit processor and
>> modelling it around the (experimental) MSP430 back end.
>>
>> When reviewing MSP430InstrInfo.td I see
>>
>> def MSP430Wrapper :
2009 Apr 20
2
[LLVMdev] A few questions from a newbie
Hi Jacob, thank you for your reply.
Your suggestion works! But instead of using the Pat<>, I am using
def MOVE_ADDR : MYInst<(outs Int32Regs:$dst), (ins i32mem:$a),
"move $dst, $a;",
[(set Int32Regs:$dst, (Wrapper tglobaladdr:$a))]>;
I don't quite understand what the semantics of Pat in general. Could you
please explain what
2012 Jul 25
0
[LLVMdev] Purpose of (XXX)Wrapper
Hello,
I'm considering creating an LLVM backend for a 16 bit processor and modelling it around the (experimental) MSP430 back end.
When reviewing MSP430InstrInfo.td I see
def MSP430Wrapper : SDNode<"MSP430ISD::Wrapper", SDT_MSP430Wrapper>;
and can see in MSP430ISelLowering.cpp that
ISD::GlobalAddress:
ISD::BlockAddress:
ISD::ExternalSymbol
all get lowered to
2012 Jul 25
2
[LLVMdev] Purpose of MSP430Wrapper
Hello,
I'm considering creating an LLVM backend for a 16 bit processor and
modelling it around the (experimental) MSP430 back end.
When reviewing MSP430InstrInfo.td I see
def MSP430Wrapper : SDNode<"MSP430ISD::Wrapper", SDT_MSP430Wrapper>;
and can see in MSP430ISelLowering.cpp that
ISD::GlobalAddress:
ISD::BlockAddress:
ISD::ExternalSymbol
all get lowered to
2009 Apr 20
0
[LLVMdev] A few questions from a newbie
On 20/04/2009, at 07.35, Peter Bacon wrote:
> Hello, I am learning to write a new backend for LLVM and have a few
> simple questions.
Hi Peter,
I am a newbie too, but I have recently dealt with the same issues.
> 1) What are the differences between 'constant' and 'targetconstant',
> 'globaladdress' and 'targetglobaladdress'? It is not clear from
2012 Feb 17
0
[LLVMdev] ARM/Thumb2/ISEL Need help tracing down a failing match: (HOW?)
Hi, after perusing through llc -debug output and stepping through the
ARMGenDAGIsel.inc in the debugger, I would greatly like some help in
tracking down a failing match to a pattern I specified:
First, here is a snippet of a successful match (done in ARM mode)
ISEL: Starting pattern match on root node: 0x1e7adf0: i32,ch = load
0x1e4c030, 0x1e78210, 0x1e78310<LD4[ConstantPool]> [ID=10]
2012 Jul 25
0
[LLVMdev] Purpose of MSP430Wrapper
On 25/07/12 12:14, Paul Shortis wrote:
> Thanks Richard,
>
> You're correct, they are similar. In the XCoreInstrInfo.td patterns
> what I'm struggling with is why this ....
>
> def BL_lu10 : _FLU10<
> (outs),
> (ins calltarget:$target, variable_ops),
> "bl $target",
>
2009 Nov 15
0
[LLVMdev] Matching an instruction that writes a specific register in a Pat<>
I can match an instruction whose result is always written to a specific
register using set with that register as the first operand in the DAG
pattern of the instruction. For example on the XCore the result of the
the ldap instruction is written to R11 and used to match the tglobaladdr
node as follows:
def LDAP_lu10 : _FLU10<
(outs),
(ins i32imm:$addr),
2016 Jan 15
2
Expanding a PseudoOp and accessing the DAG
On Thu, Jan 14, 2016 at 6:05 AM, Krzysztof Parzyszek <
kparzysz at codeaurora.org> wrote:
> On 1/13/2016 4:47 PM, Phil Tomson wrote:
>
>>
>> First off, I got this idea from the LLVM Cookbook chapter 8: Writing an
>> LLVM Backend: Lowering to multiple instructions. (now I'm having my
>> doubts as to whether this is the right approach)
>>
>
>
2009 Apr 20
2
[LLVMdev] A few questions from a newbie
Hello, I am learning to write a new backend for LLVM and have a few simple
questions.
1) What are the differences between 'constant' and 'targetconstant',
'globaladdress' and 'targetglobaladdress'? It is not clear from the document
when and which should be used.
2) On the processor I am working on, there is a 'move reg, mem_addr'
instruction.
When I try
2016 Jan 15
2
Expanding a PseudoOp and accessing the DAG
On 1/15/2016 1:08 PM, Phil Tomson wrote:
>
> Ah, I see, the defm is a multi-class so I needed to change it to:
>
> def: Pat<(load (XSTGADDR_NORMAL tglobaladdr:$addr)),
> (LOADI64_RI tglobaladdr:$addr, 0)>;
> // Match load from a relocatable address to a load with GRP:
> def: Pat<(load (XSTGADDR_USE_GRP tglobaladdr:$addr)),
> (LOADI64_RI
2013 Apr 12
1
[LLVMdev] Problem with Store of i8 in a global address
Hi,
I am creating a new backend for a custom microcontroller.
In order to create the backend I am modifying from Mips backend.
My architecture has a store instruction with direct address mode. It
accepts two arguments: source register and address (immediate). This
instruction is not available in Mips, but it is in Hexagon, so I copied
from Hexagon the following, adapting it to my registers:
-