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'?