Displaying 20 results from an estimated 30000 matches similar to: "[LLVMdev] Forcing order of execution"
2004 Sep 28
1
[LLVMdev] How could I hide the visible string?
Hi,
Is there a way to modify the string such as char a or char b? Could I use the way like "Replace an instruction with another Value" in Programm Manual? In fact, what I am interested in is string with visible expression, not all string, and I am trying to hide the orignal string by using simple way like XOR..
Is there a way to reorder the basic blocks?
Thanks.
Qiuyu
C Source
2005 Feb 22
0
[LLVMdev] Area for improvement
When I increased COLS to the point where the loop could no longer be
unrolled, the selection dag code generator generated effectively the
same code as the default X86 code generator. Lots of redundant
imul/movl/addl sequences. It can't clean it up either. Only unrolling
all nested loops permits it to be optimized away, regardless of code
generator.
Jeff Cohen wrote:
> I noticed
2007 Jul 27
2
[LLVMdev] Forcing JIT of all functions before execution starts (was: Implementing sizeof)
Chris Lattner wrote:
> Check out http://nondot.org/sabre/LLVMNotes
>
>
%Size = getelementptr %T* null, int 1
%SizeI = cast %T* %Size to uint
How incredibly cunning. :-) Thanks for that.
Next stupid question. I've put together a simple coroutine/fibre style
threading system on top of the Linux setcontext/getcontext stuff, which
surprisingly enough seems to work *almost*
2003 Dec 22
2
[LLVMdev] hello.bc & binary code
hi,
I try to build hello.cpp using both llvmg++ and GNU g++,
the generate llvm bytecode's size is about 960K,
and the size of binary code generated by g++ is only 13K.
Could anyone explain the difference between the two result?
BWT:
I rebuild the cfrontend in RH linux9.0, but when I build the hello.cpp
the llvmG++ reports warnings too, it shows:
-----------------------------
[yue at RH9
2006 Oct 16
1
[LLVMdev] initializer does not match global variable type.
I have an objective-c file, bar.m, that I try to process in the
following way generating the error shown below. Any help would
be appreciated. I suspect the error is in the first few lines
of output.
thanks,
Todd
> cfrontend-g++ -o bar.bc bar.m
> llvm2cpp -o bar.cpp bar.bc
> g++ -c bar.o bar.cpp
> ld -o bar bar.o -l objc -l LLVMCore -l LLVMSupport -l LLVMSystem
> ./bar
Global
2005 Feb 22
5
[LLVMdev] Area for improvement
I noticed that fourinarow is one of the programs in which LLVM is much
slower than GCC, so I decided to take a look and see why that is so.
The program has many loops that look like this:
#define ROWS 6
#define COLS 7
void init_board(char b[COLS][ROWS+1])
{
int i,j;
for (i=0;i<COLS;i++)
for (j=0;j<ROWS;j++)
b[i][j]='.';
2006 Oct 17
1
[LLVMdev] initializer does not match global variable type.
>Right. This looks like it's just a simple bug in llvm2cpp.
>CppWriter.cpp:698 contains:
>
> if (CA->isString() && CA->getType()->getElementType() ==
>Type::SByteTy) {
> Out << "Constant* " << constName << " = ConstantArray::get(\"";
> printEscapedString(CA->getAsString());
> //
2005 Mar 21
0
[LLVMdev] Recursive Types using the llvm support library
On Wed, Mar 09, 2005 at 04:05:32PM +0300, Vladimir Merzliakov wrote:
> >>Is assert(!NewSTy->isAbstract()) must pass after this line?
> >
> >In this case, yup.
> >
> I create test program and assert failed in it:
>
> { \2 *, sbyte * }
How do I decode the \2 in this? I am creating types through this
interface and I get quite a mess seen below. And this is
2003 Dec 22
1
[LLVMdev] How to explain?
hi,
I want to know what is exact meaning in the following code.
target endian--
%struct..TorRec--
%struct.TorRec--
implementation--
;<sbyte>[#uses=1/0]--
how to explain them in details?
Does anyone give me a guide?
thanks
yueqiang
--------------------------------------------------------------
target endian = little
target pointersize = 32
%struct..TorRec = type { int, void ()* }
2007 Mar 06
0
[LLVMdev] alloca & store generation
After looking at this problem longer, I believe that there is something
wrong with the disassembler. When I run my transformation and then
disassemble the output, I get bytecode that looks like:
-----
int %main(int %argc, sbyte** %argv) {
entry:
alloca int ; <int*>:0 [#uses=3]
alloca sbyte** ; <sbyte***>:0 [#uses=3]
store int %argc,
2004 Apr 14
1
[LLVMdev] Linking strncpy
Hi,
I'm working on a CS326 compiler project, and I'm having some problems
using string functions. Some LLVM programs produced are either
aborting or giving incorrect results; however, if I disassemble the
LLVM bytecode and recompile with GCC, everything works fine.
I encountered the following error when running lli with
'-force-interpreter' option:
"Tried to execute an
2004 Nov 30
0
[LLVMdev] Trouble using llvm tools
On Tue, 2004-11-30 at 08:58, Chris Lattner wrote:
> On Tue, 30 Nov 2004, Tanu Sharma wrote:
>
> > I have trouble using the llvm tools.Some of the errors are :
> >
> > $ llvm-dis prog.bc
> > $ llvm-dis: Invalid Top Level Block Length! Type:1, Size:456 (Vers=0, Pos=12)
>
> Can you explain how you generated this bytecode file? It looks corrupted
> or
2007 Mar 06
6
[LLVMdev] alloca & store generation
I am writing a transformation that needs to add a call to a function F()
at the beginning of main() with the addresses of argc and argv as
parameters to F(). However, the bytecode file I'm transforming has not
allocated space on the stack for argc and argv. So, I developed my
transformation to change main() from:
-----
int main(int %argc, sbyte** %argv){
entry:
...
// some use of
2004 May 11
2
[LLVMdev] Problems accessing structs
Hello!
I get some odd behaviour using my structs:
"myKernelMap" = type {int (sbyte*)*, int ()*}
"Kernel" = type {"myKernelMap"*}
The second member ( int()* ) is a pointer to the %getchar() function.
I want to call getchar using this function:
int "callmyKernelgetchar_kernel"("Kernel"* "myKernel")
{
"PTRMAP" =
2005 Apr 19
1
[LLVMdev] Unwind example
I'm trying to figure out the unwind primitive.
I've written a program which should:
1. Recursively grow the stack until it reaches a threshold
2. Then unwind and print a message
Instead what happens is:
1. Recursively grow the stack until it reaches a threshold
2. Then it dies with:
Abort trap
Can you point me to an example using uwind that "works" ?
Thanks.
Here's the
2007 Jan 06
3
[LLVMdev] More detailed example...
Further to that, I thought an example might be useful. In the following
code, n should end up with a value that varies nondeterministically with
the scheduling decisions made by the underlying run time system -- my
model checker, for example, should in theory be able to enumerate all
possible values. Anyway, if you look at the compiler output (see below),
the volatile global variable, n, has
2004 May 11
0
[LLVMdev] Problems accessing structs
Anders Alexandersson wrote:
> Hello!
>
> I get some odd behaviour using my structs:
>
> "myKernelMap" = type {int (sbyte*)*, int ()*}
> "Kernel" = type {"myKernelMap"*}
>
> The second member ( int()* ) is a pointer to the %getchar() function.
>
> I want to call getchar using this function:
>
> int
2006 Nov 13
0
[LLVMdev] need help understanding getelementptr assembler instruction
Ram:
Let me explain and hopefully Reid or Chris will correct if I have it
wrong. The first 0 is the index into a possible array of sbyte[13]
arrays that this pointer points to. I expect GetElementPtr works this
way is to keep down the proliferation of arrays of arrays in the type
table. So you are pointing at the zeroth, and in this case only, array
of sbyte[13]. The next 0 actually
2007 Jul 27
0
[LLVMdev] Forcing JIT of all functions before execution starts
(I have verified that just going through all the Functions in the Module
and calling getPointerToFunction for each in turn actually seems to work
-- I just wanted to make sure that this is sensible)
Sarah
2004 Apr 14
0
[LLVMdev] Linking strncpy
The only thing I can think of is that string.h is being #included and
has different signatures for memcpy and strncpy. Possibly "char" is not
signed on your machine (very unusual) or some of the parameters are
declared as "const".
Reid.
On Wed, 2004-04-14 at 18:19, Eric Zimmerman wrote:
> Chris,
>
> I'm fine with using JIT, but I'm trying to understand this