Displaying 20 results from an estimated 9000 matches similar to: "[LLVMdev] LoopInfo fails"
2010 Mar 31
0
[LLVMdev] LoopInfo fails
Hi!
if I have this little function:
float loopTest(float a, float b)
{
float x = 1.0f;
int i = 0;
if (a < b)
goto l;
for (i = 0; i < 10; ++i)
{
x *= a;
l:
x += b;
}
return x;
}
then llvm::LoopInfo does not detect that there is a loop.
Is this a bug or is such a case not allowed?
-Jochen
2010 Mar 11
0
[LLVMdev] how to access loopInfo
On Thursday 11 March 2010 12:36:55 Jochen Wilhelmy wrote:
> Hi!
>
> I'd like to analyze a function with the llvm::LoopInfo pass and then
> write some info to disk. I create a FunctionPassManager and insert it and
> a DominatorTree which is required by LoopInfo.
> As it turns out the analysis info is only available to other
> passes and gets cleared when the run function of
2010 Mar 11
2
[LLVMdev] how to access loopInfo
Hi!
I'd like to analyze a function with the llvm::LoopInfo pass and then
write some info to disk. I create a FunctionPassManager and insert it and
a DominatorTree which is required by LoopInfo.
As it turns out the analysis info is only available to other
passes and gets cleared when the run function of the pass manager returns.
I therefore guess that I need to create an own pass.
Is this
2011 Dec 29
0
[LLVMdev] InstCombine "pessimizes" trunc i8 to i1?
I think Chris is saying that the and is necessary because with your i1
trunc you're ignoring all of the high bits. The and implements that. If
you don't want this behavior, don't generate the trunc in the first place
and just compare the full width to zero.
Reid
On Wed, Dec 28, 2011 at 6:45 AM, Jochen Wilhelmy <j.wilhelmy at arcor.de>wrote:
>
> >> Hi!
>
2010 Mar 11
1
[LLVMdev] how to access loopInfo
Hi!
> I'm not sure what you mean by this new pass being of no use to other passes.
> It's not generating any new information about the program (or if it is, it's
> writing it to disk), so other passes wouldn't need it anyway.
>
So I know that I'm on the right way. I just think it's a bit of overhead
implementing an own pass
and register it using
2010 Nov 26
3
[LLVMdev] request for windows unicode support
On 25.11.2010 23:56, Michael Spencer wrote:
> On Nov 25, 2010, at 5:01 PM, Jochen Wilhelmy <j.wilhelmy at arcor.de
> <mailto:j.wilhelmy at arcor.de>> wrote:
>
>> Hi!
>>
>> Of course nobody wants to implement unicode support for windows
>> because windows should support an utf8-locale and windows is obsolete
>> anyway ;-)
>>
>> But
2011 Apr 30
0
[LLVMdev] LoopInfo are not able to identify some natural loops?
A natural loop is one whose header dominates all of the nodes in the loop. There is probably some block outside of the loop jumping to a block in the loop body.
Cameron
On Apr 29, 2011, at 7:43 PM, Bo Wu <bwu at cs.wm.edu> wrote:
> Hi,
>
> I found that some loops can not be identified by LoopInfo pass. For example, the loop at line 3094 of rdopt.c of benchmark 464.h264ref from
2010 Nov 25
0
[LLVMdev] request for windows unicode support
On Nov 25, 2010, at 5:01 PM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote:
> Hi!
>
> Of course nobody wants to implement unicode support for windows
> because windows should support an utf8-locale and windows is obsolete
> anyway ;-)
>
> But there is a simple solution: use boost::filesystem::path everywhere you
> use file names and paths, for example in
2011 May 01
2
[LLVMdev] LoopInfo are not able to identify some natural loops?
Thanks for the reply. The LoopInfo pass can actually identify the loop I
mentioned. My former question is due to a bug in my pass. What I worried is
that LoopInfo can not identify all the natural loops for the benchmarks I
use, but now I haven't found any such cases.
Bo
On Sun, May 1, 2011 at 4:24 PM, John Criswell <criswell at illinois.edu> wrote:
> On 4/30/11 8:52 AM, Bo Wu
2011 May 01
0
[LLVMdev] LoopInfo are not able to identify some natural loops?
On 4/30/11 8:52 AM, Bo Wu wrote:
> In C code, if a loop is not a natural loop, that means its loop body
> should at least have one label, right? In that case, some BB out of
> the loop can jump to the loop body, so the loop has more than on entry.
Off the top of my head, I would think you are right: a C label would
have to exist within the loop in order to have a jump from outside the
2012 Mar 02
0
[LLVMdev] replace hardcoded function names by intrinsics
On Fri, 02 Mar 2012 13:55:18 +0100
Jochen Wilhelmy <jochen.wilhelmy at googlemail.com> wrote:
> Hi!
>
> in the llvm code there are several places with hardcoded function
> names for e.g. sin, sinf, sqrt, sqrtf etc., namely
> ConstantFolding.cpp
> InlineCost.cpp
> SelectionDAGBuilder.cpp
> IntrinsicLowering.cpp
> TargetLowering.cpp
>
> my question is:
2010 Nov 26
2
[LLVMdev] request for windows unicode support
On Fri, 26 Nov 2010 09:28:17 -0500
Michael Spencer <bigcheesegs at gmail.com> wrote:
> On Fri, Nov 26, 2010 at 4:00 AM, Jochen Wilhelmy
> <j.wilhelmy at arcor.de> wrote:
> > No, this post was prompted since I switched to boost::filesystem
> > version 3 in my own code and llvm/clang 2.8
> > was the only lib with no unicode support on windows.
> > Will your
2010 Nov 26
0
[LLVMdev] request for windows unicode support
On Fri, Nov 26, 2010 at 4:00 AM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote:
> No, this post was prompted since I switched to boost::filesystem version 3
> in my own code and llvm/clang 2.8
> was the only lib with no unicode support on windows.
> Will your code be api compatible to boost::filesystem?
No. boost::filesystem makes extensive use of exceptions, which LLVM is
2010 Mar 03
0
[LLVMdev] folding x * 0 = 0
On 3 March 2010 11:56, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote:
>
> the sin and cos calls are folded, but not the mul by zero.
>
Is x*0 => 0 true if isnan(x)?
And cos(x)*sin(x) makes me desperately want to fold it to sin(2*x)/2,
but I suppose that's not allowed either.
2010 Jul 20
2
[LLVMdev] [cfe-dev] conditional operator
Hello Jochen-
Your expectation is incorrect, I'm afraid. Typically this would be expanded
to something like this:
…
%cmp = …
br i1 %cmp, label %ternary.true, label %ternary.false
ternary.true:
%truevalue = …
br label %ternary.end
ternary.false:
%falsevalue = …
br label %ternary.end
ternary.end:
%value = phi %type [%truevalue, %ternary.true], [%falsevalue,
2011 Apr 30
3
[LLVMdev] LoopInfo are not able to identify some natural loops?
In C code, if a loop is not a natural loop, that means its loop body should
at least have one label, right? In that case, some BB out of the loop can
jump to the loop body, so the loop has more than on entry.
Does LoopInfo guarantee to identify all natural loops? This property is very
important for my pass.
regards,
Bo
On Fri, Apr 29, 2011 at 11:50 PM, Cameron Zwarich <zwarich at
2010 Feb 02
0
[LLVMdev] function inlining
On Tue, Feb 2, 2010 at 11:40 AM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote:
> Hi!
>
> I have a llvm::Module that references an external function
> and a second mdoule that implements the function.
> The implementation consists of only one instruction.
> How can I explicitly inline this function?
>
> -Jochen
>
>
2010 Apr 08
0
[LLVMdev] graph abstraction proposal
On Thu, Apr 8, 2010 at 2:10 AM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote:
> Hi!
>
> while trying to use llvm::DominatorTreeBase on a custom graph that
> has nothing to do with llvm::BasicBlock I ran into some difficulties,
> because llvm::DominatorTreeBase calls e.g. getParent()->front()
> directly on the nodes and uses llvm::Inverse which forced me to
>
2010 May 14
0
[LLVMdev] vector optimization
Instcombine does of this, late codegen also does some of it.
-Chris
On May 14, 2010, at 5:58 AM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote:
> Hi!
>
> Is there a pass that optimizes vector operations?
> If I have for examle a sequence of shufflevector instructions
> that optimizes them?
> (in opencl notation e.g. a.xyzw.wzyx.xxxx -> a.wwww)
>
> -Jochen
2010 Oct 27
0
[LLVMdev] handle error of getPointerToFunction
Can you be more precise about where the error occurs? Depending on
where it is, LLVM may or may not be able to propagate the error
safely.
Reid
On Tue, Oct 26, 2010 at 4:05 PM, Jochen Wilhelmy <j.wilhelmy at arcor.de> wrote:
> Hi!
>
> I have this scenario:
> executionEngine->getPointerToFunction fails because a symbol can not be
> resolved.
>
> What can I do to