[LLVMdev] inline assembly

Florian Brandner fbrandne at mail.tuwien.ac.at
Fri Aug 10 01:08:35 PDT 2007


hi,

i'm writing a target dependent analysis on machine instruction level in
llvm 2.0. the analysis needs to know if an inline assembly block reads
from memory. the programmer is responsible to add 'm' constraints
accordingly.

i've seen the operand flags of the inline assembly SDNode and the
machine instructions. but it seems that there is no difference between
input and output operands for memory constraints. can somebody confirm
this?

i could not find documentation on these flags, following the
AddInlineAsmOperands it seems to be something like: 'Code | (Size << 3)'

with Code on of these values:
1 REGUSE
2 REGDEF
3 IMM
4 MEM/ADDR

are there any other values? and would it be safe to change 4 to MEMUSE
and add 5 (MEMDEF)? i do not know where these values are used (except
for the ISelDAG and the AsmPrinter).

florian








More information about the llvm-dev mailing list