[PATCH] D38012: Compact EhSectionPiece from 32 bytes to 16 bytes.

Rafael Avila de Espindola via llvm-commits llvm-commits at lists.llvm.org
Tue Sep 19 14:09:00 PDT 2017


Rui Ueyama via Phabricator <reviews at reviews.llvm.org> writes:

> -struct CieRecord {
> -  EhSectionPiece *Piece = nullptr;
> -  std::vector<EhSectionPiece *> FdePieces;
> -};
> -
>  // Section for .eh_frame.
>  template <class ELFT> class EhFrameSection final : public SyntheticSection {
>    typedef typename ELFT::Shdr Elf_Shdr;
> @@ -88,19 +83,27 @@
>    std::vector<EhInputSection *> Sections;
>  
>  private:
> +  struct CieRecord {
> +    EhInputSection *Sec = nullptr;
> +    EhSectionPiece *Cie = nullptr;
> +    std::vector<EhSectionPiece *> Fdes;
> +  };

Why move the struct? It is now in a template, which makes it less
convenient to use.

I think this is OK, but it includes a few renames which make things
harder to read. Can you for example commit

-  std::vector<CieRecord *> Cies;
+  std::vector<CieRecord *> CieRecords;

First and rebase?

Thanks,
Rafael


More information about the llvm-commits mailing list