Displaying 20 results from an estimated 600 matches similar to: "Minimum requirements for package submission"
2010 Nov 01
2
[LLVMdev] Identify recursion in a call graph
On Oct 30, 2010, at 4:38 AM, Duncan Sands wrote:
>> Is there any facility in LLVM to identify recursion in a call graph?
...
> use the facilities in SCCIterator.h, or declare your pass to be a
> CallGraphSCCPass in which case it will work one strongly connected
> component at a time.
Converting my ModulePass to a CallGraphSCCPass doesn't seem feasible,
so I'll use
2010 Nov 02
2
[LLVMdev] Identify recursion in a call graph
Hi you basically need to find a cycles in the call graph. Do do this just
search google for a graph algorithm, then make it for your problem. See
http://en.wikipedia.org/wiki/Cycle_detection.
Jeff Kunkel
On Tue, Nov 2, 2010 at 4:27 AM, Duncan Sands <baldrick at free.fr> wrote:
> Hi Trevor,
>
> > Converting my ModulePass to a CallGraphSCCPass doesn't seem feasible, so
>
2010 Nov 02
0
[LLVMdev] Identify recursion in a call graph
Hi Trevor,
> Converting my ModulePass to a CallGraphSCCPass doesn't seem feasible, so I'll
> use llvm::scc_iterator. Here's what I have so far:
>
> bool MyModulePass::isRecursive() {
> CallGraphNode* rootNode = getAnalysis<CallGraph>().getRoot();
> for (scc_iterator<CallGraphNode*> SCCI = scc_begin(rootNode), E =
> scc_end(rootNode); SCCI != E; ++SCCI)
2012 Aug 13
3
[LLVMdev] Load serialisation during selection DAG building
I've got a question about how SelectionDAGBuilder treats loads.
The LLVM Language Reference Manual explicitly states that the order of volatile operations may be changed relative to non-volatile operations. However, when the SelectionDAGBuilder in LLVM 3.1 encounters a volatile load, it flushes all pending loads and then chains the volatile load onto them meaning that the volatile load must
2010 Nov 02
0
[LLVMdev] Identify recursion in a call graph
Also, could you write this in a separate pass, and obtain the results from
getAnalysis()? I think others would find it useful to discover if a Function
may be called recursively.
-Jeff Kunkel
On Tue, Nov 2, 2010 at 2:38 PM, Jeff Kunkel <jdkunk3 at gmail.com> wrote:
> Hi you basically need to find a cycles in the call graph. Do do this just
> search google for a graph algorithm, then
2010 Apr 07
2
[LLVMdev] graph abstraction proposal
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
implement my GraphTraits also for Inverse.
This could be solved using a compile time abstraction of Graph
instread of
2012 Aug 13
0
[LLVMdev] Load serialisation during selection DAG building
Steve,
I had created a patch last year that does something similar to what you
describe for regular loads and stores using aliasing information. I
think that the last message in the thread was:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20120402/140299.html
This approach has worked for me, but it is not the preferred solution
going forward. The preferred solution is to keep the
2009 Apr 06
2
[LLVMdev] debug stoppoint nodes with -fast option
I need to generate line number debug information for PIC16 target.
PIC16 does not support dwarf format. It supports coff format. So I need
to custom handle the STOPPOINT nodes. Without -fast option the STOPPOINT
nodes are not created in dag because of the below check in
SelectionDAGBuild.cpp
if (Fast)
DAG.setRoot(DAG.getDbgStopPoint(getRoot(),
If I give -fast option then the Fast
2006 Dec 19
3
[LLVMdev] alias-aware scheduling
Hello,
I did a little experiment modifying LLVM to be able to use alias-analysis
information in scheduling so that independent memory operations may be
reordered.
Attached is a patch which implements this. I copied some routines from
DAGCombiner.cpp for using SDOperands with alias queries; it should
probably be factored out somewhere so the code can be shared. I
reorganized
2008 Apr 28
1
[LLVMdev] FoldingSetNodeID operations inefficiency
Hi Chris,
Your were totally right with your suggestion.
I have implemented the code that :
a) does not merge multiple TokenFactor nodes in the DAGCombiner::visitTokenFactor(), if the resulting TF node would contain more than 64 operands.
b) produces a bunch of TokenFactor nodes with at most 64 operands,
instead of one huge TokenFactor in the SelectionDAGLowering::getRoot().
If we have n
2012 Aug 14
2
[LLVMdev] Load serialisation during selection DAG building
I looked into those patches but I don't think they will help in my situation because my problems occur during instruction selection rather than scheduling.
A simple and concrete example is a pattern like:
[(set GR:$dst (add GR:$src (nvload addr:$mem)))]
where nvload matches a load provided that isVolatile() is false.
If the selection DAG looks like:
| |
LD1 LD2
^
2006 Dec 20
1
[LLVMdev] alias-aware scheduling
On Tue, Dec 19, 2006 at 01:31:10PM -0800, Evan Cheng wrote:
>
> On Dec 19, 2006, at 12:13 PM, Dan Gohman wrote:
>
> > Hello,
> >
> > I did a little experiment modifying LLVM to be able to use alias-
> > analysis
> > information in scheduling so that independent memory operations may be
> > reordered.
>
> I am not sure if it is a good idea to
2010 Nov 03
2
[LLVMdev] Identify recursion in a call graph
On Nov 2, 2010, at 12:53 PM, Jeff Kunkel wrote:
> Also, could you write this in a separate pass, and obtain the
> results from getAnalysis()? I think others would find it useful to
> discover if a Function may be called recursively.
I've modified the code so that it correctly identifies both direct and
indirect recursion. I'm now trying to package it up as a patch for the
2009 Apr 06
0
[LLVMdev] debug stoppoint nodes with -fast option
On Apr 5, 2009, at 11:54 PMPDT, vasudev wrote:
> I need to generate line number debug information for PIC16 target.
> PIC16 does not support dwarf format. It supports coff format. So I
> need
> to custom handle the STOPPOINT nodes. Without -fast option the
> STOPPOINT
> nodes are not created in dag because of the below check in
> SelectionDAGBuild.cpp
> if (Fast)
2007 Nov 05
4
[LLVMdev] Two labels around one instruction in Codegen
Hi everyone,
In order to have exceptions for non-call instructions (such as sdiv,
load or stores), I'm modifying codegen so that it generates a BeginLabel
and an EndLabel between the "may throwing" instruction. This is what the
codegen of an InvokeInst does.
However, when generating native code, only BeginLabel is generated, and
it is generated after the instruction. I'm not
2009 Apr 08
2
[LLVMdev] debug stoppoint nodes with -fast option
Thanks for the info regarding DebugLoc field. Another related question
that I have is regarding debug info for local variables. With -fast
option, ISD::DECLARE nodes are created in DAG for debug info of local
variables. I am planning to custom handle these nodes, get the required
info from llvm.dbg.variable global address and emit it in ISel. But
without -fast option ISD::DECLARE nodes
2015 Jan 19
2
[LLVMdev] [INCOMPLETE] [GC] Support wrapping vararg functions in statepoint
I actually need this feature quite badly in my untyped language
compiler: since I support first-class functions, I've made the types of
all functions a standard vararg (so I can box them).
The implementation crashes when I try to read out the value of
gc.result. Hints as to what might be wrong?
Signed-off-by: Ramkumar Ramachandra <artagnon at gmail.com>
---
2013 Apr 12
2
[LLVMdev] Runtime exception in DominatorTree.getRootNode()
Thanks for your reply, John.
I am using opt to run my pass. Should opt by default link in the library?
Would you please give me some idea on fixing it? Thanks!
opt -load ../../../Debug+Asserts/lib/LLVMHello.dylib -hello < hello.bc >
/dev/null
My pass is just:
#include "llvm/IR/Function.h"
#include "llvm/Pass.h"
#include "llvm/Support/raw_ostream.h"
#include
2008 Apr 23
1
[LLVMdev] FoldingSetNodeID operations inefficiency
Hi,
While profiling LLVM using my test-cases with huge MBBs, I noticed that
FoldingSetNodeID operations (ComputeHash,insertion,etc) may become
really inefficient for the nodes, which have very many operands.
I can give you an example of what is meant by "very many". In my
test-case (you can fetch it from here
http://llvm.org/bugs/attachment.cgi?id=1275), which is just one HUGE MBB
2009 Apr 08
0
[LLVMdev] debug stoppoint nodes with -fast option
On Apr 7, 2009, at 9:52 PMPDT, vasudev wrote:
> Thanks for the info regarding DebugLoc field. Another related
> question
> that I have is regarding debug info for local variables. With -fast
> option, ISD::DECLARE nodes are created in DAG for debug info of local
> variables. I am planning to custom handle these nodes, get the
> required
> info from llvm.dbg.variable