search for: nontemporals

Displaying 20 results from an estimated 70 matches for "nontemporals".

Did you mean: nontemporal
2020 Apr 28
2
Nontemporal memory accesses and fences
The current specification of the behavior of the !nontemporal attribute in LLVM, and the __builtin_nontemporal_* functions in Clang, is rather spartan and underspecified. In effect, it says the following things: * Atomic !nontemporal has no defined semantics * !nontemporal may use special instructions to save cache bandwidth, such as "MOVNT" on x86. What is crucially lacking
2010 Feb 11
0
[LLVMdev] Metadata
On Thursday 11 February 2010 14:05:21 David Greene wrote: > Either ParseLoad and probably other instructions need to look for metadata > explicitly or ParseOptionalCommaAlign needs to know about general metadata. > > My inkling is to fix ParseOptionalCommaAlign. Sound reasonable? Well, that's a rat's nest. I backed up and thought maybe I have the metadata syntax wrong. So
2020 Apr 29
2
Nontemporal memory accesses and fences
...behalf of JF Bastien via llvm-dev <llvm-dev at lists.llvm.org> Sent: Tuesday, April 28, 2020 4:54 PM To: Cranmer, Joshua <joshua.cranmer at intel.com> Cc: llvm-dev at lists.llvm.org <llvm-dev at lists.llvm.org> Subject: Re: [llvm-dev] Nontemporal memory accesses and fences I see nontemporals as a nice builtin so you don’t have to hand-write the assembly. I don’t think existing hardware is consistent enough to allow us to expose nice semantics at a language or IR level, in the sense that we probably don’t want to define what happens if you step out of the comfortable uses for nontempora...
2010 Feb 11
3
[LLVMdev] Metadata
On Thursday 11 February 2010 13:31:58 David Greene wrote: > > Putting a bit (or multiple bits) in MachineMemOperand for this > > would also make sense. > > Is there any chance a MachineMemOperand will be shared by multiple > instructions? So I tried to do this: %r8 = load <2 x double>* %r6, align 16, !"nontemporal" and the assembler doesn't like it.
2010 Feb 11
4
[LLVMdev] Metadata
On Feb 11, 2010, at 12:50 PM, David Greene wrote: > On Thursday 11 February 2010 14:05:21 David Greene wrote: > >> Either ParseLoad and probably other instructions need to look for metadata >> explicitly or ParseOptionalCommaAlign needs to know about general metadata. >> >> My inkling is to fix ParseOptionalCommaAlign. Sound reasonable? > > Well, that's
2018 Jan 20
2
Non-Temporal hints from Loop Vectorizer
i have already seen usage of __builtin_nontemporal_store but i want to automate identification of non temporal loads/stores. i think i need to go for a pass. is it possiblee to detect non temporal loops without polly? On Sat, Jan 20, 2018 at 11:26 PM, Simon Pilgrim <llvm-dev at redking.me.uk> wrote: > On 20/01/2018 18:16, hameeza ahmed wrote: > > Actually i am working on vector
2018 Jan 20
2
Non-Temporal hints from Loop Vectorizer
Actually i am working on vector accelerator which will perform those instructions which are non temporal. for instance if i have this loop for(i=0;i<2048;i++) a[i]=b[i]+c[i]; currently it emits following IR; %0 = getelementptr inbounds [2048 x i32], [2048 x i32]* @b, i64 0, i64 %index %1 = bitcast i32* %0 to <16 x i32>* %wide.load = load <16 x i32>, <16 x i32>* %1,
2018 Jan 21
0
Non-Temporal hints from Loop Vectorizer
On 01/20/2018 12:29 PM, hameeza ahmed via llvm-dev wrote: > i have already seen usage of __builtin_nontemporal_store but i want to > automate identification of non temporal loads/stores. i think i need > to go for a pass. is it possiblee to detect non temporal loops without > polly? Yes, but we don't have anything that does that right now. The cost modeling is non-trivial,
2010 Feb 11
2
[LLVMdev] Metadata
On Thu, Feb 11, 2010 at 8:50 PM, David Greene <dag at cray.com> wrote: > > So I tried a bunch of things: > > %r8 = load <2 x double>* %r6, align 16, metadata !"nontemporal" > %r8 = load <2 x double>* %r6, align 16, metadata !nontemporal > %r8 = load <2 x double>* %r6, align 16, !{ metadata !"nontemporal" } > %r8 = load <2 x
2018 Jan 20
0
Non-Temporal hints from Loop Vectorizer
On 20/01/2018 18:16, hameeza ahmed wrote: > Actually i am working on vector accelerator which will perform those > instructions which are non temporal. > > for instance if i have this loop > > for(i=0;i<2048;i++) > a[i]=b[i]+c[i]; > > currently it emits following IR; > > >   %0 = getelementptr inbounds [2048 x i32], [2048 x i32]* @b, i64 0, > i64 %index
2010 Jan 04
2
[LLVMdev] Metadata
Is there some documentation about metadata and how to use it somewhere? The doxygen-generated stuff obviously doesn't specify things like how to create custom metadata kinds and all that jazz. As a few of us discussed at the latest dev meeting, I'd like to use custom metadata to annotate load/store instructions with "nontemporal" semantics to allow generation of instructions
2010 Feb 12
1
[LLVMdev] Adding NonTemporal
On Fri, Feb 12, 2010 at 1:43 PM, David Greene <dag at cray.com> wrote: > On Thursday 11 February 2010 17:40:24 David Greene wrote: >> While hacking around in the SelectionDAG build code, I've made the >> isVolatile, (new) isNonTemporal and Alignment parameters to >> SelectionDAG::getLoad/getStore and friends non-default. >> >> I've already caught one
2010 Feb 12
0
[LLVMdev] Adding NonTemporal
On Thursday 11 February 2010 17:40:24 David Greene wrote: > While hacking around in the SelectionDAG build code, I've made the > isVolatile, (new) isNonTemporal and Alignment parameters to > SelectionDAG::getLoad/getStore and friends non-default. > > I've already caught one bug in the XCore backend by doing this: > > if (Offset % 4 == 0) { > // We've
2016 Jan 14
4
RFC: non-temporal fencing in LLVM IR
I agree with Tim's assessment for ARM. That's interesting; I wasn't previously aware of that instruction. My understanding is that Alpha would have the same problem for normal loads. I'm all in favor of more systematic handling of the fences associated with x86 non-temporal accesses. AFAICT, nontemporal loads and stores seem to have different fencing rules on x86, none of them
2010 Feb 11
3
[LLVMdev] Adding NonTemporal
While hacking around in the SelectionDAG build code, I've made the isVolatile, (new) isNonTemporal and Alignment parameters to SelectionDAG::getLoad/getStore and friends non-default. I've already caught one bug in the XCore backend by doing this: if (Offset % 4 == 0) { // We've managed to infer better alignment information than the load // already has. Use an aligned
2010 Feb 11
0
[LLVMdev] Metadata
On Thu, Feb 11, 2010 at 12:56 PM, Chris Lattner <clattner at apple.com> wrote: > > On Feb 11, 2010, at 12:50 PM, David Greene wrote: > >> On Thursday 11 February 2010 14:05:21 David Greene wrote: >> >>> Either ParseLoad and probably other instructions need to look for metadata >>> explicitly or ParseOptionalCommaAlign needs to know about general
2018 Jan 20
0
Non-Temporal hints from Loop Vectorizer
On 20/01/2018 17:44, hameeza ahmed via llvm-dev wrote: > Hello, > > My work deals with non-temporal loads and stores i found non-temporal > meta data in llvm documentation but its not shown in IR. > > How to get non-temporal meta data? llvm\test\CodeGen\X86\nontemporal-loads.ll shows how to create nt vector loads in IR - is that what you're after? Simon.
2010 Feb 11
0
[LLVMdev] Metadata
On Thursday 11 February 2010 16:31:16 Garrison Venn wrote: > I don't think the lang ref metadata grammar section > (http://llvm.org/docs/LangRef.html#metadata) has been fully updated with > how !dbg metadata is used in > http://llvm.org/docs/SourceLevelDebugging.html. At least to me it is not > clear. In my mind I translate the phrase "LLVM IR allows metadata to be >
2018 Jan 20
2
Non-Temporal hints from Loop Vectorizer
Hello, My work deals with non-temporal loads and stores i found non-temporal meta data in llvm documentation but its not shown in IR. How to get non-temporal meta data? -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180120/7dd4ba6f/attachment.html>
2010 Feb 11
2
[LLVMdev] Metadata
On Thu, Feb 11, 2010 at 10:54 PM, David Greene <dag at cray.com> wrote: > On Thursday 11 February 2010 16:31:16 Garrison Venn wrote: >> I don't think the lang ref metadata grammar section >> (http://llvm.org/docs/LangRef.html#metadata) has been fully updated with >> how !dbg metadata is used in >> http://llvm.org/docs/SourceLevelDebugging.html. At least to me