[LLVMdev] [RFC] Moving OnDiskHashTable from clang to LLVM
Rafael EspĂndola
rafael.espindola at gmail.com
Sat Mar 22 20:45:55 PDT 2014
> They're obviously related. Endian.h defines types like ulittle32, which
> DTRT when read and written from memory, whereas clang::io has functions
> to read and write memory like so:
>
> void Emit32(raw_ostream& Out, uint32_t V);
> uint32_t ReadLE32(const unsigned char *&Data);
> uint32_t ReadUnalignedLE32(const unsigned char *&Data);
>
> The (aligned) ReadLE32 is easily represented by the stuff in Endian.h,
> but the write to an ostream and reading unaligned aren't addressed very
> well at present.
ulittle32 is actually unaligned:
typedef detail::packed_endian_specific_integral
<uint32_t, little, unaligned> ulittle32_t
But yes, I don't think we have anything for writing and I it is
probably not trivial to extend it. We can probably add the existing
write functions to Endian.h itself.
What is lld using? If we are moving these functions from clang to llvm
it would be really nice to use them in lld too.
> We could still add this stuff to Endian.h, assuming it isn't an issue to
> depend on raw_ostream.h from Endian.h. I'm not sure if that'd be a
> problem or not.
Cheers,
Rafael
More information about the llvm-dev
mailing list