[LLVMdev] How to put a pass for last?
EmÃlio Wuerges
wuerges at gmail.com
Tue Sep 4 14:29:13 PDT 2007
Hello guys,
I'm writing a pass that must check every machine instruction that will go to
assembly.
I've put my pass registration just before the "addAsmEmmiter" line in
LLVMTargetMachine.cpp
But, iterating trought machine functions and basic blocks inside the
functions, there are still machine instructions that I cant reach.
This is the beginnig of the asm output of my example test program:
.text
.align 16
.globl main
.type main, #function
main:
nop
sethi 4194296, %g1
or %g1, 56, %g1
save %g1, %o6, %o6
sethi 0, %l0
The nop right before sethi is one instruction I'm not being able to reach in
my pass.
But there is more:
add %l0, 1, %l0
st %l0, [%i6+-12]
.BB1_2: ! bb8
ld [%i6+-12], %l0
subcc %l0, 1000, %l0
bl .BB1_1 ! bb
nop
.BB1_3: ! bb12
ba .BB1_5 ! bb19
nop
or %g0, 1, %l0
Here both the "ba" and the "nop", that are the 3rd and 2nd last operations
of this snipet, are not reachable.
Could I express myself good enougth?
Is it possible to do what I want?
Do you know what might be the problem?
--
Emilio Wuerges
LAPS - Laboratorio de Automacao de Projeto de Sistemas
UFSC - Universidade Federal de Santa Catarina
Brasil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20070904/e40c72d6/attachment.html>
More information about the llvm-dev
mailing list