Displaying 20 results from an estimated 6000 matches similar to: "[LLVMdev] Partial loop unrolling"
2012 Apr 26
2
[LLVMdev] Detect if a basicblock is part of a loop
Hi Rinaldini,
In order to find information about loops inside a given function you should use something like "LoopInfo *LI = P->getAnalysis<LoopInfo>()", remembering to add "AU.addRequired<LoopInfo>();" to your getAnalysisUsage method.
If the function you are interested to is not located in the module being compiled (if you created it as an auxiliary function,
2013 Jun 25
4
[LLVMdev] get value
Hi Cristianno,
Thank you, it works :)
with an extra cast:
Value *v ......
ConstantInt* RR = (ConstantInt *)v;
uint64_t VV = (RR->getValue()).getLimitedValue();
errs()<<"\nRR "<<VV<<"\n";
2012 Apr 26
0
[LLVMdev] Detect if a basicblock is part of a loop
Hi,
Depending on what have run before your pass, the loop may have been unrolled or simplified if the computation inside the loop is too simple.
Cheers,
--
Arnaud de Grandmaison
________________________________________
From: llvmdev-bounces at cs.uiuc.edu [llvmdev-bounces at cs.uiuc.edu] On Behalf Of Cristianno Martins [cristiannomartins at gmail.com]
Sent: Thursday, April 26, 2012 5:52 PM
To:
2013 May 31
2
[LLVMdev] Dead Code Elimination and undef values
Hello there,
I'm writing a transformation pass for LLVM, and I hoped to use dce to clean
up the resulting code after my pass. I just have some questions about
LLVM's dce implementation.
Well, my transformation is a function pass, and, after the changes are
made, some instructions are not needed anymore. In order to easily get rid
of those instructions, I'm setting all their uses to
2013 Apr 16
2
[LLVMdev] How to implement list in llvm
Thank you for your answer!
You are right, but I still don't know how to build such a list dynamically
using LLVM API with user type inside (I don't know this type yet ofc).
2013/4/15 Cristianno Martins <cristiannomartins at gmail.com>
> Hi,
>
> I guess you could use a template with a std::vector: you don't need to
> define right away the type, if you create a
2013 Jun 26
0
[LLVMdev] get value
Alexandru Ionut Diaconescu wrote:
> Hi Cristianno,
>
> Thank you, it works :)
>
> with an extra cast:
> Value *v ......
> ConstantInt* RR = (ConstantInt *)v;
Please use "cast<ConstantInt>(v)" instead. See
http://llvm.org/docs/ProgrammersManual.html#the-isa-cast-and-dyn-cast-templates
.
Nick
> uint64_t VV = (RR->getValue()).getLimitedValue();
>
2013 Jun 25
0
[LLVMdev] get value
Oops, that's true: I forgot about that XD sorry =)
Glad I could help,
--
Cristianno Martins
PhD Student of Computer Science
University of Campinas
cmartins at ic.unicamp.br
<cristiannomartins at hotmail.com>
On Tue, Jun 25, 2013 at 4:38 AM, Alexandru Ionut Diaconescu <
cyrusthevirus001x at yahoo.com> wrote:
> Hi Cristianno,
>
> Thank you, it works :)
>
> with
2013 Jun 01
0
[LLVMdev] Dead Code Elimination and undef values
Hi Cristianno,
On 01/06/13 01:49, Cristianno Martins wrote:
> Hello there,
>
> I'm writing a transformation pass for LLVM, and I hoped to use dce to clean up
> the resulting code after my pass. I just have some questions about LLVM's dce
> implementation.
>
> Well, my transformation is a function pass, and, after the changes are made,
> some instructions are not
2013 Apr 16
0
[LLVMdev] How to implement list in llvm
Hi,
Sorry, but I'm not sure I understand what you're trying to do. I guess you want some kind of superclass of some set of classes that are defined in the llvm api(?). In that case, which are specifically the types you could have in this list you're trying to define?
--
Cristianno Martins
On Tuesday, 16 de April de 2013 at 04:22, B B wrote:
> Thank you for your answer!
>
2013 May 14
2
[LLVMdev] Queue implementation is being trapped
Hello there,
I'm trying to use a simple implementation of a queue (my own implementation
of it, actually), and I'm trying to use the functions defined on my queue
class inside some llvm-ir code. Unfortunately, the names of the functions
are being messed up, then I created some function wrappers just to avoid
having to deal with the C++ weird function renaming.
So, to easily wrapper the
2015 May 06
3
[LLVMdev] (Possibly buggy?) doFinalization method behavior of FunctionPass
Hello again,
First of all, thanks for all the answers =) they really helped a lot =D
*Have you verified that some other pass is not adding the function
declarations back in after your pass is executed (e.g., by using the
-debug-pass=Executions argument to see what passes run after your pass)?*
I considered that for a moment, but I realized that wouldn't be possible
for two reasons: I
2013 Jun 25
2
[LLVMdev] get value
Hello !
This may be a trivial question, but I cannot get fields from a Value type.
If my Value is i32 1, how can I store 1 in a different structure (an integer) ? For the type, I have getType(). For the value, I see no method in Value.h.
I tried to cast to ConstantExpr and then to get operands, or cast to ConstantDataArray and then use getAsString(), but is not working. How should I get the
2009 Apr 22
4
[LLVMdev] Strange loop unrolling problem
I am having a strange problem with loop unrolling. Attached is
a small example that demonstrates what happens.
There is a for-loop with a known trip count, and some control
flow inside the loop. If the condition of the control flow only
depends on the loop index and loop invariant variables, the loop
is not unrolled. However, if the condition involves potentially
loop variant variables, the loop
2013 May 14
0
[LLVMdev] Queue implementation is being trapped
On Tue, May 14, 2013 at 11:42 AM, Cristianno Martins <
cristiannomartins at gmail.com> wrote:
> Hello there,
>
> I'm trying to use a simple implementation of a queue (my own
> implementation of it, actually), and I'm trying to use the functions
> defined on my queue class inside some llvm-ir code. Unfortunately, the
> names of the functions are being messed up,
2012 May 24
0
[LLVMdev] data dependency and fully loop unrolling
Cheng,
Are you looking specifically for an analysis that can 'undo' the
effects of loop unrolling, or do you want dependency analysis that can
run on the loop prior to unrolling?
For dependency analysis on loops (prior to unrolling) Preston and
Sanjoy have been working on this, see:
http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-May/049769.html
2016 Oct 12
2
Loop Unrolling Fail in Simple Vectorized loop
Hi all,
Attached herewith is a simple vectorized function with loops performing a
simple shuffle.
I want all loops (inner and outer) to be unrolled by 2 and as such used
-unroll-count=2
The inner loops(with k as the induction variable and having constant trip
counts) unroll fully, but the outer loop with (j) fails to unroll.
The llvm code is also attached with inner loops fully unrolled.
To
2016 Oct 13
2
Loop Unrolling Fail in Simple Vectorized loop
Thanks for the explanation. But I am a little confused with the following
fact. Can't LLVM keep vectorizable_elements as a symbolic value and convert
the loop to say;
for(unsigned i = 0; i < vectorizable_elements ; i += 2){
//main loop
}
for(unsigned i=0 ; i < vectorizable_elements % 2; i++){
//fix up
}
Why does it have to reason about the range of vectorizable_elements? Even
2013 Jun 25
0
[LLVMdev] get value
Hi Alexandru,
if you have a Value pointer named v, you could use the method v->getValue().
getLimitedValue(), which returns uint64_t, that can be casted as int.
Hope I could help,
--
Cristianno Martins
PhD Student of Computer Science
University of Campinas
cmartins at ic.unicamp.br
<cristiannomartins at hotmail.com>
On Tue, Jun 25, 2013 at 4:05 AM, Alexandru Ionut Diaconescu <
2016 Oct 13
2
Loop Unrolling Fail in Simple Vectorized loop
If count > MAX_UINT-4 your loop loops indefinitely with an increment of 4,
I think.
On Thu, Oct 13, 2016 at 4:42 PM, Charith Mendis via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> So, I tried unrolling the following simple loop.
>
> int unroll(unsigned * a, unsigned * b, unsigned *c, unsigned count){
>
> for(unsigned i=0; i<count; i++){
>
> a[i] =
2016 Jun 23
4
[cfe-dev] clang++ build from source is not able to find C++ headers
Hi Vivek,
you can also include these lines below to your ~/.bash_profile:
LLVM_BUILD="/Developer/llvm/build" # Path to your build directory
alias new-clang="$LLVM_BUILD/bin/clang -Wno-expansion-to-defined
-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include"
alias new-clang++="$LLVM_BUILD/bin/clang++