search for: 4xi8

Displaying 8 results from an estimated 8 matches for "4xi8".

2016 Aug 26
2
Use of array type in globals in LTO
On 2016-08-26 11:32, Mehdi Amini wrote: > Hi, > >> Recently, I noticed that less number of global variables are merged in >> global-merge pass and in some global variable, array types are used >> instead of its original type. For example, [4xi8] with align 4 is used >> for a i32 global variable. For me, it seems that such pattern is >> observed after r278338 (Resolution-based LTO API). > > Are you sure it is performed in the global merge pass? Can you provide > an example of input IR where you see this now but di...
2016 Aug 26
3
Use of array type in globals in LTO
...t;> On 2016-08-26 11:32, Mehdi Amini wrote: >>> Hi, >>>> Recently, I noticed that less number of global variables are merged >>>> in global-merge pass and in some global variable, array types are >>>> used instead of its original type. For example, [4xi8] with align 4 >>>> is used for a i32 global variable. For me, it seems that such >>>> pattern is observed after r278338 (Resolution-based LTO API). >>> Are you sure it is performed in the global merge pass? Can you >>> provide >>> an example o...
2016 Aug 26
2
Use of array type in globals in LTO
Hi, Recently, I noticed that less number of global variables are merged in global-merge pass and in some global variable, array types are used instead of its original type. For example, [4xi8] with align 4 is used for a i32 global variable. For me, it seems that such pattern is observed after r278338 (Resolution-based LTO API). Can anyone give me little bit more insight if such type change was intended? If then why such uses of array type is needed? Thanks, Jun -- Qualcomm Data...
2016 Aug 26
2
Use of array type in globals in LTO
...rg wrote: >>>> On 2016-08-26 11:32, Mehdi Amini wrote: >>>>> Hi, >>>>>> Recently, I noticed that less number of global variables are merged in global-merge pass and in some global variable, array types are used instead of its original type. For example, [4xi8] with align 4 is used for a i32 global variable. For me, it seems that such pattern is observed after r278338 (Resolution-based LTO API). >>>>> Are you sure it is performed in the global merge pass? Can you provide >>>>> an example of input IR where you see this now...
2016 Aug 26
2
Use of array type in globals in LTO
...t;>> On 2016-08-26 11:32, Mehdi Amini wrote: >>>>>>> Hi, >>>>>>>> Recently, I noticed that less number of global variables are merged in global-merge pass and in some global variable, array types are used instead of its original type. For example, [4xi8] with align 4 is used for a i32 global variable. For me, it seems that such pattern is observed after r278338 (Resolution-based LTO API). >>>>>>> Are you sure it is performed in the global merge pass? Can you provide >>>>>>> an example of input IR where y...
2013 Aug 13
1
[LLVMdev] vector type legalization
Hi Nadav, I believe the implementation to keep on widening the vector to the next power of two must be in TargetLowering.h because that is where we decide whether to Widen the vector or not, and the size to which we widen it. In this case, we stop at 4xi8 and do not check if it is legal or not. But the comment says ‘try to widen vector elements until a legal type is found’. Also, there is a minor issue with the comment <3 x float> to <4 x float>, where the float vectors won’t even enter this block of code, since we check the element Vec...
2013 Aug 13
0
[LLVMdev] vector type legalization
...her to Widen the vector or not, and the size to which we widen it. The decision on which legalization kind to do is implemented in TargetLowering.h. The actual legalization methods are called from LegalizeTypes.cpp (TargetLowering::TypeXXXIntger and TypeXXXFloat). > In this case, we stop at 4xi8 and do not check if it is legal or not. But the comment says ‘try to widen vector elements until a legal type is found’. The comment is incorrect. Type-legalization is an iterative process. We first widen the vector to a power of two, and after that we split, promote, scalarize, etc. > &g...
2012 Oct 28
1
[LLVMdev] understanding of getelementptr with a const string
I'm working through some very basic IR code and got a bit confused by the string printing example. In particular, if you have a constant string like: @.str = private unnamed_addr constant [4 x i8] c"%d\0A\00" To pass this as a pointer to a C-function like printf you need to use 2 indexes in getelementptr: %sp = getelementptr [4 x i8]* @.str, i32 0, i32 0 I think I understand