Displaying 20 results from an estimated 4000 matches similar to: "[LLVMdev] Why shouldn't function entry blocks have predecessors?"
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"
2010 Jul 08
1
[LLVMdev] Why shouldn't function entry blocks have predecessors?
It's past 3 AM here, so maybe I really shouldn't be answering in this state of awakeness. However, what I understand from your example is that loops with counters must be entered from another block in order to use the phi instruction correctly, not that it should be invalid to branch to the entry block.
It seems to me that it makes sense to go back to the entry point if looping is not
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
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
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
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 {}
>
>
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 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.
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
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
2015 May 19
2
[LLVMdev] Processing functions in call graph SCC "order" with function-level analyses
Hi all,
I have one analysis pass that I want to perform on call graph SCCs. However, for each function in the SCC, I need function-level analyses, like the dominator tree and the memory dependency analysis.
I’ve been told before <http://stackoverflow.com/questions/30059622/using-dominatortreewrapperpass-in-callgraphsccpass> that these were not available from a CallGraphSCCPass. What would
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
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
2011 Feb 22
0
[LLVMdev] Can I use Clang to parse snippets of C++ code?
The semantics of C++ depend heavily on what comes before the given
fragment. How do you plan to address this? For example, if you know
all the headers you think these snippets will include, you can do
something similar to PCH to parse the fragment in context of all of
the headers.
I don't know much about feeding clang buffers instead of files, but I
believe it can be done with some of the
2010 Jul 07
0
[LLVMdev] Debug just-in-time compiled code on Mac OS
I'm assuming you're looking at this document?
http://llvm.org/docs/DebuggingJITedCode.html
That document should probably be updated to say you need GDB 7.0 or
newer, since that's when the feature was released. Most Linux
distributions have picked this up, so it should Just Work on Linux.
Apple's GDB is stale (6.3 + lots of patches). They've stopped
updating the version of
2011 Mar 01
0
[LLVMdev] Using clang+llvm from Xcode 3 project yields 1.5k linkage warnings
On Feb 28, 2011, at 8:07 PM, Félix Cloutier wrote:
> 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
2010 Jun 26
0
[LLVMdev] IRBuilder<>::CreateCall, CreateCall2, CreateCall3, ...
On Jun 25, 2010, at 6:24 PM, Félix Cloutier wrote:
> 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?
An overload could work, but this sort of API makes it more obvious which one you're trying to call and
2015 May 21
2
[LLVMdev] MemoryDependenceAnalysis reports dependencies between NoAlias pointers
Hi all,
I have a custom alias analysis pass that enforces that pointers from different address spaces do not alias, and I'm using MemoryDependenceAnalysis to, well, figure out dependence analysis.
The AA pass is extremely simple, it only checks the address space of pointers, returns NoAlias if they're different, and delegates otherwise. It is the last alias analysis pass added to my
2010 Jun 28
0
[LLVMdev] Tell LLVM JIT to omit the frame pointer?
Hey guys,
Is there a way to force the LLVM JIT compiler to omit the frame pointer in its generated i386/amd64 code? I've got a complex situation in which the stack can potentially be moved around so I'd prefer that the base pointer doesn't get pushed there.
Félix