Displaying 20 results from an estimated 34 matches for "typelegalization".
2011 Dec 13
0
[LLVMdev] [LLVM, llc] TypeLegalization, DAGCombining, vectors loading
Probably, I misunderstood MemoryVT purpose? Should it be a type that
equal to original vector type (e.g. v2i5). Or it is a type of memory
area for this vector (e.g. v2i8) ?
-Stepan.
Stepan Dyatkovskiy wrote:
> Hi all. The question about 'load' instruction.
> When we promote
> v2i5 = load<addr> ;<MemoryVT = v2i5>
> to
> v2i64 = load<addr> ;<MemoryVT
2011 Dec 13
0
[LLVMdev] [LLVM, llc] TypeLegalization, DAGCombining, vectors loading
Hi Stepan,
> Yes. It doesn't works properly. I also read the your discussion in bug 1784:
> http://llvm.org/bugs/show_bug.cgi?id=1784
> I found that know Type and Vector Lagalization and in DAGCombining implicitly
> assumed that element size of MemoryVT is multiply of 8 bits. Thats the main
> reason why v2i5 works improperly with load/store. But I can't determine exactly
2011 Dec 14
1
[LLVMdev] [LLVM, llc] TypeLegalization, DAGCombining, vectors loading
...adav
[1] Intel's OpenCL SDK Vectorizer
-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Dan Gohman
Sent: Tuesday, December 13, 2011 23:21
To: Stepan Dyatkovskiy
Cc: llvmdev at cs.uiuc.edu
Subject: Re: [LLVMdev] [LLVM, llc] TypeLegalization, DAGCombining, vectors loading
On Dec 13, 2011, at 11:37 AM, Stepan Dyatkovskiy wrote:
> Please ignore my concurrent post :-) Lets proceed in this branch.
>
>> do you understand what it means in the non-vector case?
> I'm beginning to understand it now. It means the type that...
2011 Dec 12
3
[LLVMdev] [LLVM, llc] TypeLegalization, DAGCombining, vectors loading
Hi all. The question about 'load' instruction.
When we promote
v2i5 = load <addr> ; <MemoryVT = v2i5>
to
v2i64 = load <addr> ;<MemoryVT = v2i5>
should we insert vector shuffling that moves second v2i5 item to the
second v2i64 item?
Or it is still depends from target?
Thanks.
-Stepan.
2011 Dec 13
0
[LLVMdev] [LLVM, llc] TypeLegalization, DAGCombining, vectors loading
On Dec 13, 2011, at 11:37 AM, Stepan Dyatkovskiy wrote:
> Please ignore my concurrent post :-) Lets proceed in this branch.
>
>> do you understand what it means in the non-vector case?
> I'm beginning to understand it now. It means the type that should be in
> abstract VM memory. Isn't it? The main question about MemoryVT is:
> should it be original always (as it
2011 Dec 13
3
[LLVMdev] [LLVM, llc] TypeLegalization, DAGCombining, vectors loading
Yes. It doesn't works properly. I also read the your discussion in bug
1784: http://llvm.org/bugs/show_bug.cgi?id=1784
I found that know Type and Vector Lagalization and in DAGCombining
implicitly assumed that element size of MemoryVT is multiply of 8 bits.
Thats the main reason why v2i5 works improperly with load/store. But I
can't determine exactly what MemoryVT means...
-Stepan.
2011 Dec 13
3
[LLVMdev] [LLVM, llc] TypeLegalization, DAGCombining, vectors loading
Please ignore my concurrent post :-) Lets proceed in this branch.
> do you understand what it means in the non-vector case?
I'm beginning to understand it now. It means the type that should be in
abstract VM memory. Isn't it? The main question about MemoryVT is:
should it be original always (as it was defined in .ll) or not?
About vectors with element size less than 8 bits. This
2010 Feb 11
3
[LLVMdev] adding switches to llvm-ld to disable certain optimizations.
Dan Gohman wrote:
> Have you ever investigated the following approach? Define fake
> register+register forms of common instructions, in addition to the
> register+memory forms. Let the instruction selector work as if
> everything were in registers. Then, since there's only one physical
> register, the register allocator will have to spill, and the spills
> and reloads can
2010 Feb 11
0
[LLVMdev] adding switches to llvm-ld to disable certain optimizations.
On Feb 10, 2010, at 9:17 PM, Sanjiv Gupta wrote:
> Dan Gohman wrote:
>> Have you ever investigated the following approach? Define fake
>> register+register forms of common instructions, in addition to the
>> register+memory forms. Let the instruction selector work as if
>> everything were in registers. Then, since there's only one physical
>> register, the
2017 Sep 14
2
Question about 'DAGTypeLegalizer::SplitVecOp_EXTRACT_VECTOR_ELT'
Hi All,
I have a question about splitting 'EXTRACT_VECTOR_ELT' with 'v2i1'. I
have a llvm IR code snippet as following:
llvm IR code snippet:
for.body: ; preds = %entry,
%for.cond
%i.022 = phi i32 [ 0, %entry ], [ %inc, %for.cond ]
%0 = icmp ne <2 x i32> %vecinit1, <i32 0, i32 -23>
%1 = extractelement <2 x i1>
2012 May 24
1
[LLVMdev] Predicate registers/condition codes question
On 25/05/2012 00:40, Sebastian Pop wrote:
> On Thu, May 24, 2012 at 5:06 PM, Hal Finkel<hfinkel at anl.gov> wrote:
>> Sebastian,
>>
>> First, it might be useful to look at what is done in the PowerPC
>> backend. PPC also has condition registers that are larger than the
>> 1-bit conditional results, and it defines 1-bit subregisters in
>> addition to
2011 Aug 04
3
[LLVMdev] Multiple one-line bugs in LLVM
Hi. There are few one-line bugs Andrey Karpov have found with static analisys.
He wrote a big article in russian on http://habrahabr.ru/blogs/compilers/125626/
for advertising purposes of static analyzer for Visual Studio his company
developed.
Most of the problems are easy to fix, so I list them in here for trunk version.
Also few problems in clang code were found, I don't list them in here.
2012 Jun 25
2
[LLVMdev] Is llc broken for Cortex-A9 + neon ?
Hi all,
considering following .ll file
; ModuleID = 'vect3x.ll'
target triple = "armv7-none-linux-gnueabi"
define arm_aapcscc void @test_hi_char8(i8* %.T0351, <8 x i8>* nocapture %srcA, <4 x i8>* nocapture %dst) noinline {
L.entry:
%0 = tail call arm_aapcscc i32 (...)* @get_global_id(i8* %.T0351, i32 0)
%1 = bitcast <8 x i8>* %srcA to <4 x i8>*
2012 Jun 13
2
[LLVMdev] Instructions working on 64bit registers without true support for 64bit operations
Hi LLVM-Folks,
at our department we have an in-house developed back-end for the
TriCore processor and we want to upgrade it to LLVM 3.1. However, we
have some troubles regarding some instructions that work on 64bit
registers:
The TriCore processor has 16 32bit registers that can be paired to
form 64bit registers. Except a few instructions all work on 32bit
registers, thus the TriCore processor
2017 Sep 15
2
Question about 'DAGTypeLegalizer::SplitVecOp_EXTRACT_VECTOR_ELT'
> extends the elements to 8bit and stores them on stack.
Store is responsible for zero-extend. This is the policy...
- Elena
-----Original Message-----
From: jingu at codeplay.com [mailto:jingu at codeplay.com]
Sent: Friday, September 15, 2017 17:45
To: llvm-dev at lists.llvm.org; Demikhovsky, Elena <elena.demikhovsky at intel.com>; daniel_l_sanders at apple.com
Subject: Re: Question
2017 Feb 02
3
Tracking parts of expanded values in optimized debug
Hi all,
I'm currently working on an out-of-tree backend and am trying to
improve the debug experience when debugging optimized code. Our
backend only has 8-bit and 16-bit legal types, so any larger values
are expanded. The behavior I am currently seeing is that the expanded
halves of an illegal type lose their debug information. Is this the
expected behavior?
For example, if I have an
2012 Jun 25
0
[LLVMdev] Is llc broken for Cortex-A9 + neon ?
Sounds like a bug in vector promote. If I restore this flag and use
-promote-elements=0 everything works for me.
Please fill a PR in LLVM bugzilla and assign to Nadav.
On Mon, Jun 25, 2012 at 5:04 PM, Sebastien DELDON-GNB
<sebastien.deldon at st.com> wrote:
> Hi all,
>
>
> considering following .ll file
>
> ; ModuleID = 'vect3x.ll'
> target triple =
2017 Sep 17
2
Question about 'DAGTypeLegalizer::SplitVecOp_EXTRACT_VECTOR_ELT'
Please open a bugzilla ticket and attach your testcase. It will allow us to debug and fix the problem.
Thanks
- Elena
From: JinGu [mailto:jingu at codeplay.com]
Sent: Saturday, September 16, 2017 00:38
To: Demikhovsky, Elena <elena.demikhovsky at intel.com>; daniel_l_sanders at apple.com <daniel_l_sanders at apple.com>; Jon Chesterfield <jonathanchesterfield at
2011 Aug 04
0
[LLVMdev] Multiple one-line bugs in LLVM
Hi Lockal S,
> ----
>
> lib/Target/X86/X86ISelLowering.cpp:11689
> !DAG.isKnownNeverZero(LHS)&& !DAG.isKnownNeverZero(LHS))
>
> Note that there are identical subexpressions '!DAG.isKnownNeverZero (LHS)' to
> the left and to the right of the '&&' operator.
> The second subexpression should probably be !DAG.isKnownNeverZero(RHS)).
a patch
2010 Feb 10
0
[LLVMdev] adding switches to llvm-ld to disable certain optimizations.
On Feb 10, 2010, at 8:57 AM, Sanjiv Gupta wrote:
> Chris Lattner wrote:
>> On Feb 9, 2010, at 7:39 PM, Sanjiv Gupta wrote:
>>
>>
>>> Hi,
>>> I need to add switches like -disable-mem2reg, disable-gvn to llvm-ld.
>>> Currently CreateStandardLTOPasses takes in only DisableInternalize and
>>> DisableInliner switches.
>>>