Displaying 20 results from an estimated 900 matches similar to: "ARM Backend BuildMI operand issues"
2018 Mar 22
0
ARM Backend BuildMI operand issues
On 03/22/2018 09:29 AM, Julius Hiller via llvm-dev wrote:
> Hello everyone,
>
> I'm working on a MachineFunctionPass that inserts a list of instructions into an Module so a later Pass can work on them.
> To do so I load a dummy .ll file created from a main stub, create the needed function stubs (ModulePass), insert Blocks and create instructions using BuildMI.
> I started with
2018 Mar 23
1
ARM Backend BuildMI operand issues
Thank you for your help Tom
you are totally right with the registers but the command you suggest
also doesn't work.
After some research I found the following thread on the mailing list:
http://lists.llvm.org/pipermail/llvm-dev/2017-February/110086.html
With your help and the information about the condition codes I was able
to resolve the error:
BuildMI(BB, BB.end(), DL,
2018 Jun 30
2
Using BuildMI to insert Intel MPX instruction BNDCU failed
Hello everyone, I'm a newbie of llvm. I'm trying to insert Intel MPX
instruction BNDCU with BuildMI. I add my machinefunctionpass
at addPreEmitPass2.
Here is the code of insertion:
BuildMI(MBB, MI, DL, TII->get(X86::BNDCU64rr)).addReg(X86::BND2,
RegState::Define).addReg(X86::R10);
And here is to stack track when I compiler program with modified llc:
2018 Jun 26
2
MachineFunction Instructions Pass using Segment Registers
This shouldn't have parsed.
movq (%gs), %r14
That's trying to use%gs as a base register which isn't valid. GNU assembler
rejects it. And coincidentally llvm-mc started rejecting it on trunk late
last week. That's probably why it printed as %ebp.
I don't know if there is an instruction to read the base of %gs directly.
Maybe rdgsbase, but that's only available on Ivy
2018 Jun 24
2
MachineFunction Instructions Pass using Segment Registers
The size suffix thing is a weird quirk in our assembler I should look into
fixing. Instructions in at&t syntax usually have a size suffix that is
often optional
For example:
add %ax, %bx
and
addw %ax, %bx
Are equivalent because the register name indicates the size.
but for an instruction like this
addw $1, (%ax)
There is nothing to infer the size from so an explicit suffix is
2010 Aug 09
1
[LLVMdev] Stack trace - clang
Hi,
I am new to LLVM and am trying to modify clang for some work. I tried to
insert an instruction: prefetchnta $100 at the beginning of a function.
I encountered a problem when I tried to debug it with gdb. There was an
assertion failure and printed some information without stack trace. The
process has been finished when it printed the information. I tried to
set a breakpoint at the
2018 Sep 22
3
Quick question: How to BuildMI mov64mi32 arbitrary MMB address to memory
Dear Mr. Northover,
Thank you for the quick reply. You are correct about the address-mode
operands :) . I guess an important detail left out was that the basic block
(call it A) that wants to calculate the address of the target stationary
trampoline basic block (call it B) will be moved around in memory during
run-time. Our earlier solution, before the feature was implemented to move
around (A)
2019 Apr 14
2
[A bug?] Failed to use BuildMI to add R7 - R12 registers for tADDi8 and tPUSH of ARM
Hi Craig,
Thanks for the information. Can you point to the source that specifies tGPR to be R0 - R7?
I tried to search in ARMInstrThumb.td but couldn’t find it.
Thanks,
- Jie
On Apr 14, 2019, at 15:28, Craig Topper <craig.topper at gmail.com<mailto:craig.topper at gmail.com>> wrote:
I believe there is probably a separate instruction in LLVM for thumb2 add. Probably starting with t2
2013 Feb 20
1
[LLVMdev] Question about accessing coprocesser register in prologue
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130220/a080958f/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 201302201044290_44YDXKW4.gif
Type: image/gif
Size: 14036 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130220/a080958f/attachment.gif>
2019 Apr 14
2
[A bug?] Failed to use BuildMI to add R7 - R12 registers for tADDi8 and tPUSH of ARM
Sorry for not being specific enough. ARMv7-M includes Thumb and Thumb2.
It has 12 regular registers (R0 - R12), and R8 - R12 are used.
I can generate mov instruction that from/ R8-R12 to/from R0-R6.
From this ARM page http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0068b/ch03s03s01.html
R9 - R12 have their conventional usage, but I don’t if this is the reason we cannot
use them
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
2016 Sep 14
4
setDataLayout segfault
I get a segfault with this code when setting the data layout:
int main(int argc, char** argv)
{
llvm::InitializeNativeTarget();
llvm::LLVMContext TheContext;
unique_ptr<Module> Mod(new Module("A",TheContext));
llvm::EngineBuilder engineBuilder(std::move(Mod));
std::string mcjit_error;
engineBuilder.setMCPU(llvm::sys::getHostCPUName());
2018 Apr 13
2
How to create and insert a call MachineInstr?
Thanks for your help! I'm much more clear about this problem.
Will
2018-04-13 17:53 GMT+08:00 Tim Northover <t.p.northover at gmail.com>:
> Hi Will,
>
> On 13 April 2018 at 09:50, Will Lester via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
> > I have used BuildMI to build a MachineInstr. But it seems that a call
> > MachineInstr only has one parameter
2014 Oct 27
4
[LLVMdev] Problem in X86 backend
Hi,
I'm having some trouble wirting an instruction in the X86 backend.
I made a new intrinsic and I wrote a custom inserter for my intrinsic in the X86 backend.
Everything works fine, except for one instruction that I can't find how to write.
I want to add this instruction in one of my machine basic block: mov [rdi], 0
How can I achieve that with the LLVM api? I tried several
2016 Sep 14
2
setDataLayout segfault
Ok. I can make a copy of the unique_ptr before moving it into the
builder's constructor and use the copy later on. It is confusing to
require a unique_ptr.
Frank
On 09/14/2016 12:11 PM, Frank Winter via llvm-dev wrote:
> I am constructing the engine builder in the following way:
>
> llvm::SMDiagnostic Err;
> unique_ptr<Module> Mod = getLazyIRFileModule("f.ll",
2013 Jan 27
2
[LLVMdev] lldb cannot display structure type for llvm3.2
I find the lldb cannot display structure type information, such as "print ArgLocs.size()" as follows,
-> 593 CCValAssign &VA = ArgLocs[i];
594 EVT ValVT = VA.getValVT();
595 ISD::ArgFlagsTy Flags = Ins[i].Flags;
596 bool IsRegLoc = VA.isRegLoc();
(lldb) print ArgLocs.size()
error: call to a function
2017 Jan 16
4
[RFC 0/2] Propose a new pointer trait.
Hi,
I'm part of an engineering team doing research on persistent memory support and
we have stumbled upon an interesting problem. The issue is, we would like to be
able to use the standard library containers in a persistent memory context
(think NVDIMM-N). What I mean is that you allocate a container from said
memory, use it like you normally would. After the application terminates,
expectedly
2018 Sep 28
3
error: expected memory with 32-bit signed offset
Hi,
I want to encode Loongson ISA initially
https://gist.github.com/xiangzhai/8ae6966e2f02a94e180dd16ff1cd60ac
gslbx $2,0($3,$4)
It is equivalent to:
dadd $1, $3, $4
lb $2,0($1)
I just use mem_simmptr as the default value of DAGOperand MO ,
because MipsMemAsmOperand use parseMemOperand to parse general
MemOffset and only *one* AnyRegister , for example:
0($1)
But
2013 Jan 28
0
[LLVMdev] lldb cannot display structure type for llvm3.2
This may be a debug info bug, if you could reduce it down a bit and file a
bug that'd be appreciated.
Thanks.
-eric
On Sun, Jan 27, 2013 at 12:11 AM, Jonathan <gamma_chen at yahoo.com.tw> wrote:
> I find the lldb cannot display structure type information, such as "print
> ArgLocs.size()" as follows,
>
> -> 593 CCValAssign &VA = ArgLocs[i];
>
2018 Jun 23
2
RFC: Should SmallVectors be smaller?
> On Jun 22, 2018, at 15:18, Reid Kleckner <rnk at google.com> wrote:
>
> On Thu, Jun 21, 2018 at 9:16 PM Duncan P. N. Exon Smith via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>> Out of curiosity, what brings this up?
>
> I've noticed that Clang is using more stack recently (we're seeing more crashes from