similar to: [LLVMdev] Processing functions in call graph SCC "order" with function-level analyses

Displaying 20 results from an estimated 2000 matches similar to: "[LLVMdev] Processing functions in call graph SCC "order" with function-level analyses"

2015 May 19
3
[LLVMdev] Processing functions in call graph SCC "order" with function-level analyses
Thanks John. Does this solve the problem of analysis availability though? If I still have to run the function analyses manually, I might as well keep rolling with the CallGraphSCCPass. (I probably should have mentioned that this is what I’m using right now.) Félix > Le 2015-05-19 à 10:12:32, John Criswell <jtcriswel at gmail.com> a écrit : > > On 5/18/15 10:45 PM, Félix Cloutier
2015 May 20
3
[LLVMdev] Processing functions in call graph SCC "order" with function-level analyses
So I got very mixed results. With the CallGraphSCCPass, both `addRequired<DominatorTreeWrapperPass>` and `addRequired<MemoryDependenceAnalysis>` fail at runtime. The LLVM core has just two CallGraphSCCPasses and neither uses neither analyses, so it's hard to find a valid example. I transformed the pass into a ModulePass, using scc_iterator as shown in CGPassManager to process
2009 Sep 03
3
[LLVMdev] SCCIterator and unconnected graphs
Hi, I am using the scc_iterator class in my code on a CallGraph, where some functions are not called from within the module. It seems that scc_iterator does not list all SCCs if the graph is not connected; only those nodes connected to the node pointed to by GraphTraits<...>::getEntryNode() are returned. Can someone verify this behavior? Any tips on how I should go about extending the
2006 Sep 29
2
[LLVMdev] FunctionPass requiring SCCs
I have a FunctionPass F that needs a list of all the SCCs for use in its doFinalization() method. Let's say I write a CallGraphSCCPass C that creates an array of all SCCs. Let C be required by F, and let F call getAnalysis<C>() from its doFinalization() method. Am I guaranteed that C's runOnSCC() method will have executed on all SCCs before F's doFinalization() method?
2011 Feb 22
4
[LLVMdev] Can I use Clang to parse snippets of C++ code?
Hello guys, I'd like to use Clang to parse snippets of (and emit bytecode for) C++ code that come from larger files that don't contain only C++, but looking at the clang interpreter example, either I didn't get it, or it looks like the driver expects only files, and not strings or char buffers. Is there a simple way to achieve this? Do I have to split my input into small files and
2009 May 10
1
[LLVMdev] Get the call graph SCCs from a function pass
>>> Does getAnalysis<CallGraph>() work? Thanks Edwin, that works! What about the CallGraphSCC ? It looks like one can declare a CallGraphSCCPass, but I don't see any other way to get the SCCs of the call graph. -- Nick Johnson
2010 Jul 08
2
[LLVMdev] Why shouldn't function entry blocks have predecessors?
The title says it all. verifyFunction checks it (Verifier.cpp, line 728). Why can't BasicBlocks that serve as a function's entry point also have predecessors? What keeps a function from looping back to its beginning? Félix -------------- next part -------------- An HTML attachment was scrubbed... URL:
2015 Apr 19
2
[LLVMdev] function pointer alias analysis
Hi I see when LLVM builds the CallGraph SCCs. a function calling through a function pointer is conservatively assumed to call internal and external functions. Therefore, it has an edges pointing to the externalnode2, ie. the externalnode representing outgoing calls from this module. does LLVM have any function pointer analysis capabilities in the mainline ? Thanks, -Trent
2016 Aug 24
2
LLVM 3.9 RC2's SCCP pass removing calls to external functions?!
Hi, I've been porting a project to LLVM 3.9 and found that the SCCP pass may remove calls to external functions if their return type is declared to be an empty struct. For instance: > %empty = type {} > > declare %empty @foo() > > define i32 @main() { > %1 = call %empty @foo() > ret i32 0 > } opt -sccp -S file.ll returns: > %empty = type {} > >
2009 May 10
2
[LLVMdev] Get the call graph SCCs from a function pass
Hello, I'm writing a Function Pass. This function pass needs access to the CallGraph and CallGraph SCCs. Is there any way I can get CallGraph information without changing my pass to a CallGraphSCCPass ? Thanks, -- Nick Johnson
2009 May 10
2
[LLVMdev] Get the call graph SCCs from a function pass
On 5/10/09, Török Edwin <edwintorok at gmail.com> wrote: > On 2009-05-10 20:11, Nick Johnson wrote: > > Hello, > > > > I'm writing a Function Pass. This function pass needs access to the > > CallGraph and CallGraph SCCs. Is there any way I can get CallGraph > > information without changing my pass to a CallGraphSCCPass ? > > > Does
2010 Jul 05
2
[LLVMdev] Debug just-in-time compiled code on Mac OS
Hey guys, I'd need to debug just-in-time compiled code under Mac OS. As predicted, GDB doesn't cope really well with it. The LLVM manual seems to say it's possible to patch GDB under Linux, but there seems to be no option for Mac OS. What can I do? I'd prefer a solution that integrates with Xcode, but I'll manage if it doesn't and I have to run the debugger externally.
2016 Aug 24
2
LLVM 3.9 RC2's SCCP pass removing calls to external functions?!
Hi Félix, Sanjoy Das wrote: > Félix Cloutier via llvm-dev wrote: > > Assuming that this is a bug, what are the next steps? > > Looks like you already have a very small test case -- have you tried > sticking it in a debugger to see why SCCP thinks removing the call is > okay? > > Alternatively, file a bug at llvm.org/bugs and someone will get to it. The third
2010 Jun 26
2
[LLVMdev] IRBuilder<>::CreateCall, CreateCall2, CreateCall3, ...
Hey guys, Whys are there like 5 variants of CreateCall in IRBuilder<> with numbers appended to them? The only difference I can see is the number of arguments. Aren't C++ function overloads be suited for this? Félix
2011 Mar 01
2
[LLVMdev] Using clang+llvm from Xcode 3 project yields 1.5k linkage warnings
I'm using Xcode 3 to program with LLVM and Clang (both about yesterday's latest revisions), and when I compile, I get 1501 link-time warnings. All those I read were about symbol visibility. Here's an example: ld: warning: namespace::class::method() has different visibility (default) in /usr/local/lib/libclangCodeGen.a(CodeGenAction.o) and (hidden) in
2009 Sep 15
0
[LLVMdev] SCCIterator and unconnected graphs
On Sep 3, 2009, at 4:15 AM, Hans Vandierendonck wrote: Hi, > > I am using the scc_iterator class in my code on a CallGraph, where > some > functions are not called from within the module. It seems that > scc_iterator does not list all SCCs if the graph is not connected; > only > those nodes connected to the node pointed to by > GraphTraits<...>::getEntryNode() are
2010 Jun 24
4
[LLVMdev] Hello World
Hello everyone, I've been watching LLVM since about a year now, and I thought it was finally time I'd do something with it. So I've got my hands dirty with a cool project (who knows? maybe I'll end up releasing it), but since I'm fairly new to the whole thing, there are still a number of things I'm not too sure about. First, the way we create instructions confuses me a
2010 Jul 08
0
[LLVMdev] Why shouldn't function entry blocks have predecessors?
Hello Félix- Consider the following snippet of IR: define i32 @foo(i32 %n) nounwind { entry: br label %loop loop: %loop.n = phi i32 [0, %entry], [%tmp, %loop] call void @bar() nounwind %tmp = sub nsw i32 %loop.n, 1 %cmp = icmp eq i32 %tmp, 0 br i1 %cmp, label %exit, label %loop exit: ret i32 0 } declare void @bar() nounwind Try to merge the blocks "entry" and "loop"
2015 May 21
2
[LLVMdev] MemoryDependenceAnalysis reports dependencies between NoAlias pointers
Thanks Daniel, I'll do a debug build of LLVM (I guess that'll teach me) and step through it as soon as I'll find a power outlet. I'm calling getDependency on the load instruction, and it returns the store instruction. Suspiciously enough, calling invalidateCachedPointerInfo on load->getPointerOperand() does not cause my AA pass to be called again when I use getDependency (or
2015 Jul 16
2
[LLVMdev] Regions according to LLVM
Hi all, I'm working with regions, and I was surprised by the region set of this function: > define void @foo() { > br i1 false, label %loop, label %end > > loop: > br i1 false, label %loop, label %end > > end: > ret void > } .dot file as generated by opt —view-regions attached. Essentially, there are 3 regions: one that has the whole function, one that has