Correspondence between IR and AST branch ways

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Correspondence between IR and AST branch ways

Kristóf Umann via cfe-dev

Hi all,

 

I’m currently writing an IR pass that’s required to match a ‘br’ instruction (in IR) with a specific AST if statement. Matching itself can be done quite easily through DebugLoc, but I realized that the ‘way’ (as in where the control flow continues after it’s been (not-)taken) of a branch can be changed in the course of IR optimizations. For example, a branch ‘if (x == 0)’ can be semantically transformed to ‘if (x != 0)’ in the resulting IR.

 

My question is, how can I know such way-changing transformation has been done on which branches? Or, is there any way I can prevent such way-changes during optimization?

 

Thanks,

Gwangmu Lee.

 

Gwangmu Lee

Ph.D. Student

+82) 10 4114 7441

Room 615, Bldg 301, Seoul National University,
Gwanak-ro 1, Gwanak-gu, Seoul, South Korea.

http://compsec.snu.ac.kr/~gwangmu

 

 


_______________________________________________
cfe-dev mailing list
[hidden email]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev