No description provided.
The problem here is that functions in the LLVM namespace are overloaded beyond reason. For example, why does LLVM::Array() return a type, and LLVM::Float() return a value?
This, apart from being a problem as of itself, prevents me from adding LLVM::Int which would accept a width and either produce a type or a value. (An LLVM::Int producing a value of the native word size already exists.)
I propose to either remove the LLVM::Array and other methods returning types, or, maybe, rename them to LLVM::ArrayTy and make the LLVM::Array return a value, i.e. what LLVM::ConstantArray.const currently does.
@jvoorhis, what do you think?