similar to: [LLVMdev] Operating on contents of virtual registers

Displaying 20 results from an estimated 4000 matches similar to: "[LLVMdev] Operating on contents of virtual registers"

2011 Mar 17
2
[LLVMdev] Operating on contents of virtual registers
Hi Eli, Thanks for the reply. The problem is that getOperand() returns an llvm::Instruction (that refers to the definition of the operand). What I am trying to find out is how to get the value of the operand. When you refer to bitcasting to i8*, do you mean casting the return value from getOperand() itself? Ashay On Wed, Mar 16, 2011 at 11:03 PM, Eli Friedman <eli.friedman at
2011 Mar 17
0
[LLVMdev] Operating on contents of virtual registers
On Wed, Mar 16, 2011 at 6:00 PM, Ashay Rane <ashay.rane at asu.edu> wrote: > Hello, > I was facing some difficulty in implementing a transform and I was wondering > if I could get some help please. > The transform needs to operate on the operands of certain instructions. For > example, given an instruction, say "%10 = load i32* %9, align 4", I have to > record the
2011 Mar 17
0
[LLVMdev] Operating on contents of virtual registers
On Wed, Mar 16, 2011 at 9:33 PM, Ashay Rane <ashay.rane at asu.edu> wrote: > Hi Eli, > Thanks for the reply. The problem is that getOperand() returns an > llvm::Instruction (that refers to the definition of the operand). What I am > trying to find out is how to get the value of the operand. When you refer to > bitcasting to i8*, do you mean casting the return value from
2011 Mar 17
1
[LLVMdev] Operating on contents of virtual registers
Thanks Eli, that worked! For the record, I had to make one change though. I had to bitcast to i32* (instead of i8*) otherwise I was seeing errors like: Instruction referencing instruction not embedded in a basic block! %retval = alloca i32 <badref> = bitcast i32* %retval to i8* and sometimes: Instruction does not dominate all uses! That makes me curious to ask, what does the choice of
2011 Mar 17
0
[LLVMdev] Operating on contents of virtual registers
On Wed, Mar 16, 2011 at 10:44 PM, Ashay Rane <ashay.rane at tacc.utexas.edu> wrote: > Thanks Eli, that worked! > For the record, I had to make one change though. I had to bitcast to i32* > (instead of i8*) otherwise I was seeing errors like: > Instruction referencing instruction not embedded in a basic block! >   %retval = alloca i32 >   <badref> = bitcast i32*
2011 Aug 09
2
[LLVMdev] llvm-gcc with static libraries
`/usr/bin/ld -v' says it is not running gold and I suppose fixing that would require place LLVMgold.so into /usr/lib/bfd-plugins. Is there any way to make this work without requiring root access to the machine? Also, just to confirm, is the gold plugin required even when all of the files have been compiled/built using llvm-gcc and llvm-ar? Ashay On Tue, Aug 9, 2011 at 1:33 PM, Eli Friedman
2012 Feb 29
4
[LLVMdev] Recovering variable names from bitcode
Hello, I have been facing a few problems getting names of variables from the bitcode. The bitcode does contain debug metadata. The first problem is regarding `memtmp' variables (apparently, the original variable name is no longer present in the bitcode). The other two problems concern OpenMP. In one case, the instruction is not named and hence establishing a connection to the debug metadata
2011 Aug 09
0
[LLVMdev] llvm-gcc with static libraries
On Tue, Aug 9, 2011 at 12:03 PM, Ashay Rane <ashay.rane at asu.edu> wrote: > `/usr/bin/ld -v' says it is not running gold and I suppose fixing that would > require place LLVMgold.so into /usr/lib/bfd-plugins. Is there any way to > make this work without requiring root access to the machine? If you install your own version of binutils into the same prefix as llvm-gcc, it should
2011 Aug 09
0
[LLVMdev] llvm-gcc with static libraries
On Tue, Aug 9, 2011 at 11:16 AM, Ashay Rane <ashay.rane at asu.edu> wrote: > Hello, > While linking programs against static libraries built using llvm-ar and > llvm-ranlib, I see an error message: > could not read symbols: Archive has no index; run ranlib to add one > collect2: ld returned 1 exit status > Using either /usr/bin/nm or llvm-nm (depending on the use of
2011 Sep 12
1
[LLVMdev] llvm-gfortran problems
No, I am running the LLVM pass at the compilation step. So by the time I reach the link step, the transformed bitcode has been generated. Ashay On Mon, Sep 12, 2011 at 4:12 PM, Dmitry N. Mikushin <maemarcus at gmail.com>wrote: > I see. And what's the purpose for outputting bitcode into *.o and *.a > files? Do you want to perform an LLVM pass on linking step? > > 2011/9/13
2011 Sep 12
2
[LLVMdev] llvm-gfortran problems
Hmm.. I didn't explain the problem completely last time. I am creating a drop-in replacement for gcc and gfortran that runs an additional pass on the bitcode before generating the native binary. Here's whats happening: If the source code compilation process builds a static library (.a archive file), I need a means to link the `.a' file statically into the application. So if the
2011 Sep 12
0
[LLVMdev] llvm-gfortran problems
I see. And what's the purpose for outputting bitcode into *.o and *.a files? Do you want to perform an LLVM pass on linking step? 2011/9/13 Ashay Rane <ashay.rane at tacc.utexas.edu>: > Hmm.. I didn't explain the problem completely last time. I am creating a > drop-in replacement for gcc and gfortran that runs an additional pass on the > bitcode before generating the native
2011 Sep 12
2
[LLVMdev] llvm-gfortran problems
Thats correct. But using llc becomes a problem when I have archives (.a files). I could, in theory, extract its contents to a tempdir and then use llc and link but just wondering if there is a more elegant solution. Ashay On Mon, Sep 12, 2011 at 3:00 PM, Dmitry N. Mikushin <maemarcus at gmail.com>wrote: > Ashay, > > If I understand correctly, in hw.o you would have llvm
2011 Sep 12
0
[LLVMdev] llvm-gfortran problems
Sorry, at what step do you need archive? llc emits binary, it does not perform any linking, thus it does not need anything except the input bytecode file. Then during linking you can link whatever archives of binaries you want. 2011/9/13 Ashay Rane <ashay.rane at tacc.utexas.edu>: > Thats correct. But using llc becomes a problem when I have archives (.a > files). I could, in theory,
2011 Aug 09
2
[LLVMdev] llvm-gcc with static libraries
Hello, While linking programs against static libraries built using llvm-ar and llvm-ranlib, I see an error message: could not read symbols: Archive has no index; run ranlib to add one collect2: ld returned 1 exit status Using either /usr/bin/nm or llvm-nm (depending on the use of --emit-llvm flag to llvm-gcc), one of them is able to list the symbols in the archive file. However, the link step
2011 Sep 12
0
[LLVMdev] llvm-gfortran problems
Ashay, If I understand correctly, in hw.o you would have llvm bytecode, while linker expects regular object binary. Probably first you need to emit asm out of bytecode using llc? - D. 2011/9/12 Ashay Rane <ashay.rane at tacc.utexas.edu>: > Hello, > Sorry for the late reply. Using dragonegg worked well, thanks all! > Just as a note... I had to use llvm-ld during the link step
2011 Aug 31
0
[LLVMdev] llvm-gfortran problems
Hi Ashay, Do you need specifically llvm-gfortran that is based on gcc 4.2? Since that, DragonEgg has been introduced - a powerful plugin to gcc that makes it possible to utilize regular gcc compilers as frontends to llvm: http://dragonegg.llvm.org/ It generates Fortran90 programs for me very well. - D. 2011/9/1 Ashay Rane <ashay.rane at tacc.utexas.edu>: > Hello, > I have been
2011 Aug 09
1
[LLVMdev] llvm-gcc with static libraries
Hi, Thanks for the pointers. I built binutils and installed them in the same place as llvm-gcc. However, I see the following error at the link step: $ llvm-gcc prog.c libctest.a collect2: ld terminated with signal 6 [Aborted] /tmp/llvm-gcc4.2-2.9-x86_64-linux/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.2.1/../../../../x86_64-unknown-linux-gnu/bin/ld: error: libctest.a: malformed archive header name
2011 Aug 31
4
[LLVMdev] llvm-gfortran problems
Hello, I have been trying to compile a few small programs [ http://www.esm.psu.edu/~ajm138/fortranexamples.html] using llvm-gfortran. Since I run my own pass on the generated bitcode, I have had to split the compilation process into using llvm-gfortran, opt and then llvm-ld (for linking, as I do with C/C++ programs). For now, I'll drop the `opt' statement. Here's what I see while
2011 Sep 12
3
[LLVMdev] llvm-gfortran problems
Hello, Sorry for the late reply. Using dragonegg worked well, thanks all! Just as a note... I had to use llvm-ld during the link step because gfortran could not link bitcode. Here's an example of the error shown when using gfortran instead of llvm-ld: $ ${GCC_4_5_0}/bin/gfortran hw.f -c -fplugin=${DRAGONEGG_PLUGIN}/dragonegg.so -o hw.o -flto -emit-llvm -S $ ${LLVM_2_9}/bin/opt -mem2reg hw.o