Displaying 20 results from an estimated 50 matches for "i24".
Did you mean:
24
2008 Nov 26
2
[LLVMdev] Does current LLVM target-independent code generator supports my strange chip?
On Wednesday 26 November 2008 09:31:26 Wei wrote:
> O...k... I try to make some conclusions:
>
> 1) The conversion from f32 to f24 or i32 to i24 should be written in
> the backend.
I disagree. This should be handled by the type legalization
infrastructure. After all, that's what it is for! However
there is currently no support for anything like f32 -> f24.
On the other hand, as I mentioned in another email, I think
i32 -> i...
2008 Nov 25
2
[LLVMdev] Does current LLVM target-independent code generator supports my strange chip?
Hi,
> I am not sure how legalizer and friends deal with i24 / f24 as legal
> types.
the type legalizer currently assumes that all legal integer types
have a power-of-two number of bits. I don't see any obstacles to
making it more general though. First off, i24 would need to be
added to the list of simple value types. Then the integer promotion...
2008 Nov 26
0
[LLVMdev] Does current LLVM target-independent code generator supports my strange chip?
...onDAG phase,
and it is also in the backend. Am I right? or I miss something.
> there is currently no support for anything like f32 -> f24
You say "there is currently no support for anything like f32 -> f24",
does it means I can not write codes like below?
addRegisterClass(MVT::i24, XXXRegisterClass);
If the target-indenpendent codegen supports i24, then I can writes
codes like above, then does it means LLVM backend codegen can handle
any i32->i24 and f32->f24 for me automatically? So that I don't need
to worry about i32->i24 and f32->f24?
> On the other...
2008 Nov 26
1
[LLVMdev] Does current LLVM target-independent code generator supports my strange chip?
...said, I think you could make f32/i32 work for your purposes -
given the limited types and memory operations of unextended GLSL. At a
minimum, I think that starting with f32/i32 would give you chance to
learn and understand more about LLVM.
If there are people who are willing to help you add i24/f24 to LLVM's
core code base or you have time to learn about LLVM's internals on
your own, then adding 24 bit support seems the safer path (if only
because it is recommended by people more knowledgeable than myself).
Dan
On Nov 26, 2008, at 4:38 AM, Wei wrote:
>> I disagree....
2014 Oct 21
2
[LLVMdev] Question regarding getElementPtr/Addressing modes in backend
Hi,
I am writing a backend and having issues with properly lowering the result
of getElementPtr ( specifically the add node that it generates).
If we take this IR:
%struct.rectangle = type { i24, i24 }
; Function Attrs: nounwind readonly
define i24 @area(%struct.rectangle* nocapture readonly %r) #0 {
entry:
%width = getelementptr inbounds %struct.rectangle* %r, i16 0, i32 0
%0 = load i24* %width, align 4, !tbaa !1
%height = getelementptr inbounds %struct.rectangle* %r, i16 0, i32 1...
2017 Oct 01
2
load with alignment of 1 crashes from being unaligned
Below is attached a full IR module that can reproduce this issue, but the
part to notice is this:
%Foo96Bits = type <{ i24, i24, i24, i24 }>
define internal fastcc i16 @main.0.1() unnamed_addr #2 !dbg !113 {
Entry:
%value = alloca %Foo96Bits, align 1
%b = alloca i24, align 4
%0 = bitcast %Foo96Bits* %value to i8*, !dbg !129
call void @llvm.memcpy.p0i8.p0i8.i64(i8* %0, i8* bitcast (%Foo96Bits* @4
to i8*), i6...
2008 Nov 26
0
[LLVMdev] Does current LLVM target-independent code generator supports my strange chip?
O...k... I try to make some conclusions:
1) The conversion from f32 to f24 or i32 to i24 should be written in
the backend.
Because we should not put any hardware dependent behaviors in the
frontend. If we may change our H/W platform to another one which
supports f32, i32 natively, we will only need to change the backend
codes.
For example:
The backend approach means that integer divi...
2014 Oct 23
2
[LLVMdev] Question regarding getElementPtr/Addressing modes in backend
...dval at gmail.com> wrote:
>
> > Hi,
> >
> > I am writing a backend and having issues with properly lowering the
> result of getElementPtr ( specifically the add node that it generates).
> >
> > If we take this IR:
> >
> > %struct.rectangle = type { i24, i24 }
> >
> > ; Function Attrs: nounwind readonly
> > define i24 @area(%struct.rectangle* nocapture readonly %r) #0 {
> > entry:
> > %width = getelementptr inbounds %struct.rectangle* %r, i16 0, i32 0
> > %0 = load i24* %width, align 4, !tbaa !1
> > %he...
2014 Oct 23
2
[LLVMdev] Question regarding getElementPtr/Addressing modes in backend
...t;
>
>
> > Hi,
> >
> > I am writing a backend and having issues with properly lowering the
> > result of getElementPtr ( specifically the add node that it
> > generates).
> >
> > If we take this IR:
> >
> > %struct.rectangle = type { i24, i24 }
> >
> > ; Function Attrs: nounwind readonly
> > define i24 @area(%struct.rectangle* nocapture readonly %r) #0 {
> > entry:
> > %width = getelementptr inbounds %struct.rectangle* %r, i16 0, i32 0
> > %0 = load i24* %width, align 4, !tbaa !1
> > %heig...
2008 Nov 24
0
[LLVMdev] Does current LLVM target-independent code generator supports my strange chip?
...? Because I can not find
> getExtendedIntegerVT in the llvm source codes.
> I am excited seeing this function, however I have the following more
> questions.
See ValueTypes.h and ValueTypes.cpp. Also this example:
@str = internal constant [4 x i8] c"%d\0A\00"
define void @foo2(i24 %a, i24 %b) nounwind {
entry:
%t1 = add i24 %a, %b
%t2 = zext i24 %t1 to i32
%t3 = tail call i32 (i8*, ...)* @printf( i8* getelementptr ([4 x
i8]* @str, i32 0, i32 0), i32 %t2 ) nounwind
ret void
}
declare i32 @printf(i8*, ...) nounwind
You can run llc on it to see how codegen deals wit...
2009 Dec 03
0
[LLVMdev] Adding multiples-of-8 integer types to MVT
Hi Ken,
> Would there be any interest/opposition to extending the set of simple
> integer types in MVT to include the missing multiples of 8 (up to 64
> bits)? That is: i24, i40, i48, i56?
the type legalizer would need some work. Consider an architecture which has a
24 bit register. Then the type legalizer should legalize an i40 by first
promoting it to an i48, then expanding that to two lots of i24.
Another issue is how vectors of i24 would be represented in memo...
2009 Nov 13
2
[LLVMdev] how to define a 24-bits register class
hi every one,
i have a very strange cpu that have 24-bits reigsters, but i cant see
i24 in machine value type? and if defining it as MVT others will be
ok?
thank you very much
2008 Nov 22
2
[LLVMdev] Does current LLVM target-independent code generator supports my strange chip?
...ion.
I think I am pretty new in LLVM world. wanna to get more help from you
expert. Thx.
Wei.
On Nov 21, 3:54 pm, Evan Cheng <ech... at apple.com> wrote:
> 24 bit is not unusual in the DSP world. I suppose int == 24 bit
> integer for some of these chips?
>
> There isn't a i24 simple type. However, you can create an extended
> integer type. See getExtendedIntegerVT. It's almost guaranteed you
> will have to change a chunk of target independent codegen to support
> the use of an extended type though.
>
> Evan
>
> On Nov 20, 2008, at 4:46 AM,...
2009 Nov 13
0
[LLVMdev] how to define a 24-bits register class
On Nov 13, 2009, at 6:45 AM, ether zhhb wrote:
> hi every one,
>
> i have a very strange cpu that have 24-bits reigsters, but i cant see
> i24 in machine value type? and if defining it as MVT others will be
> ok?
You'd want to add a new i24 MVT enum.
-Chris
2009 Dec 02
11
[LLVMdev] Adding multiples-of-8 integer types to MVT
Would there be any interest/opposition to extending the set of simple
integer types in MVT to include the missing multiples of 8 (up to 64
bits)? That is: i24, i40, i48, i56?
Adding the types to MVT (and ValueTypes.td) would allow LLVM to be
targeted to architectures that have registers and operations of these
sizes (for example, a 24-bit DSP that I'd like to develop a back end for
has 24-, 48- and 56-bit native integer types). Back ends are current...
2014 Sep 10
2
[LLVMdev] Machine Code for different architectures
...d expert,
(although maybe I'll need to be soon!), so I won't look at the patches
right now, however may at some stage in the future myself or colleague
may request these patches from yourself.
Yes, our 24-bit architectures have non-power-of-2 register sizes.
When you mentioned addition of i24 - would that facilitate this
architecture to claim that it's bytes are 24-bits in size? (Sorry for
being vague, but I'm a debugger person currently...)
thanks again for your help,
Matt
On Tue, 2014-09-09 at 18:55 +0000, Patrik Hägglund H wrote:
> Hi Matt,
>
> We maintain a se...
2009 Dec 05
2
[LLVMdev] Adding multiples-of-8 integer types to MVT
>> Would there be any interest/opposition to extending the set of simple
>> integer types in MVT to include the missing multiples of 8 (up to 64
>> bits)? That is: i24, i40, i48, i56?
By the way, the integer type legalization logic should probably go like
this: let T be an integer type.
(1) If T is legal, do nothing.
(2) If there is a legal integer type which is bigger (in bitwidth) than T,
then promote T to the smallest legal type which is bigger than T.
(3) I...
2009 Dec 09
0
[LLVMdev] Adding multiples-of-8 integer types to MVT
On Saturday, December 05, 2009 7:34 AM, Duncan Sands wrote,
>
> >> Would there be any interest/opposition to extending the
> set of simple
> >> integer types in MVT to include the missing multiples of 8
> (up to 64
> >> bits)? That is: i24, i40, i48, i56?
>
> By the way, the integer type legalization logic should
> probably go like
> this: let T be an integer type.
>
> (1) If T is legal, do nothing.
> (2) If there is a legal integer type which is bigger (in
> bitwidth) than T, then promote T to the smalles...
2015 Feb 02
3
[LLVMdev] LLVM IR i128
Hi everyone!
Here, I have a question and am curious about i128. I want to know how the LLVM handle i128, because many compiler backend doesn't support i128 directly. So I am very curious and want to how the llvm handle this situation? Besides i128, such as i256, i512, even i24? Thanks.
Best Regards
Wu Zhao
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150202/74395a81/attachment.html>
2014 Sep 09
3
[LLVMdev] Machine Code for different architectures
...w tricky this would be.
Matt
On Tue, 9 Sep 2014 11:49:01 +0100
Johnny Val <johnnydval at gmail.com> wrote:
> Hi Matthew,
>
> The byte==8 bits is more of a Clang issue rather than an LLVM issue. I
> believe your bigger issue will be the fact that you would need to make
> i24's a legal type in your backend, which as far as I know (unless
> something has changed recently), is a _big_ job. I briefly looked
> into it at one point, and decided to leave it for another day.
>
> I am also unsure how hard byte=8bits is backed into Clang. You might
> want to...