Last year, poring over the output of @code_native
I discovered that my code of the form
if i == 1
dothis()
elseif i == 2
dotheother()
elseif i == 3
dothethirdthing()
end
was in fact compiling to a jump-table. (This was causing a bug in my program because there was an error in LLVM address computation. That LLVM bug has been fixed, I believe.) Here is the old thread: