Loaf trolleybus or alias analysis in LLVM
In anticipation of the next conference of C ++ Siberia, I decided to put to the public about river sight record report from the February conference Russia ++ the C , which took place in the hero-city of St. Petersburg.
Often, familiarity with aliasing in C ++ for many programmers begins and ends the same way:-fno-strict-aliasing . To the questions of a beginner, more experienced colleagues answer in the style: “do not touch! otherwise you’ll break everything! ” A beginner does not touch.
The report made an attempt to look under the hood of the compiler and understand what is there, inside? What is alias analysis, where can it be useful, what are its advantages and disadvantages. The topic has been considered by both the programmer and the compiler developer. And by this, the question “why?” Was central.
In the report you will find:
Often, familiarity with aliasing in C ++ for many programmers begins and ends the same way:
The report made an attempt to look under the hood of the compiler and understand what is there, inside? What is alias analysis, where can it be useful, what are its advantages and disadvantages. The topic has been considered by both the programmer and the compiler developer. And by this, the question “why?” Was central.
In the report you will find:
- Quake3 code and IEEE754 standard
- Magic constant 0x5F3759DF
- Lots of x86 assembler
- Lots of LLVM IR code
- Rust, Java, and even Fortran
Disclaimer
The fact is that on the plane I managed to completely catch a cold, and I had to speak the next morning. I had to pump up with paracetamol and go broadcast with a temperature of + 38 ° C. What was on the report, I realized later, with surprise watching this video.
Therefore, I ask you to concentrate on the report, and not on my sad physiognomy
Therefore, I ask you to concentrate on the report, and not on my sad physiognomy