Displaying 12 results from an estimated 12 matches for "looputils".
2014 Dec 22
2
[LLVMdev] Modularizing LICM
One way you could go is to expose the interface in
include/llvm/Transforms/Utils/LoopUtils.h. There's a similar approach
in the LCSSA and LoopSimplify passes, both define functions used by
other passes (e.g LoopUnroll and LICM).
On Fri, Dec 19, 2014 at 10:58 PM, Philip Reames
<listmail at philipreames.com> wrote:
> I've come across similar use cases recently. In partic...
2017 Jan 31
2
RFC: Generic IR reductions
...ntered around adding a new vector reduce instruction or annotating the reduction PHI to allow pattern recognition later at codegen. However, these motivations are different to the ones I'm giving here.
Current status
==============
Today scalar loop reductions are recognized in IR through the LoopUtils isReductionPHI utility, and this creates a recurrence descriptor after doing some analysis. The descriptor gives us information about what kind of reduction it is, e.g. int add, int or, fp add, fp mul, minmax etc)
The vectorizer generates vector versions of these as a final reducing step after the...
2018 Mar 29
0
[RFC] I'd like to move RecurrenceDescriptor and LoopDescriptor in LoopUitls.h/.cpp from Transform/Utils tree to Analysis/Utils tree
...make it reusable. For example, other transformations can change the behavior depending on whether the loop is vectorizable or not.
Ideally, such analysis type code belongs to Analysis tree. One of the blocking factor is its use of RecurrenceDescriptor/InductionDescriptor, defined in Transform/Utils/LoopUtils.h.
Anything I should know before attempting to move those Descriptors under Analysis/Utils? Like known dependencies making them very hard to move to Analysis tree?
Recurrence and Inductions are again analysis type stuff. They really belong to Analysis tree, in my opinion.
Thanks,
Hideki Saito
-...
2015 Jul 28
2
[LLVMdev] RFC: LoopEditor, a high-level loop transform toolkit
...t jamesmolloy.co.uk>
>> wrote:
>>
>> Hi all,
>>
>> LLVM currently lacks a single coherent way to edit, modify and transform
>> loops. We have the Loop abstraction that provides some functionality, and
>> we have a cluster of functions and abstractions in LoopUtils, but each is
>> fairly cumbersome to use. There's also VersionedLoop, but that's quite
>> specific and not really extendable/composable.
>>
>> I've recently been trying to do some prototyping of a high level loop
>> optimization (unroll-and-jam) and ended u...
2014 Dec 15
2
[LLVMdev] Modularizing LICM
Hi,
I'm writing a new loop pass, and has a need to call LICM(Loop Invariant Code Motion) 'PromoteAliasSet' on modified loop.
For now I didn't found any why to call 'PromoteAliasSet' from my pass explicitly.
The only way is to schedule LICM pass after my pass.
For some reason my pass need more control and preferring to call LICM 'PromoteAliasSet' instead running
2016 Jan 12
2
greendragon build noisy due to mmap_stress.cc
...nclude/llvm/IR/IRBuilder.h
o *edit*:
llvm-revision.src/llvm/trunk/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp
o *edit*:
llvm-revision.src/llvm/trunk/lib/Transforms/InstCombine/InstCombineSelect.cpp
o *edit*:
llvm-revision.src/llvm/trunk/lib/Transforms/Utils/LoopUtils.cpp
o *edit*:
llvm-revision.src/llvm/trunk/lib/Transforms/Utils/SimplifyLibCalls.cpp
o *edit*:
llvm-revision.src/llvm/trunk/lib/Transforms/Vectorize/SLPVectorizer.cpp
o *edit*: llvm-revision.src/llvm/trunk/unittests/IR/IRBuilderTest.cpp
* Commit *257495* by *romangareev...
2018 Jan 22
0
RFC: Import of Integer Set Library into LLVM source tree
...ith loops in LLVM currently is unnecessarily difficult. Just
last week I was writing a transformation which split a loop into several
consecutive loops (where each of the p loops had ~n/p iterations). This
seems like a simple task, but even using (what I believe to be) our best
utilities from SCEV, LoopUtils, etc., by the time I dealt with multiple
induction variables, reductions, and more, plus keeping needed analyses
up to date, this transformation took hundreds of lines of code. We need
a better way of doing this. One of the capabilities within Polly is,
essentially, an infrastructure for rewriting...
2020 Mar 26
5
canonical form loops
Hello,
Quick question to see if I haven't missed anything: I would like convert counting down loops, i.e. loops with a constant -1 step value, to counting up loops, because the vectoriser is able to better deal with these loops (see e.g. D76838 that I was discussing today with Ayal). It looks like LoopSimplifyCFG and IndVarSimplify don't do this. So was just curious if I haven't
2018 Jan 23
0
RFC: Import of Integer Set Library into LLVM source tree
...ith loops in LLVM currently is unnecessarily difficult. Just last week I was writing a transformation which split a loop into several consecutive loops (where each of the p loops had ~n/p iterations). This seems like a simple task, but even using (what I believe to be) our best utilities from SCEV, LoopUtils, etc., by the time I dealt with multiple induction variables, reductions, and more, plus keeping needed analyses up to date, this transformation took hundreds of lines of code. We need a better way of doing this. One of the capabilities within Polly is, essentially, an infrastructure for rewriting...
2018 Feb 06
1
6 separate instances of static getPointerOperand(). Time to consolidate?
What LoopVectorize.cpp has are the following. Each function may have to have a separate consolidation discussion.
I'm bringing up getpointerOperand() since I actually found multiple instances defined/used.
DependenceAnalysis.cpp has isLoadOrStore(). LoopAccessAnalysis.cpp has getAddressSpaceOperand().
I'm sure there are others that might be worth discussing within this thread or a follow
2018 Jan 20
2
(no subject)
Hi Tobi,
I have some concerns about adding Polly into LLVM proper. I think that it's great that Polly is a part of the LLVM umbrella of projects, like Clang and LLDB. However, I am not convinced that Polly belongs in the LLVM compiler library. LLVM is a major dependency for so many external projects. Rust, Swift, GPU drivers by different vendors, and JIT compilers all rely on LLVM. Projects
2015 Jul 29
1
[LLVMdev] Error when i am using command make -j4 command in cygwin to compile safecode
...lease+Asserts build
llvm[2]: Compiling IteratedDominanceFrontier.cpp for Release+Asserts build
llvm[3]: Building X86.td assembly writer #1 with tblgen
llvm[2]: Compiling LazyCallGraph.cpp for Release+Asserts build
llvm[3]: Compiling LegalizeVectorOps.cpp for Release+Asserts build
llvm[3]: Compiling LoopUtils.cpp for Release+Asserts build
llvm[3]: Building X86.td DAG instruction selector implementation with tblgen
llvm[3]: Compiling LoopVersioning.cpp for Release+Asserts build
llvm[3]: Compiling LegalizeVectorTypes.cpp for Release+Asserts build
llvm[2]: Compiling LazyValueInfo.cpp for Release+Asserts bu...