▁Inter mediate ▁representation ▁ ▁The ▁core ▁of ▁LL VM ▁is ▁the ▁intermediate ▁representation ▁( IR ), ▁a ▁low - level ▁programming ▁language ▁similar ▁to ▁assembly . ▁IR ▁is ▁a ▁strongly ▁typed ▁reduced ▁instruction ▁set ▁computing ▁( R IS C ) ▁instruction ▁set ▁which ▁abstract s ▁away ▁most ▁details ▁of ▁the ▁target . ▁For ▁example , ▁the ▁calling ▁convention ▁is ▁abstract ed ▁through ▁call ▁and ▁ret ▁instructions ▁with ▁explicit ▁arguments . ▁Also , ▁instead ▁of ▁a ▁fixed ▁set ▁of ▁registers , ▁IR ▁uses ▁an ▁infinite ▁set ▁of ▁tempor aries ▁of ▁the ▁form ▁% 0 , ▁% 1 , ▁etc . ▁LL VM ▁supports ▁three ▁is omorphic ▁( i . e ., ▁function ally ▁equivalent ) ▁forms ▁of ▁IR : ▁a ▁human - read able ▁assembly ▁format , ▁an ▁in - memory ▁format ▁suitable ▁for ▁front ends , ▁and ▁a ▁dense ▁bit code ▁format ▁for ▁serial izing . ▁A ▁simple ▁" Hello , ▁world !" ▁program ▁in ▁the ▁IR ▁format : ▁ ▁@ . str ▁= ▁internal ▁constant ▁[ 1 4 ▁x ▁i 8 ] ▁c " hello , ▁world \ 0 A \ 0 0 " ▁ ▁declare ▁i 3 2 ▁@ printf ( i 8 *, ▁...) ▁ ▁define ▁i 3 2 ▁@ main ( i 3 2 ▁% arg c , ▁i 8 ** ▁% argv ) ▁n oun wind ▁{ ▁entry : ▁▁▁▁ ▁% tmp 1 ▁= ▁get element ptr ▁[ 1 4 ▁x ▁i 8 ], ▁[ 1 4 ▁x ▁i 8 ]* ▁@ . str , ▁i 3 2