Displaying 20 results from an estimated 223 matches for "x86instrinfo".
2012 Mar 02
3
[LLVMdev] how to annotate assembler
...oc
Now I may look into config/i386/i386.md, and look for mentioned
*pushdi2_rex64, movdi_1_rex64, floatdidf2_sse_interunit and other
patterns and study how they work.
How to make the same annotation for clang output assembler code?
test:
.Leh_func_begin1:
pushq %rbp # ??? what insn in X86InstrInfo.td?
.Llabel1:
movq %rsp, %rbp # ??? what insn in X86InstrInfo.td?
.Llabel2:
movq %rdi, -16(%rbp) # ??? what insn in X86InstrInfo.td?
movq -16(%rbp), %rax # ??? what insn in X86InstrInfo.td?
cvtsi2sdq %rax, %xmm0 # ??? what insn in X86InstrInfo.td?
movsd %xmm0, -8(%rbp) # ??? what...
2011 Sep 30
2
[LLVMdev] LLVM backends instruction selection
I am new to the LLVM backends, I am wondering how instruction selection is
done in LLVM backends, I looked at the .td files in Target/X86, they all
seem to be small and do not deal with common X86 instructions, i.e. mov,
push, pop, etc.
Thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
2017 Oct 21
2
[X86] How to query for Opcode type?
Hi,
I would like to query the X86InstrInfo tables to determine if a given
opcode is a load or store from stack. I see functions
isFrameLoadOpcode and isFrameStoreOpcode
in lib/Target/X86/X86InstrInfo.cpp that would provide the functionality I
am looking for.
However, these functions are static.
What is the recommended way to perform such...
2012 Mar 02
0
[LLVMdev] how to annotate assembler
...6.md, and look for mentioned
> *pushdi2_rex64, movdi_1_rex64, floatdidf2_sse_interunit and other
> patterns and study how they work.
>
> How to make the same annotation for clang output assembler code?
>
> test:
> .Leh_func_begin1:
> pushq %rbp # ??? what insn in X86InstrInfo.td?
> .Llabel1:
> movq %rsp, %rbp # ??? what insn in X86InstrInfo.td?
> .Llabel2:
> movq %rdi, -16(%rbp) # ??? what insn in X86InstrInfo.td?
> movq -16(%rbp), %rax # ??? what insn in X86InstrInfo.td?
> cvtsi2sdq %rax, %xmm0 # ??? what insn in X86InstrInfo.td?
> movs...
2015 Mar 24
3
[LLVMdev] [PATCH] fix outs/ins of MOV16mr instruction (X86)
Hi,
This patch fixes outs/ins of MOV16mr instruction of X86.
Thanks.
diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td
index e9a0431..f5b2064 100644
--- a/lib/Target/X86/X86InstrInfo.td
+++ b/lib/Target/X86/X86InstrInfo.td
@@ -1412,7 +1412,7 @@ let SchedRW = [WriteStore] in {
def MOV8mr : I<0x88, MRMDestMem, (outs), (ins i8mem :$dst, GR8 :$src),
"mov{b}...
2013 Jul 10
3
[LLVMdev] [PATCH] x86: disambiguate unqualified btr, bts
...il.com>
> Cc: Chris Lattner <sabre at nondot.org>
> Signed-off-by: Ramkumar Ramachandra <artagnon at gmail.com>
> ---
> I've probably done something stupid; seems to build correctly, but
> that's all I know. Also, tests are pending.
>
> lib/Target/X86/X86InstrInfo.td | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td
> index f33ae2a..4950674 100644
> --- a/lib/Target/X86/X86InstrInfo.td
> +++ b/lib/Target/X86/X86InstrInfo.td
> @@ -1971,6 +1971,10 @@ def : InstAlias...
2008 Apr 15
4
[LLVMdev] Being able to know the jitted code-size before emitting
OK, here's a new patch that adds the infrastructure and the
implementation for X86, ARM and PPC of GetInstSize and GetFunctionSize.
Both functions are virtual functions defined in TargetInstrInfo.h.
For X86, I moved some commodity functions from X86CodeEmitter to
X86InstrInfo.
What do you think?
Nicolas
Evan Cheng wrote:
>
> I think both of these belong to TargetInstrInfo. And yes, it's a good
> idea, there are other passes which can make use of them, e.g. branch
> shortening.
>
> Thanks,
>
> Evan
>
>
>> Thanks,
>>...
2008 Apr 16
0
[LLVMdev] Being able to know the jitted code-size before emitting
...re's a new patch that adds the infrastructure and the
> implementation for X86, ARM and PPC of GetInstSize and
> GetFunctionSize. Both functions are virtual functions defined in
> TargetInstrInfo.h.
>
> For X86, I moved some commodity functions from X86CodeEmitter to
> X86InstrInfo.
>
> What do you think?
>
> Nicolas
>
>
> Evan Cheng wrote:
>>
>> I think both of these belong to TargetInstrInfo. And yes, it's a
>> good idea, there are other passes which can make use of them, e.g.
>> branch shortening.
>>
>> Tha...
2012 Mar 02
2
[LLVMdev] how to annotate assembler
...gt;> *pushdi2_rex64, movdi_1_rex64, floatdidf2_sse_interunit and other
>> patterns and study how they work.
>>
>> How to make the same annotation for clang output assembler code?
>>
>> test:
>> .Leh_func_begin1:
>> pushq %rbp # ??? what insn in X86InstrInfo.td?
>> .Llabel1:
>> movq %rsp, %rbp # ??? what insn in X86InstrInfo.td?
>> .Llabel2:
>> movq %rdi, -16(%rbp) # ??? what insn in X86InstrInfo.td?
>> movq -16(%rbp), %rax # ??? what insn in X86InstrInfo.td?
>> cvtsi2sdq %rax, %xmm0 # ??? what insn in X86...
2009 Nov 24
0
[LLVMdev] X86InstrInfo::GetInstSizeInBytes() calculating incorrect size
I'm noticing the X86InstrInfo::GetInstSizeInBytes() function returning
incorrect sizes for some instructions. I looked through the llvm-dev
archives and noticed that a patch was submitted once in April 2009 for
instruction length calculation on amd-64. I'm using Intel Core 2 Duo (64
bit) so maybe there is a similar issue?...
2013 Jul 10
0
[LLVMdev] [PATCH] x86: disambiguate unqualified btr, bts
...ris Lattner <sabre at nondot.org>
>> Signed-off-by: Ramkumar Ramachandra <artagnon at gmail.com>
>> ---
>> I've probably done something stupid; seems to build correctly, but
>> that's all I know. Also, tests are pending.
>>
>> lib/Target/X86/X86InstrInfo.td | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/lib/Target/X86/X86InstrInfo.td b/lib/Target/X86/X86InstrInfo.td
>> index f33ae2a..4950674 100644
>> --- a/lib/Target/X86/X86InstrInfo.td
>> +++ b/lib/Target/X86/X86InstrInfo.td
>> @@ -1971,6...
2017 Jul 11
2
error: In anonymous_4820: Unrecognized node 'VRR128'!
...st),
(STORE_DWORD addr:$dst, VRR128:$src)>;
but getting the following error;
STORE_DWORD: (st (bitconvert:v32i32 VRR128:{v32i32:v32f32}:$src),
addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>>
Included from /PIM/lib/Target/X86/X86.td:832:
/lib/Target/X86/X86InstrInfo.td:3166:1: error: In STORE_DWORD: Could not
infer all types in pattern!
def STORE_DWORD : I<0x70, MRMDestMem, (outs), (ins i2048mem:$dst,
VRR128:$src),
^
anonymous_4820: /PIM/lib/Target/X86/X86.td:832:
/lib/Target/X86/X86InstrInfo.td:3173:1: error: In anonymous_4820:
Unrecognized node 'VRR12...
2011 Nov 02
0
[LLVMdev] RFC: Upcoming Build System Changes
Just for informational purposes on a smaller system (Core 2 Duo MacBook Pro):
make none X86.td X86InstrInfo.cpp
real 11.568 217% 76.283 177% 34.435 169%
user 7.726 141% 70.659 100% 25.608 116%
sys 3.234 111% 3.992 100% 6.438 104%
make -j2 none X86.td X86InstrInfo.cpp
real 7.7346 145% 43.138 100% 25.77 127%
user 7.6072 139% 70.414 100% 26.589 121%
sys 3.2492 111% 3.984 100% 6.671 107%
c...
2014 Sep 18
3
[LLVMdev] predicates vs. requirements [TableGen, X86InstrInfo.td]
I tried to add an 'OptForSize' requirement to a pattern in X86InstrSSE.td,
but it appears to be ignored. However, the condition was detected when
specified as a predicate.
So this doesn't work:
def : Pat<(v2f64 (X86VBroadcast (loadf64 addr:$src))), (VMOVDDUPrm addr:
$src)>,
*Requires<[OptForSize**]>*;
But this does:
* let Predicates = [OptForSize]
2013 Nov 09
4
[LLVMdev] Error "Cannot emit physreg copy instruction"
...ng "llc err.ll -o err.s" generates the error.
I'm going to try and isolate even further, but as I'm not sure what I'm
looking for I don't know if I'll be successful. Does anybody know what
this error means?
Cannot emit physreg copy instruction
UNREACHABLE executed at X86InstrInfo.cpp:2899!
0 libLLVM-3.3.so 0x00007f9f68ddf642
llvm::sys::PrintStackTrace(_IO_FILE*) + 34
1 libLLVM-3.3.so 0x00007f9f68dde9a9
2 libpthread.so.0 0x00007f9f67a07cb0
3 libc.so.6 0x00007f9f67156425 gsignal + 53
4 libc.so.6 0x00007f9f67159b8b abort + 379
5 libLLVM-3.3.so 0x00007f9f68...
2018 Apr 17
0
How to create and insert a call MachineInstr?
Hi Tim,
I'm sorry to bother you again. Since I have met the problem, how to check
used registers and avoid clobbering live registers, which you mentioned in
the email.
I am working in the function X86InstrInfo::storeRegToStackSlot, which is in
lib/Target/X86/X86InstrInfo.cpp.
And I have an extra problem, may I use MOV64mr and two addReg to set two
registers as its arguments? I want to use content of one register as the
address to be stored, and content of the other register as the source.
Thanks a lot!...
2014 Sep 19
2
[LLVMdev] predicates vs. requirements [TableGen, X86InstrInfo.td]
...----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu]
> On Behalf Of Tom Stellard
> Sent: 19 September 2014 01:36
> To: Sanjay Patel
> Cc: llvmdev at cs.uiuc.edu
> Subject: Re: [LLVMdev] predicates vs. requirements [TableGen,
> X86InstrInfo.td]
>
> On Thu, Sep 18, 2014 at 03:25:07PM -0600, Sanjay Patel wrote:
> > I tried to add an 'OptForSize' requirement to a pattern in X86InstrSSE.td,
> > but it appears to be ignored. However, the condition was detected when
> > specified as a predicate.
> >
&g...
2016 Mar 24
0
Problem with inserting a function call after certain x86 instructions
...g the MachineFunctionPass and doing the
instrumentation in runOnMachineFunction(). But I do not know how to insert
a function call. In my work, I write a special function for a program to be
compiled and I need to insert this function after certain instructions
whose destination register is esp. In X86InstrInfo.cpp, there are two kinds
of call may be useful, namely X86::CALL32r and X86::CALL32m. And in
X86InstrInfo.td, there are three, namely call32i, call32m and CallImmAddr.
But I do not know how to use them to insert my special function. Besides, I
can not find LEAVE instruction in X86InstrInfo.cpp thou...
2017 Jul 11
2
error: In anonymous_4820: Unrecognized node 'VRR128'!
...t;
>> but getting the following error;
>> STORE_DWORD: (st (bitconvert:v32i32 VRR128:{v32i32:v32f32}:$src),
>> addr:iPTR:$dst)<<P:Predicate_unindexedstore>><<P:Predicate_store>>
>> Included from /PIM/lib/Target/X86/X86.td:832:
>> /lib/Target/X86/X86InstrInfo.td:3166:1: error: In STORE_DWORD: Could not
>> infer all types in pattern!
>> def STORE_DWORD : I<0x70, MRMDestMem, (outs), (ins i2048mem:$dst,
>> VRR128:$src),
>> ^
>> anonymous_4820: /PIM/lib/Target/X86/X86.td:832:
>> /lib/Target/X86/X86InstrInfo.td:3173:1:...
2013 Nov 09
0
[LLVMdev] Error "Cannot emit physreg copy instruction"
...; generates the error.
>
> I'm going to try and isolate even further, but as I'm not sure what I'm
> looking for I don't know if I'll be successful. Does anybody know what
> this error means?
>
> Cannot emit physreg copy instruction
> UNREACHABLE executed at X86InstrInfo.cpp:2899!
> 0 libLLVM-3.3.so 0x00007f9f68ddf642
> llvm::sys::PrintStackTrace(_IO_FILE*) + 34
> 1 libLLVM-3.3.so 0x00007f9f68dde9a9
> 2 libpthread.so.0 0x00007f9f67a07cb0
> 3 libc.so.6 0x00007f9f67156425 gsignal + 53
> 4 libc.so.6 0x00007f9f67159b8b abort + 379
&...