[llvm-dev] Various Intermediate Representations. IR

Michael Kruse via llvm-dev llvm-dev at lists.llvm.org
Tue Apr 14 13:23:39 PDT 2020

Currently, LLVM often uses the *i8 type (pointer to char) to represent
a pointer to some not-specified type. We are also working on replacing
the pointer-to-type pointer types by a single pointer type without a
specific pointee-type. Look for "opaque pointer" on llvm-dev and the
repository commits.


Am Di., 14. Apr. 2020 um 15:06 Uhr schrieb James Courtier-Dutton via
llvm-dev <llvm-dev at lists.llvm.org>:
> Hi,
> I am looking for an IR that is similar to LLVM IR, with its SSA form,
> module->function->block->instruction etc.
> But, I wish a much reduced type model.
> I wish only three types:
> 1) An Integer of various bit-widths.
> 2) A pointer, but a pointer that does not need to point to a known
> type. A sort of "pointer to unknown type".
> 3) Floats of various varieties.
> For example, if we were using a pointer to step through an array of
> 32bit integers.
> We would use: pointer = pointer + 4;   (I.e. step over 4 octets at a time)
> Is anyone aware of such an IR, or is there some way for trick LLVM IR
> into only using the above 2 types?
> IR already does (1) and (3). It does not seem to be able to do (2).
> Kind Regards
> James
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev

More information about the llvm-dev mailing list