[PATCH] D19924: Representing bundle locked groups as fragments in MCAssembler

Colin LeMahieu via llvm-commits llvm-commits at lists.llvm.org
Tue May 24 16:29:07 PDT 2016


colinl set the repository for this revision to rL LLVM.
colinl updated this revision to Diff 58351.
colinl added a comment.

Running the memory tests pointed out poor usage due to having a bundle lock/unlock fragment for each instruction fragment.

I added a BundleLocked bit to MCFragment to represent a fragment being bundle locket to the next fragment.  This means only 1 bit per fragment is needed instead of 2 objects.

I added a vector of bundle alignments to MCSection to represent bundle alignment changes throughout the section.  Rather than storing the bundle alignment in each fragment we look up the bounding alignment in this vector.

I have a separate machine that runs the go file and gnuplot and I'll report the results for the redesign.


Repository:
  rL LLVM

http://reviews.llvm.org/D19924

Files:
  include/llvm/MC/MCAsmLayout.h
  include/llvm/MC/MCAssembler.h
  include/llvm/MC/MCELFStreamer.h
  include/llvm/MC/MCFragment.h
  include/llvm/MC/MCObjectStreamer.h
  include/llvm/MC/MCSection.h
  lib/MC/MCAssembler.cpp
  lib/MC/MCELFStreamer.cpp
  lib/MC/MCFragment.cpp
  lib/MC/MCObjectStreamer.cpp
  lib/MC/MCSection.cpp
  test/MC/X86/AlignedBundling/misaligned-bundle-group.s
  test/MC/X86/AlignedBundling/misaligned-bundle.s
  test/MC/X86/AlignedBundling/nesting.s
  test/MC/X86/AlignedBundling/relax-in-bundle-group.s

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D19924.58351.patch
Type: text/x-patch
Size: 50636 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160524/2f9b22e2/attachment-0001.bin>


More information about the llvm-commits mailing list