[LLVMdev] Instruction->mayReadFromMemory
Seiden Tiger
st at iss.tu-darmstadt.de
Fri May 12 12:56:29 PDT 2006
Hi Chris and list
Thanks for your quick answer :-).
Am Freitag, 12. Mai 2006 19:09 schrieb Chris Lattner:
> On Fri, 12 May 2006, Silken Tiger wrote:
> > To find the first instructions which are not depending on others results.
> > So far it seems to be working but i am missing instructions like:
> > %tmp.1 = seteq int %argc, 2 ; <bool> [#uses=1]
> > There seems only an function like llvm::Instruction::mayWriteToMemory
> > but nothing like llvm::Instruction::mayReadFromMemory or s.t. with
> > similiar functionality?
> >
> > Or else: if there is an even easier way to get the non data depending
> > instruction from a block i missed, i would be also happy.
>
> I'm not sure what you're looking for.
Ok, i'll try to put it in different words: I am looking for the points where
data is flowing into the basic blocks (and later where data is going out). So
essentially i want to extract the dataflow out of the llvm internal
representation.
As Example i have the first block in a function:
int %main(int %argc, sbyte** %argv) {
entry:
%tmp.1 = seteq int %argc, 2 ; <bool> [#uses=1]
br bool %tmp.1, label %then, label %no_exit
At first i thought that %argc must be a memory access. But its a function
argument, so it is a register value. But looking locally at my block "entry"
i have currently no idea that %argc is a function argument an thus data
beeing readily available for usage. So i am looking at an way to find all the
variables which already contain valid data at the beginning, contrary to data
which is computed in the block.
Thank you
ST
More information about the llvm-dev
mailing list