Displaying 20 results from an estimated 20000 matches similar to: "Clang not work"
2018 May 15
1
Four bitcode generated with plugin-opt=save-temps
Hi Teresa
Thanks for your very quick and clear explanation. I have one more question.
The emit-llvm option will give you the IR for a single source file when you
compile it with -c. All of those files when combined give the IR in the
preopt.bc temp file.
===========
So if I use "clang -emit-llvm -c" to generate the .ll file. It should be
the same as the one I generated by using
2018 Jun 26
2
Instruction boundaries
There should be a line-table entry for the end of the function, which appears to be missing from the dump you provided. llvm-dwarfdump should report this address with 'end_sequence' in the Flags. Are you using a different dumper?
I am not sure but my guess would be that inline data is not represented in the line table. The line table's primary purpose is to inform the debugger
2018 May 15
2
Four bitcode generated with plugin-opt=save-temps
Hi
I use the LDFLAGS=" -flto -fuse-ld=gold -Wl,-plugin-opt=save-temps " to
generate the makefile and to make the whole program. However, found four
different kinds of bitcode for each target. For example, I am compiling
coreutils. For the program "nohup", I can get
nohup.0.0.preopt.bc
nohup.0.2.internalize.bc
nohup.0.4.opt.bc
nohup.0.5.precodegen.bc
If I am right, I
2018 Jun 26
2
Instruction boundaries
I'm not familiar with the target instruction set, but if "MOV PC, R0" is not a return instruction, I'm guessing that the sequence starting at A39C is a dispatch through a jump table. The jump table would be considered part of the instruction stream and included in the scope of the line table. This is not a case where you would see end_sequence; my mistake.
The line table does
2018 May 15
0
Four bitcode generated with plugin-opt=save-temps
These are the bitcode at different stages of the LTO portion of the
compile. LTO merges the IR for all files being linked and optimizes them as
a single monolithic module. The preopt.bc is the merged IR just after
merging and before performing any LTO optimizations. internalize.bc is
after performing whole program internalization. opt.bc is after the
optimization pipeline, and .precodegen.bc is
2018 Jun 13
2
IR to binary address mapping
Hi Paul
Thanks for your comments. Suppose I can generate the control flow graph via
LLVM Pass or the default option like '-dot-cfg' with opt. However, the
control flow graph is based on llvm IR level. I would like to have a
control flow graph based on binary level. Thus, I want to map the IR to
binary address.
As far as I know, we used to use the debug information to map the IR to
source
2018 Jun 26
2
Instruction boundaries
Hi paulr
Thanks for your reply. Though DWARF info give me the code address ranges,
there might be inline data. If so, how to handle this case?
As for the dwarf line table. Sometimes, the source line might be zero. Do
you know why? If all instructions should be describe in the line table, I
think analyzing Dwarf line table is enough to get all the instructions
addresses. Do you agree?
I would
2018 Jun 13
2
IR to binary address mapping
Hi
However, frontend may also do various operations on the source code and one
line number and column number could map to more than one binary address.
Why LLVM IR cannot?
Regrads
Muhui
2018-06-12 23:18 GMT+08:00 mayuyu.io <admin at mayuyu.io>:
> In theory that’s not exactly possible/accurate. Due to various operations
> in the Backend like Instruction Legalization, one IR
2018 Sep 05
2
AddressSanitizer on SPECCPU2006
Hi Alex
Thanks for your email. But it seems not work. I removed the
-fsanitize=address flag.
The global buffer overflow message doesn't show. However, no *.sancov file
is created after I run perlbench. Thus, I could not get the BB coverage. Do
you have any ideas? Many Thanks
Regards
Muhui
Alexander Potapenko <glider at google.com> 于2018年9月5日周三 下午7:14写道:
> Hi Muhui,
>
> If
2018 Jun 02
2
Function start address
Hi
Actually, No particular reason. I just think this might be a solution, then
I use think kind of method. Querying the symbol table would be a good
choice, but I prefer to use LLVM and dwarf information. I am sorry that I
am not familiar with debug_info. But thanks to your suggestions. I would
like to try to solve it with debug_info. It seems work according to your
comments
By the way, I am
2018 Sep 03
4
Basic Coverage
Hi
My goal is that given a binary and the corresponding input. I want to know
what IR level basic blocks are covered. I need the detail information,
which is the set of all the covered BBs rather than just a number.
I want to know whether there are some tools that can support this
requirements. If not, I think maybe instrumentation can helps. However, I
do not know too much about this. Any
2018 Jun 15
3
Strange Machineinstr
Hi Krzysztof
Thank you very much for your quick and clear reply. I know that MIR may not
match hardware instructions directly. However, I think the semantics should
be similar.
For example, the first instruction is a store-multiple instruction in ARM.
I think the first four MIR I shown should have the similar semantics with
the first three hardware instructions. I still cannot see the
2018 Jun 12
4
IR to binary address mapping
Hi
I know that LLVM provide some debug API for us to know the source code
information. For example, every IR instruction's source line number and
column number.
However, are there any method to get a mapping from IR instruction to
binary address directly. I don't want to use dwarf line mapping table as a
bridge. I think the binary is generated by clang and llvm. I think there
definitely
2018 Jun 15
2
Strange Machineinstr
On 6/15/2018 11:58 AM, Muhui Jiang wrote:
> Is it possible to dump both the frame setup/cleanup MIR and the MIR I
> have at this moment?
You can dump the MIR after each pass with -mllvm -print-after-all. Look
for "Prologue/Epilogue Insertion".
-Krzysztof
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
hosted by The Linux Foundation
2018 May 16
1
clang dwarf
Hi
I am building the llvm IR to generate the control flow graph. I am using
autotools(configure, make) to compile my whole program. I use the
-save-temps option to save the llvm IR. Now I would like to generate a
control flow graph on binary level. I may need the dwarf information to
know the mapping between source code and binary code. Besides, I may also
need to know the relationship between
2018 May 30
1
LLVM IR source line error
Hi David
Thank you very much for your suggestions. ScopeLine works well. It could
represent the start of a function. Do you know whether I can get the start
column of this function? Many Thanks
Regards
Muhui
2018-05-30 3:25 GMT+08:00 David Blaikie <dblaikie at gmail.com>:
>
>
> On Tue, May 29, 2018 at 5:25 AM Muhui Jiang via llvm-dev <
> llvm-dev at lists.llvm.org>
2018 May 29
0
LLVM Block is not the basic block
Hi Krzysztof
I see and I agree with your explanation
However, you know some start of art binary analysis tools like angr will
accept LLVM's such kind of design. You know there are some non-return
functions. Does LLVM consider this? Do you have any ideas if I want to
create a block that cannot contain function calls with LLVM IR.
Regards
Muhui
2018-05-29 21:20 GMT+08:00 Krzysztof Parzyszek
2018 May 29
2
LLVM Block is not the basic block
On 5/29/2018 7:59 AM, Muhui Jiang via llvm-dev wrote:
> So the reason why basic blocks can contain function calls is because of
> code inlining?
Not really. Basic blocks are units of code in a context of a specific
function. When execution reaches a function call, it will go outside of
the current function for some time, but then it will return back to the
instruction following the
2018 Jul 15
2
Bitcode generated with LLVM 7.0 used in LLVM 3.4
Hi
I need a concolic execution framework based on LLVM. As far as I know, KLEE
might be the best choice. However, KLEE(the stable version) is based on
LLVM 3.4.
I compiled my code with the latest LLVM, whose version is 7.0. Anyone know
whether the bitcode could be used by KLEE. Or do I have to compile with the
old version of LLVM again. Furthermore, if you have any other concolic
execution
2018 Jun 25
2
Instruction boundaries
Hi
I was wondering whether there are any methods to know what part of the
target binary is code.
I have some ideas and hope to get your comments.
I would like to use LLVM's source level debugging information to extract
the source lines belonging to every functions. Then use the dwarf mapping
table to transfer the source level information to binary address. Are
there any better methods?