Displaying 20 results from an estimated 1000 matches similar to: "[LLVMdev] isLCSSAForm failed"
2010 Sep 13
1
[LLVMdev] isLCSSAForm failed
Hi folk,
I have a Module pass. I tested the pass against the following code.
./gcc.dg/20030721-1.c
extern void abort(void);
void foo(int) __attribute__((__noinline__));
void foo(int i)
{
abort();
}
int main()
{
int i;
int first= 0;
int last= 0;
while (last<3) {
last = first;
while (first<=last) {
first++;
for (i=0;i<3;i++)
last++;
if
2011 Jun 15
2
[LLVMdev] get LPPassManager to use it in llvm::CloneLoop
Thanks , your suggestion was welcome and CloneLoop works without passing the
LPPassManager.
However, I reached another problem. When the loop to be cloned has some
subloops, the subloops are not properly cloned. Some clones of the clones are
created and the CFG between the cloned basic blocks of the subloops is not
correctly built. There are clones like for.body.clone,
2011 May 09
0
[LLVMdev] get LPPassManager to use it in llvm::CloneLoop
On Mon, May 9, 2011 at 1:06 AM, Jimborean Alexandra
<xinfinity_a at yahoo.com> wrote:
> Hi,
>
> I try to write a FunctionPass that, among other tasks, has to clone some
> loops from the current function.
> How can I obtain the LPPassManager in order to use the CloneLoop function.
> In a LoopPass this is a parameter for the runOnLoop, but how can I obtain it
> in a
2016 Oct 17
2
LCSSA verification for the top-level loops
> On Oct 14, 2016, at 9:54 AM, Igor Laevsky <igor at azulsystems.com> wrote:
>>
>> Hi Michael,
> Hi Igor,
Hi Michael,
>
>>
>> +CC llvm-dev
>>
>> My guess is that it would be rather error prone to pinpoint exact places where we start populating new LPPassManager since it’s created lazily via LoopPass::assignPassManager. So we are risking to
2016 Oct 14
2
LCSSA verification for the top-level loops
Hi Michael,
+CC llvm-dev
My guess is that it would be rather error prone to pinpoint exact places where we start populating new LPPassManager since it’s created lazily via LoopPass::assignPassManager. So we are risking to miss adding verifiers in some of the LPPassManager’s.
One similar idea is to introduce LCSSAVerifier function pass and make LCSSA pass to be dependant on it. That will allow
2016 Oct 19
2
LCSSA verification for the top-level loops
Hi Igor,
On Oct 17, 2016, at 10:39 AM, Igor Laevsky <igor at azulsystems.com<mailto:igor at azulsystems.com>> wrote:
On Oct 14, 2016, at 9:54 AM, Igor Laevsky <igor at azulsystems.com<mailto:igor at azulsystems.com>> wrote:
Hi Michael,
Hi Igor,
Hi Michael,
Hi Michael,
What I was referring to is that we can write something like this inside LPPassManager iteration:
if
2011 Dec 12
0
[LLVMdev] problem with runOnLoop
On 12/12/11 9:59 AM, neda 8664 wrote:
> hi all,
>
> I want access to all basic blocks of function in a loop, so I used the
> following code:
>
> /bool parallel::runOnLoop(Loop *L, LPPassManager &LPM)
> {
> for (Function::iterator bi= func->begin(); bi != func->end(); bi++){
> //
> }
> }/
Are you modifying anything within this code
2011 Dec 12
1
[LLVMdev] problem with runOnLoop
I am changing structure of loops, I used std::vector<> but i get same
error, I can’t use FunctionPass :(
On Mon, Dec 12, 2011 at 8:03 PM, John Criswell <criswell at illinois.edu>wrote:
> On 12/12/11 10:25 AM, neda 8664 wrote:
>
> Thank you for your reply
> Yes, I change them, so what should I do for another loops?
>
>
> I don't really know what you should
2011 May 09
2
[LLVMdev] get LPPassManager to use it in llvm::CloneLoop
Hi,
I try to write a FunctionPass that, among other tasks, has to clone some loops
from the current function.
How can I obtain the LPPassManager in order to use the CloneLoop function.
In a LoopPass this is a parameter for the runOnLoop, but how can I obtain it in
a FunctionPass?
I tried simply by creating a new instance :
ValueMap<const Value *, Value* > VMap;
2011 Dec 12
0
[LLVMdev] problem with runOnLoop
On 12/12/11 10:25 AM, neda 8664 wrote:
>
> Thank you for your reply
>
> Yes, I change them, so what should I do for another loops?
I don't really know what you should do since I don't know what your code
does. All I know is that it's changing the function's control-flow graph.
If you're not modifying the structure of the loops in the function, then
you can
2011 Dec 12
1
[LLVMdev] problem with runOnLoop
Thank you for your reply
Yes, I change them, so what should I do for another loops?
On Mon, Dec 12, 2011 at 7:54 PM, neda 8664 <neda8664 at gmail.com> wrote:
> Thank you for your reply
>
> Yes, I change them, so what should I do for another loops?
>
> On Mon, Dec 12, 2011 at 7:42 PM, John Criswell <criswell at illinois.edu>wrote:
>
>> On 12/12/11 9:59 AM,
2011 Dec 12
4
[LLVMdev] problem with runOnLoop
hi all,
I want access to all basic blocks of function in a loop, so I used the
following code:
*bool parallel::runOnLoop(Loop *L, LPPassManager &LPM)
{
for (Function::iterator bi= func->begin(); bi != func->end(); bi++){
//
}
}*
First loop run without problem, but for second loop I get the following
error:
*0 libLLVM-2.9.so 0x0137d530
1 libLLVM-2.9.so 0x0137fa6c
2
2010 Nov 17
1
[LLVMdev] L->isLoopInvariant giving wrong results?
my changed code.
namespace {
class MyLoopPass:public LoopPass {
bool changed;
public:
static char ID;
Loop* curLoop;
// AnalysisType* AA;
DominatorTree* DT;
LoopInfo* LI;
MyLoopPass() : LoopPass(ID){}
bool isLoopInvariantInst(Instruction &I) ;
bool runOnLoop(Loop * L, LPPassManager &lpm);
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
2012 Jan 03
1
[LLVMdev] AliasAnalysis and memory dependency
i am sorry,
i get this error:
opt: /home/llvm/src/include/llvm/Support/CallSite.h:87: ValTy*
llvm::CallSiteBase<FunTy, ValTy, UserTy, InstrTy, CallTy, InvokeTy,
IterTy>::getCalledValue() const [with FunTy = const llvm::Function, ValTy =
const llvm::Value, UserTy = const llvm::User, InstrTy = const
llvm::Instruction, CallTy = const llvm::CallInst, InvokeTy = const
llvm::InvokeInst, IterTy =
2013 Apr 11
0
[LLVMdev] Issues with DependenceAnalysis
Hi there,
I've been playing with some benchmarks for a while, but I'm stuck with a very specific issue, that, I guess, must be some kind of bug.
Well, I wrote a pass that simply counts how many combinations of memory accesses (only stores and loads, on a given loop) has any dependence between them. Curiously, I didn't have any problems until I tried it out on one of the loops in the
2008 May 09
3
[LLVMdev] [PATCH] Split LoopUnroll pass into mechanism and policy
Hello Matthijs,
On May 9, 2008, at 3:47 AM, Matthijs Kooijman wrote:
> Hi All,
>
> the attached patch performs the splitting in the proposed manner.
> before applying the patch, please execute
> svn cp lib/Transforms/Scalar/LoopUnroll.cpp lib/Transforms/Utils/
> UnrollLoop.cpp
> to make the patch apply and preserve proper history.
>
> Transforms/Utils/UnrollLoop.cpp
2013 Mar 01
2
[LLVMdev] loop metdata instruction
Hi
I'm working on a project which needs loop-attached metadata similar to
the parallel metadata discussed in here. Currently I'm trying to make
the metadata get through the optimisation passes unscathed. For loop
passes, I've solved that by modifying the LPPassManager to check for
metadata presence before and after runOnLoop, and restoring it if
necessary (assuming the loop didn't
2012 Dec 16
0
[LLVMdev] LoopPass doFinalization() called multiple times per program?
Hi Stephen,
On 13/12/12 18:58, Stephen McGruer wrote:
> I'm wondering if the documentation for LoopPass
> (http://llvm.org/docs/WritingAnLLVMPass.html#LoopPass) is misleading or
> incorrect (or if I'm just missing something.) The documentation states:
>
> "The doFinalization method ... is called when the pass framework has finished
> calling runOnLoop
2012 Dec 13
2
[LLVMdev] LoopPass doFinalization() called multiple times per program?
I'm wondering if the documentation for LoopPass (
http://llvm.org/docs/WritingAnLLVMPass.html#LoopPass) is misleading or
incorrect (or if I'm just missing something.) The documentation states:
"The doFinalization method ... is called when the pass framework has
finished calling
runOnLoop<http://llvm.org/docs/WritingAnLLVMPass.html#runOnLoop> for
every loop in the program being
2012 Jul 23
0
[LLVMdev] llvm::LoopPass
Hello .
I'm trying to implement LoopPass.
Here is simple code :
class LoopParser: public llvm::LoopPass
{
public:
static char ID;
public:
virtual void getAnalysisUsage(llvm::AnalysisUsage &AU) const
{
AU.addRequiredID(llvm::LoopSimplifyID);
AU.addPreservedID(llvm::LoopSimplifyID);
AU.addRequired<llvm::LoopInfo>();
}