similar to: [LLVMdev] Transforming SwitchInst to BranchInst

Displaying 20 results from an estimated 800 matches similar to: "[LLVMdev] Transforming SwitchInst to BranchInst"

2015 May 07
2
[LLVMdev] Integer ID for LLVM::Instruction*?
David, As you suggested, I try to compile the following test code: *include "llvm/IR/Instruction.h"#include "stdint.h"extern void callback(intptr_t);void foo(){ llvm::Instruction* i; intptr_t zzzz=static_cast<intptr_t>(i); callback(zzzz);}* but got this compilation error: * 'intptr_t' (aka 'long') is not allowed intptr_t
2015 May 06
5
[LLVMdev] Integer ID for LLVM::Instruction*?
Hi, I wonder whether we can easily retrieve an LLVM instruction ID that uniquely identifies the instruction. In my case, I need to avoid using llvm::Instruction* directly. Given an 'inst' of type llvm::instruction*, is there some readily usable method as simple as "int id = inst->id( )"? Thanks. Zhoulai -------------- next part -------------- An HTML attachment was
2015 Apr 19
2
[LLVMdev] LLVM IR for inline functions
Hi, I have a naive question on how to generate LLVM IR for inline functions. I have compiled this C code: *inline void func1()* * {* * int x=3;* * }* * void func2()* * {* * func1();* * int y = 4;* * }* into LLVM IR, using clang -emit-llvm -S -c <filename> But the generated LLVM IR file does *not* have func1() expanded (see below for the relevant parts). *; Function Attrs: nounwind
2015 Jun 07
2
[LLVMdev] Loop Unfolding in LLVM
Hello, I am looking for a loop unfolding procedure implemented in LLVM that helps to transform a while-loop to n-layer If-statements. The transformation should be on IR, although the example below is illustrated on the source level. original loop: * WHILE (condition) DO action ENDWHILE* Expected unfolded loop (2-layer): * IF (condition) THEN* * action* * IF
2016 Aug 13
2
A "hello world" coverage sanitizer
Thank you, kcc. I am unsure if I misunderstand your reply. It seems that trace-bb, rather than trace-pc, fits better for my problem, given that my instrumentation is to put before each conditional statement. Do I misunderstand something here? " Tracing basic blocks <http://clang.llvm.org/docs/SanitizerCoverage.html#id11> With -fsanitize-coverage=trace-bb the compiler will insert
2015 Apr 09
3
[LLVMdev] BasicBlock.h in the binary and in the source differ
Hi, I am using LLVM to develop a tool, using Mac OS 10.9. I have download llvm source and binary from http://llvm.org/releases/download.html I just find the BasicBlock.h file of the binary package clang+llvm-3.6.0-x86_64-apple-darwin/include/llvm/IR/BasicBlock.h is slightly different from that of the source llvm/include/llvm/IR/BasicBlock.h In particular, llvm:: getModule(..)
2011 Jul 31
3
[LLVMdev] SwitchInst::addCase with BlockAddress
I'm trying to figure out how to feed a blockaddress to a switch condition AND destination (basically emulating an indirectbr via a switch; I know it's not a good approach, I'm just experimenting). Suppose I have the following: SwitchInst *s = SwitchInst::Create(...); BasicBlock *bb = ...; PtrToIntInst k = new PtrToIntInst(BlockAddress::get(bb), <TYPE>, "", s);
2011 Aug 01
0
[LLVMdev] SwitchInst::addCase with BlockAddress
On Sun, Jul 31, 2011 at 7:36 AM, Carlo Alberto Ferraris <cafxx at strayorange.com> wrote: > I'm trying to figure out how to feed a blockaddress to a switch condition > AND destination (basically emulating an indirectbr via a switch; I know it's > not a good approach, I'm just experimenting). > Suppose I have the following: > > SwitchInst *s =
2012 Feb 27
3
[LLVMdev] SwitchInst handling in backend
Hi, if I want to know how switch instructions are handled in the backend, where do I have to look first? I'm not familiar with the backend framework and I couldn't figure out the interface between the LLVM instruction 'SwitchInst' and whatever there is in the backend. I would be very happy about every hint where I have to look to find the entry point of switch instructions in the
2012 Nov 29
2
[LLVMdev] [cfe-dev] UB in TypeLoc casting
Moving to LLVM dev to discuss the possibility of extending the cast infrastructure to handle this. On Tue, Nov 20, 2012 at 5:51 PM, John McCall <rjmccall at apple.com> wrote: > On Nov 18, 2012, at 5:05 PM, David Blaikie <dblaikie at gmail.com> wrote: >> TypeLoc casting looks bogus. >> >> TypeLoc derived types return true from classof when the dynamic type >>
2005 Jul 27
2
[LLVMdev] Making a pass available to llc?
On 7/26/05, Reid Spencer <reid at x10sys.com> wrote: > On Tue, 2005-07-26 at 17:25 -0700, Michael McCracken wrote: > > > Since I'm modifying llc, I have a couple small questions about that code: > > > > opt and analyze (and a couple of other places) add a verifier pass, > > but llc doesn't. > > This would seem to make sense for llc as well -
2006 May 17
0
[LLVMdev] Obfuscation with LLVM
Hi all, I was trying to implement an obfuscation tool for C-code on the basis of LLVM. I got a prototype of the simple obfuscation transformation which converting control flow graph to something like a state machine. I am not sure I will have time to work on extending further this tool with new transformations like opaque predicates and decided to put here source code I have by now with hope
2015 Apr 09
2
[LLVMdev] BasicBlock.h in the binary and in the source differ
The source is cloned from https://github.com/llvm-mirror/llvm Thanks. Zhoulai On Thu, Apr 9, 2015 at 9:15 AM, Jonathan Roelofs <jonathan at codesourcery.com> wrote: > > > On 4/9/15 9:58 AM, Zhoulai wrote: > >> Hi, I am using LLVM to develop a tool, using Mac OS 10.9. I have >> download llvm source and binary from >> >>
2016 Aug 12
2
A "hello world" coverage sanitizer
Hi, all I want to instrument a program automatically so that it prints "hello" before each conditional statement. For example, consider the function P below. int P(int x) { if (x<3) if (x>0) return 1; return 0; } Let P_instrum be the instrumented version of P. It is expected that: -- P_instrum(1) prints two "hello"s --
2013 Sep 18
1
[LLVMdev] In llvm, how can I delete a whole branch elegantly?
Hi, I am trying to prune some uninteresting llvm ir branches, corresponding to the *if-else* condition in the source code. And here is the procedures: 1. Get the BasicBlock containing the BranchInst which has 2 successors(in order to keep consistent with the source code I am using the llvm ir without any optimizations, so SelectInst/SwitchInst/PHINode is absent), one of which should be
2011 Aug 01
1
[LLVMdev] SwitchInst::addCase with BlockAddress
Nella citazione lunedì 1 agosto 2011 08:13:12, Eli Friedman ha scritto: > On Sun, Jul 31, 2011 at 7:36 AM, Carlo Alberto Ferraris > <cafxx at strayorange.com> wrote: >> I'm trying to figure out how to feed a blockaddress to a switch condition >> AND destination (basically emulating an indirectbr via a switch; I know it's >> not a good approach, I'm just
2012 Feb 27
0
[LLVMdev] SwitchInst handling in backend
On Mon, Feb 27, 2012 at 12:52 PM, Nico <listiges at arcor.de> wrote: > Hi, > > if I want to know how switch instructions are handled in the backend, where do I have to look first? > I'm not familiar with the backend framework and I couldn't figure out the interface between the LLVM instruction 'SwitchInst' and whatever there is in the backend. > > I would be
2013 Aug 22
2
[LLVMdev] SwitchInst problem
Hi All, Value* V; Value* V2; BasicBlock * BB; unsigned j; ///number of cases .... //insert V , V2, j and BB SwitchInst* sw= builder.CreateSwitch(V, BB, j); ConstantInt * CI= dyn_cast<ConstantInt>(V2); sw-> addCase( CI , BB); At last step there is Program received signal SIGSEGV, Segmentation fault. What is wrong in the code? Thanks in advance -- * Rasha Salah Omar
2005 Jul 27
0
[LLVMdev] Making a pass available to llc?
On Tue, 26 Jul 2005, Michael McCracken wrote: >> I can't see any harm in that. However, please make sure that it really >> isn't being run. The verifier can be hidden by various levels of >> abstraction. > > Assuming that I get everything with -debug-pass=Structure, then it isn't: -debug-pass=Structure does list everything. If you add it, please add it in an
2012 May 21
2
[LLVMdev] VMKit build broken
Hi, I just thought of trying vmkit and checked out the source from the svn repo a few minutes back. The build is failing with the following error. llvm[4]: Compiling CGCleanup.cpp for Release+Asserts build CGCleanup.cpp:507:36: error: no member named 'getCaseSuccessor' in 'llvm::SwitchInst'; did you mean 'getSuccessor'?