Displaying 20 results from an estimated 10000 matches similar to: "HW loads wider than int"
2017 Jan 11
2
HW loads wider than int
On 11 January 2017 at 10:24, Jim Grosbach via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> ARM64 is like this. I suggest having a look at that backend (lib/Target/AArch64) and how it deals with implicit zeroing of the upper bits of the X registers.
ARM64 has a separate name for the registers as 32-bit values though
(W0-W30 rather than X0-X30). I could easily see DAG ISel throwing a
fit
2017 Jul 29
2
ISelDAGToDAG breaks node ordering
Hi,
During instruction selection, I have the following code for certain LOAD
instructions:
const LoadSDNode *LD = cast<LoadSDNode>(N);
SDNode* LDW = CurDAG->getMachineNode(AVR::LDWRdPtr, SDLoc(N), VT,
PtrVT, MVT::Other,
LD->getBasePtr(), LD->getChain());
// Honestly, I have no idea what this does, but other memory
// accessing instructions
2007 Nov 21
3
[LLVMdev] Add/sub with carry; widening multiply
I've been playing around with llvm lately and I was wondering something about the bitcode instructions for basic arithmetic. Is there any plan to provide instructions that perform widening multiply, or add with carry? It might be written as:
mulw i32 %lhs %rhs -> i64 ; widening multiply
addw i32 %lhs %rhs -> i33 ; widening add
addc i32 %lhs, i32 %rhs, i1 %c -> i33 ; add with carry
2017 Jul 31
0
ISelDAGToDAG breaks node ordering
On 7/29/2017 1:28 AM, Dr. ERDI Gergo via llvm-dev wrote:
> Hi,
>
> During instruction selection, I have the following code for certain
> LOAD instructions:
>
> const LoadSDNode *LD = cast<LoadSDNode>(N);
> SDNode* LDW = CurDAG->getMachineNode(AVR::LDWRdPtr, SDLoc(N),
> VT, PtrVT, MVT::Other,
> LD->getBasePtr(), LD->getChain());
>
2011 Mar 25
2
[LLVMdev] Possible missed optimization?
Hello, I've noticed the following issue while testing some codegen tests, i
would like to know if it's a missed optimization or i missed something out
here. This is for an out of tree backend im writing. I managed to reduce it
to the following C function:
void foo(int *a) // int here is 16bits
{
*a &= 0xFF;
}
This is the code before regalloc:
Live Ins: %R25R24
2009 Aug 24
0
[LLVMdev] Problems with DAG Combiner
On 24/08/2009, at 01.19, Stripf, Timo wrote:
>
> I had also a lot of problems to get the i1 operations working. E.g.
> I had to override the getSetCCResultType to get is working and for
> ADDE/ADDC the i1 target registers are hardcoded.
What is your SetCCResultType now?
Can you compile the CodeGen/Blackfin/basic-i1.ll test case? I never
got that one working with legal i1. The
2006 Jun 26
0
[klibc 30/43] parisc support for klibc
The parts of klibc specific to the parisc architecture.
Signed-off-by: H. Peter Anvin <hpa at zytor.com>
---
commit 078d6614054391efe17093f8d70340e2c0644ffb
tree 63a4bf899e5ca2ef3c0a8e9ef3098273012f7a33
parent ebd2860ad3dc19cb11fd5b9cc235cab54e9165f4
author H. Peter Anvin <hpa at zytor.com> Sun, 25 Jun 2006 16:58:36 -0700
committer H. Peter Anvin <hpa at zytor.com> Sun, 25 Jun
2009 Aug 23
2
[LLVMdev] Problems with DAG Combiner
Hi Jakob,
I forget to mention that I'm working atm on the old 2.5 release code base and not on the svn. So I don't know if the problem still exists. I'm going to test it now.
> The Blackfin DSP can do simple i1 operations with the CC flag and
> status bits. Initially I also marked i1 as a legal type, but it caused
> a lot of problems. Now I pretend that the CC register
2013 Dec 31
4
[LLVMdev] [Patch][RFC] Change R600 data layout
Hi,
I've prepared patches for both LLVM and Clang to change the
datalayout for R600. This may seem like a bold move, but I think it is
warranted. R600/SI is a strange architecture in that it uses 64bit
pointers but does not support 64 bit arithmetic except for load/store
operations that roughly map onto getelementptr.
The current datalayout for r600 includes n32:64, which is odd
2015 Apr 03
2
[LLVMdev] How to enable use of 64bit load/store for 32bit architecture
> On Apr 2, 2015, at 2:07 PM, Tom Stellard <tom at stellard.net> wrote:
>
> On Thu, Apr 02, 2015 at 01:35:55PM -0700, Pete Cooper wrote:
>> Hi James, Jim
>>
>> If you *really* want this to work in selection DAG then there is a solution, but its not pretty.
>>
>> First make i64 not be legal. Then, assuming the regclass you gave has some subregs, you
2005 Nov 25
0
Fix syscalls with more than four arguments on parisc
Reimplement __common_syscall in assembler. The 32-bit ABI says that
the fifth and sixth arguments to the function are passed on the stack,
but our syscall ABI says they are passed in %arg4 and %arg5 like the
64-bit ABI. Also, tried to optimize the code slightly by making use of
the cmpb delay slot to load the errno return of -1.
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
diff
2014 Oct 23
2
[LLVMdev] Question regarding getElementPtr/Addressing modes in backend
Hi Steve,
Thanks for the tip regarding MIOperandInfo, I didn't think of that part of
the tablegen description.
Sadly, I did actually mean: r1 = *(i0 += m0).
So increment i0 by m0. Read memory the memory location "pointed" to by i0.
Store in r1. Sadly I am not too familiar with compiler terminology, so I
don't know if there is a proper term for such a load.
On Thu, Oct 23,
2012 Mar 23
2
[LLVMdev] Fixing VAARG on PPC64
The PowerPC backend on PPC64 for non-Darwin (SVR4 ABI) systems
currently has a problem handling integer types smaller than 64 bits.
This is because the ABI specifies that these types are zero-extended to
64 bits on the stack and the default logic provided in LegalizeDAG does
not use that convention. Specifically, for these targets we have:
setOperationAction(ISD::VAARG, MVT::Other, Expand);
2016 Mar 15
2
how to type-legalize a dag
On Tue, Mar 15, 2016 at 2:21 PM, Krzysztof Parzyszek via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> On 3/15/2016 4:16 PM, Rail Shafigulin via llvm-dev wrote:
>
>> Below is the output of llc with a -debug-only=isel. As you could see the
>> output type for load, store, and add changes from v4i32 to i32 during
>> legalization. How can I preserve the output type to
2012 Mar 23
2
[LLVMdev] Fixing VAARG on PPC64
On Fri, 23 Mar 2012 09:50:12 +0100
Ivan Llopard <ivanllopard at gmail.com> wrote:
> Hi Finkel,
>
> Le 23/03/2012 05:50, Hal Finkel a écrit :
> > The PowerPC backend on PPC64 for non-Darwin (SVR4 ABI) systems
> > currently has a problem handling integer types smaller than 64 bits.
> > This is because the ABI specifies that these types are
> > zero-extended
2014 Dec 05
3
[LLVMdev] default operation action
Hi Guys,
I noticed that the operation actions( promote/expand/custom) are set per operation basis.
Wondering if we can set it up globally?
For example, I have native supported 32 bits registers, to handle 8 bits value operations, I want to do promote.
and to support 64 bit operations, I want to expand.
If I can set up the operation actions for the same type globally, then I can avoid to
2012 Jul 27
4
[LLVMdev] Vector promotion broken for <2 x [i8|i16]>
Vector promotion which is new in LLVM 3.1 is broken for sub32 bit types. The problem is in the VectorLegalizer::PromoteVectorOp.
The function getTypeToPromoteTo will return a <2 x i32> for a <2 x i8>, <2 x i16> or <4 x i8>. The problem is that there are no vectors of size 1 defined for i32 or i16. The attached patch fixes these issues.
This can be reproduced by setting in
2012 Mar 23
0
[LLVMdev] Fixing VAARG on PPC64
Hi Finkel,
Le 23/03/2012 05:50, Hal Finkel a écrit :
> The PowerPC backend on PPC64 for non-Darwin (SVR4 ABI) systems
> currently has a problem handling integer types smaller than 64 bits.
> This is because the ABI specifies that these types are zero-extended to
> 64 bits on the stack and the default logic provided in LegalizeDAG does
> not use that convention. Specifically, for
2007 Sep 26
2
[LLVMdev] Lowering operations to 8-bit!
I am trying to lower all llvm operations to 8-bit. So far I was trying
to have llvm do all that for me using things like:
setOperationAction(ISD::ADD, MVT::ii,Promote);
setOperationAction(ISD::ADD, MVT::i8,Legal);
setOperationAction(ISD::ADD, MVT::i16,Expand);
setOperationAction(ISD::ADD, MVT::i32,Expand);
However, I keep getting an assertion failure that operation can not be
expanded.
2014 Oct 23
2
[LLVMdev] Question regarding getElementPtr/Addressing modes in backend
----- Original Message -----
> From: "Bruce Hoult" <bruce at hoult.org>
> To: "Johnny Val" <johnnydval at gmail.com>
> Cc: "<llvmdev at cs.uiuc.edu>" <llvmdev at cs.uiuc.edu>
> Sent: Thursday, October 23, 2014 8:31:35 AM
> Subject: Re: [LLVMdev] Question regarding getElementPtr/Addressing modes in backend
>
> Many CPU