はじめに この記事は,まだmem2regのことをふんわりとしか理解していない人が書いています.間違いの指摘などお待ちしております. また,この記事内では解説にLLVM-IRの前提知識を必要とします.(alloca, load, store, use-def chain などが何なのかわかっていればOK.) mem2reg とは mem2regはLLVMのPassの一つで,可能な限りメモリアクセスをレジスタアクセスへと変換します. LLVMのPassとは言いますが,単にメモリアクセスをレジスタアクセスへと変換する機構のことだと思っていただければOKです. mem2reg は大まかに何をするのか ここからの解説は,主にこのあたりのコードに沿って進めていきます. レジスタへと昇格できる alloca を集める. どんなalloca? → load, storeからのみアクセスされていて,アドレス