Displaying 20 results from an estimated 1100 matches similar to: "[LLVMdev] Loop carried dependence analysis?"
2012 Nov 09
1
[LLVMdev] Loop carried dependence analysis?
Hi,
The DependenceAnalysis pass will find loop-carried dependences. However, it
is a conservative analysis and will sometimes suggest there may be more
dependences than actually exist. In your example, I expect the analysis is
confused for some reason and is returning the default confused response.
You could test it using the isConfused() method. Note that the DVEntry::ALL
direction is always
2012 Nov 06
1
[LLVMdev] Adding function attributes
Below is a stripped down version of the pass.
The compile line is: clang -O0 -S -emit-llvm -o test.S test.c && opt -S
-mem2reg -load <path to extract lib> -extract < test.S > test_opt.S
#include "llvm/Analysis/DependenceAnalysis.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/LoopPass.h"
#include
2015 Jul 29
1
[LLVMdev] Loop Dependence Analysis(getDistance())
Hi,
I am trying to use the DependenceAnalysis pass to get the Distance vector
for the innermost loop. I am in LLVM learing process. I have used the
following code inside my original code to get the distance vector. It is
not giving any syntax error but it is has some logical but and giving
segmentation fault.
void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();
2012 Nov 05
0
[LLVMdev] Adding function attributes
Hi Arnaldo,
On 05/11/12 10:02, Arnaldo wrote:
> Hi Duncan, thanks for the quick answer.
>
> Yes I'm sure the runOnModule is being called, and when I dump the functions
> before exiting the method I can see the AlwaysInline attribute.
>
> I'll check InlineAlways.cpp and will reimplement as last resource but I still
> wonder why this is not working.
if you want more
2012 Nov 05
2
[LLVMdev] Adding function attributes
Hi Duncan, thanks for the quick answer.
Yes I'm sure the runOnModule is being called, and when I dump the functions
before exiting the method I can see the AlwaysInline attribute.
I'll check InlineAlways.cpp and will reimplement as last resource but I
still wonder why this is not working.
On Mon, Nov 5, 2012 at 5:03 PM, Duncan Sands <baldrick at free.fr> wrote:
> Hi Arnaldo,
2012 Nov 13
0
[LLVMdev] loop carried dependence analysis?
Preston, thanks for the explanation and patch. Now it's printing the
direction and distance values.
On Tue, Nov 13, 2012 at 12:22 PM, Preston Briggs
<preston.briggs at gmail.com>wrote:
> Erkan, you're right. Sorry about that.
> Attached is the most recent version.
>
> Preston
>
>
>
> Hi Preston,
>> I am trying to use DA as well. I used your example
2012 Nov 13
2
[LLVMdev] loop carried dependence analysis?
Erkan, you're right. Sorry about that.
Attached is the most recent version.
Preston
Hi Preston,
> I am trying to use DA as well. I used your example and commands that you
> wrote in order to get DA information.
> However, it does not report any dependence info.
> I am wondering whether your local copy differs from the one on the
> repository ?
> Thanks.
> Erkan.
2012 Nov 14
0
[LLVMdev] loop carried dependence analysis?
On 13.11.2012, at 10:46, erkan diken <erkandiken at gmail.com> wrote:
Hi all,
Unfortunately, all my Hunks are failed when I apply : patch -p1 < da.patch
command.
The problem might be due to the fact that da.patch file was created against
revision 167549, but I am on revision 167719 (I believe the most recent
one).
I am not sure if this cause the problem ? But Preston may I ask you to
2012 Nov 13
2
[LLVMdev] loop carried dependence analysis?
Hi all,
Unfortunately, all my Hunks are failed when I apply : patch -p1 < da.patch
command.
The problem might be due to the fact that da.patch file was created against
revision 167549, but I am on revision 167719 (I believe the most recent
one).
I am not sure if this cause the problem ? But Preston may I ask you to
generate the patch file against revison 167719 ?
Thanks in advance.
On
2006 Jul 05
0
[LLVMdev] Critical edges
> If you don't want critical edges in the machine code CFG, you're going to
> have to write a machine code CFG critical edge splitting pass: LLVM
> doesn't currently have one.
>
> -Chris
Hey guys,
I've coded a pass to break the critical edges of the machine
control flow graph. The program works fine, but I am sure it is not
the right way of implementing it.
2006 May 03
1
[LLVMdev] Patch for transform dependencies
Hi,
A number of transforms are actually independent, so here's a partial fix. I
updated the
dependencies in a cluster of transforms: LowerSwitch, Mem2Reg, LowerSelect,
LowerAllocations, UnifyFunctionExitNodes.
The patch has been tested, but not extensively. PassManager doesn't
complain, and
the result of a test pass that requires all these (except for
LowerAllocations) together
works
2011 May 30
1
[LLVMdev] about writing a functionpass requiring a modulepass
---------- Forwarded message ----------
From: Qingan Li <ww345ww at gmail.com>
Date: 2011/5/30
Subject:
To: llvmdev at cs.uiuc.edu
Hi,
I wrote an analysis pass, myPass, inherited from both ModulePass and
ProfileInfo, and this pass requires the CallGraph, i.e.,
* class myPass : public ModulePass, public ProfileInfo { ...};*
* void myPass::getAnalysisUsage(AnalysisUsage &AU) const
2011 Aug 22
1
[LLVMdev] Infinite loop when adding a new analysis pass
I am trying to add an analysis pass as a FunctionPass, and let LICM
(LoopPass) depends upon it. So in LICM.cpp, I have the following:
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesCFG();
AU.addRequired<DominatorTree>();
AU.addRequired<LoopInfo>();
AU.addRequiredID(LoopSimplifyID);
AU.addRequired<AliasAnalysis>();
2011 May 30
0
[LLVMdev] (no subject)
Hi,
I wrote an analysis pass, myPass, inherited from both ModulePass and
ProfileInfo, and this pass requires the CallGraph, i.e.,
* class myPass : public ModulePass, public ProfileInfo { ...};*
* void myPass::getAnalysisUsage(AnalysisUsage &AU) const {*
* AU.addRequired<CallGraph>();*
* AU.setPreservesAll();*
*}*
Then, I assumes the UnreachableBlockElim (inherited from
2012 Apr 12
0
[LLVMdev] Function Pass Manager
Hi again,
I come back to this issue with an example. It's a pass which does
nothing but throw the 'Unable to schedule' error.
namespace {
struct MyPass : public FunctionPass {
static char ID; // Pass identification, replacement for typeid
MyPass() : FunctionPass(ID) {
initializeMyPassPass(*PassRegistry::getPassRegistry());
}
virtual void
2009 May 05
0
[LLVMdev] unable to schedule pass message
Hi,
Sorry for the spam, but perhaps someone has seen this before and can
answer. I am trying to add a new register allocator to my target, and would
like to use the Strong Phi Elimination pass. I am doing the following in my
allocator
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequiredID(MachineDominatorsID);
AU.addRequiredID(StrongPHIEliminationID);
2012 Mar 23
3
[LLVMdev] Function Pass Manager
Hi,
I'm writing a function pass which is dynamically loaded by opt and I
need some analysis and passes to be run before my pass:
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.addRequired<LoopInfo>();
AU.addPreserved<LoopInfo>();
AU.addRequiredID(LoopSimplifyID);
AU.addPreservedID(LoopSimplifyID);
2011 Dec 14
2
[LLVMdev] Adding dependency on MemoryDependenceAnalysis pass to LICM causes opt to get stuck in addPass
I'm attempting to add some support for hoisting/sinking of memory-using
intrinsics in loops, and so I want to use MemoryDependenceAnalysis in
LICM, but when I modify getAnalysisUsge to include this :
virtual void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesCFG();
AU.addRequired<DominatorTree>();
AU.addRequired<LoopInfo>();
2011 Dec 14
0
[LLVMdev] Adding dependency on MemoryDependenceAnalysis pass to LICM causes opt to get stuck in addPass
On Dec 14, 2011, at 7:09 AM, David Gardner wrote:
> I'm attempting to add some support for hoisting/sinking of memory-using
> intrinsics in loops, and so I want to use MemoryDependenceAnalysis in
> LICM, but when I modify getAnalysisUsge to include this :
>
> virtual void getAnalysisUsage(AnalysisUsage &AU) const {
> AU.setPreservesCFG();
>
2013 Dec 27
4
[LLVMdev] Using DependenceAnalysis::depends
Hi Preston,
Thank you for the prompt response.
You can use DependenceAnalysis to get the info you want by expensively
> testing all pairs of memory references.
Isn't all pairs testing incorrect in the sense that a pair may only exist
for a certain path? Consider the following example.
A[i] = 42; // S1
if( condition ) // C1
{
A[i] = 20; // S2
}
B[i] = A[i];