search for: getregforinlineasmconstraint

Displaying 9 results from an estimated 9 matches for "getregforinlineasmconstraint".

2016 Apr 07
2
Inline asm clobber registers name
...ant to create inline assembly and add this register to clobbers list. Inline assembly should look something like this: i32 asm "nop", "~{r0}" () We used AsmName for register MYReg0 inside clobbers list. But this constraint fails to work because TargetLowering::getRegForInlineAsmConstraint() tries to match register definition name (“MYReg0”) not its AsmName (“r0”). So to make this work we should write this assembly: i32 asm "nop", "~{MYReg0}" () I believe that this behavior is not correct. It works because in most back-ends register definition n...
2008 May 24
0
[LLVMdev] A quick update on FreeBSD support
On May 24, 2008, at 11:43 AM, Marcel Moolenaar wrote: > All, > > So far I've tried LLVM on amd64, i386, ia64 and powerpc under FreeBSD > and aside for ia64, things look pretty good for a first try. There > are 2 unexpected failures for PowerPC, which appear to be caused by > uninitialized memory. I'm still working on a fix for that (need to > brush up on my C++
2008 May 20
2
[LLVMdev] [ia64] Assertion failed: (!OpInfo.AssignedRegs.Regs.empty() && "Couldn't allocate input reg!")
...uot;ia64-portbld-freebsd8.0" define void @__ia64_set_fast_math() nounwind { entry: tail call void asm sideeffect "mov.m ar.fpsr=$0", "r"( i64 2709527404217215 ) nounwind ret void } \end{ll} (See gcc/config/ia64/crtfastmath.c) In llvm::TargetLowering::getRegForInlineAsmConstraint(), the "r" constraint (i.e. TargetLowering::C_RegisterClass) isn't handled and the function returns <pair>(0, NULL). However, it is explicitly called for that constraint by llvm::SelectionDAGLowering::visitInlineAsm(): if (OpInfo.ConstraintType == TargetLowering::C_Regis...
2008 May 24
2
[LLVMdev] A quick update on FreeBSD support
All, So far I've tried LLVM on amd64, i386, ia64 and powerpc under FreeBSD and aside for ia64, things look pretty good for a first try. There are 2 unexpected failures for PowerPC, which appear to be caused by uninitialized memory. I'm still working on a fix for that (need to brush up on my C++ skills). [sidenote: In FreeBSD -current, the memory allocator initializes memory with 0xa5
2008 May 20
0
[LLVMdev] [ia64] Assertion failed: (!OpInfo.AssignedRegs.Regs.empty() && "Couldn't allocate input reg!")
...id @__ia64_set_fast_math() nounwind { > entry: > tail call void asm sideeffect "mov.m ar.fpsr=$0", "r"( i64 > 2709527404217215 ) nounwind > ret void > } > \end{ll} > > (See gcc/config/ia64/crtfastmath.c) > > In llvm::TargetLowering::getRegForInlineAsmConstraint(), the "r" > constraint > (i.e. TargetLowering::C_RegisterClass) isn't handled and the function > returns > <pair>(0, NULL). However, it is explicitly called for that > constraint by > llvm::SelectionDAGLowering::visitInlineAsm(): It's llvm::TargetLoweri...
2008 May 24
5
[LLVMdev] A quick update on FreeBSD support
.../src/llvm/test/CodeGen/Generic/ 2007-04-27-LargeMemObject.ll for PR1557 Failed with exit(1) at line 1 while running: llvm-as < /dumpster/home/marcel/LLVM/src/llvm/test/ CodeGen/Generic/2007-04-27-LargeMemObject.ll | llc .ident "LLVM-ia64" .psr lsb .radix C .psr abi64 XXX: getRegForInlineAsmConstraint XXX: getRegForInlineAsmConstraint XXX: getRegClassForInlineAsmConstraint XXX: getRegForInlineAsmConstraint XXX: getRegForInlineAsmConstraint XXX: getRegClassForInlineAsmConstraint XXX: getRegForInlineAsmConstraint XXX: getRegForInlineAsmConstraint XXX: getRegClassForInlineAsmConstraint XXX: getRegF...
2008 May 20
1
[LLVMdev] [ia64] Assertion failed: (!OpInfo.AssignedRegs.Regs.empty() && "Couldn't allocate input reg!")
...rcel Moolenaar wrote: > On May 20, 2008, at 1:45 PM, Marcel Moolenaar wrote: >> The following IR is causing the assert: The issue here is that the IA64 backend doesn't have inline asm support yet. This should be pretty easy to add. Take a look at the X86 version: X86TargetLowering::getRegForInlineAsmConstraint it just maps "r" onto the GPR register class, itanium should do something similar. > Is it me or is the comment not really applicable to this particular > case? Right. The issue is that the target didn't return info about what it is, so the generic code is trying to guess...
2016 Jul 21
2
InlineAsm and allocation to wrong register for indirect access
Hi, I am seeing a case, in a private port, of an inline asm with indirect memory references being allocated invalid registers (i.e. registers that cannot be used on loads). For example, the inline asm constraint is correct: call void asm sideeffect "MOV $$r0, $0\0AMOV $$r0, $1\0A", "*m,*m,~{r0}"(i16* @a, i16* %b) #1, !srcloc !1 but then $0 and $1 are allocated to registers
2020 Jan 27
4
Limited use types in the back end
I am hoping that someone can offer advice on a somewhat unusual issue that I am facing with the SDAG. Namely, I am trying to implement some custom operations that do very specific things on multiple registers at a time. The operations themselves will simply be intrinsics since there are no equivalent operations in IR/SDAG. However, handling the types seems rather tricky. One approach I tried is