Hard question. I don’t think there would have been a Julia project without LLVM. Julia was from the start designed to be an efficient code generator for LLVM.
At the same time if one gives LLVM to much credit it might give the false impression that any language would run fast just by targeting LLVM.
I suppose it is a bit like, how much do you credit the success of the farmer to the soil he farms vs he work, choice of plants to plant etc. There is a strong symbiosis.
At this point I think Julia might be able to make something replacing LLVM and still run fast. It is just that something like that requires a lot of resources to do. My understanding is that LLVM was great for bootstrapping but Julia would actually have benefitted more from their own custom made JIT compiler backend. E.g. LLVM as far as I understand is quite slow at compiling. They say Go could never have achieved its fast compilation times if they had used LLVM.
If you look away from language design and only at external things then I guess LLVM and cheap memory made Julia possible. Julia specialize a lot of code to gain performance which consumes more memory. Thus when memory was expensive Julia was not a viable strategy.