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?



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.



cfe-dev mailing list
[hidden email]