[LLVMdev] Reg2mem: Identifying introduced memory locations (also, what happens to the phi nodes)

Alexey Bakhirkin abakhirkin at gmail.com
Mon May 30 12:53:13 PDT 2011


Hi.

Im exploring `opt -reg2mem` output for a simple C program (actually,
that is this snippet:
http://rosettacode.org/wiki/Dining_philosophers#C - compiled with
clang -O1) and got two questions regarding this pass.

1. How would I tell which memory locations were introduced by the
pass, and which memory locations were present in the original program?
After a brief diffing of .ll files, I'd suppose that introduced
"alloca"s would put their result in a variable named
"somename.reg2mem". But is the ".reg2mem" suffix a reliable way to
identify introduced allocas?

2. There seems to be no "phi" instructions after the pass. Does the
pass always remove all "phi" instructions?



More information about the llvm-dev mailing list